我们可以在我们的Pod中存放多个container,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
apiVersion: v1 kind: Pod metadata: name: simple-webapp labels: name: simple-webapp spec: containers: - name: simple-webapp image: simple-webapp ports: - ContainerPort: 8080 - name: log-agent image: log-agent |
这么做的好处之前也说过,同一个Pod下container共享networks 和存储,可以很方便的收集日志等
如果一个pod里存放多个container,那么就牵扯到启动的先后顺序的问题,有些container我们是希望先执行,它执行完成以后其他的container才启动,例如我们要先pull code,然后再执行某些操作
这个时候我们就要说到Init containers
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp-container image: busybox:1.28 command: ['sh', '-c', 'echo The app is running! && sleep 3600'] initContainers: - name: init-myservice image: busybox:1.28 command: ['sh', '-c', "until nslookup myservice.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for myservice; sleep 2; done"] - name: init-mydb image: busybox:1.28 command: ['sh', '-c', "until nslookup mydb.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"] |
initContainers 会优先执行,只有他们执行完了以后正常containers才会执行,如果有多个initContainer,按照顺序执行
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021