I learned recently Kubernetes有一個名爲Init Containers的功能。太棒了,因爲我可以使用此功能來等待我的postgres服務並在我的Web應用程序服務運行之前創建/遷移數據庫。Kubernetes部署和初始容器
但是,看起來Init Container只能在Pod yaml文件中配置。有沒有辦法通過部署yaml文件來做到這一點?或者我必須選擇?
I learned recently Kubernetes有一個名爲Init Containers的功能。太棒了,因爲我可以使用此功能來等待我的postgres服務並在我的Web應用程序服務運行之前創建/遷移數據庫。Kubernetes部署和初始容器
但是,看起來Init Container只能在Pod yaml文件中配置。有沒有辦法通過部署yaml文件來做到這一點?或者我必須選擇?
爲了避免混淆,不適合回答你的具體問題。我同意oswin,你可能想考慮另一種方法。
是的,你可以使用init容器進行部署。這是一個使用舊式(前1.6)的例子,但它應該可以工作
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: 'nginx'
spec:
replicas: 1
selector:
matchLabels:
app: 'nginx'
template:
metadata:
labels:
app: 'nginx'
annotations:
pod.beta.kubernetes.io/init-containers: '[
{
"name": "install",
"image": "busybox",
"imagePullPolicy": "IfNotPresent",
"command": ["wget", "-O", "/application/index.html", "http://kubernetes.io/index.html"],
"volumeMounts": [
{
"name": "application",
"mountPath": "/application"
}
]
}
]'
spec:
volumes:
- name: 'application'
emptyDir: {}
containers:
- name: webserver
image: 'nginx'
ports:
- name: http
containerPort: 80
volumeMounts:
- name: 'application'
mountPath: '/application'
就問題而言,您碰到了頭部。原來,我的GCE集羣仍然在1.5。你的代碼可以工作,但我決定升級到1.6。然後,我能夠將'initContainers'放入部署yaml – Mitkins
中,對它很有幫助。 – JamStar