I 最近学到的 https://stackoverflow.com/questions/44233242/kubernetes-cluster-and-phoenix-automate-mix-ecto-migrate/44233465#44233465Kubernetes 有一个功能叫做初始化容器 https://kubernetes.io/docs/concepts/workloads/pods/init-containers/。太棒了,因为我可以使用此功能来等待我的 postgres 服务并在我的 Web 应用程序服务运行之前创建/迁移数据库。
然而,Init Containers 似乎只能在 Pod yaml 文件中配置。有没有办法通过部署 yaml 文件来做到这一点?还是我必须选择?
为了避免混淆,我将回答您的具体问题。我同意奥斯温的观点,你可能想考虑另一种方法。
是的,您可以在部署中使用 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'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)