脚本宝典收集整理的这篇文章主要介绍了初始化容器,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
初始化容器即应用程序的主容器启动之前要运行的容器,常用于为主容器执行一些预置操作,它们具有两种典型特征
有不少场景都需要在应用容器启动之前进行部分初始化操作,例如,等待其他相关联组件服务可 用、基于环境变量或配置模板为应用程序生成配置文件、从配置中心获取配置等。初始化容器的典型应 用需求具体包含如下几种。
准备镜像
docker pull busybox:1.32.0
docker pull nginx:1.17.10-alpine
apiVersion: v1
kind: Pod
metadata:
name: initcpod-test
labels:
app: initcpod-test
sPEc:
containers:
- name: initcpod-test
image: busybox:1.32.0
imagePullPolicy: IfNotPResent
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
initContainers:
- name: init-myservice
image: busybox:1.32.0
imagePullPolicy: IfNotPresent
command: [ 'sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;' ]
- name: init-mydb
image: busybox:1.32.0
command: [ 'sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;' ]
restartPolicy: Always
initcservice1.yml
apiVersion: v1
kind: Service
metadata:
name: myservice
spec:
selector:
app: myservice
ports:
- port: 80
targetPort: 9376
protocol: TCP
initcservice2.yml
apiVersion: v1
kind: Service
metadata:
name: mydb
spec:
selector:
app: mydb
ports:
- port: 80
targetPort: 9377
protocol: TCP
查看
先查看pod启动情况
kubectl get pods
详细查看pod启动情况
kubectl describe pod initcpod-test
查看initcpod-test中的第一个initContainer日志
kubectl LOGs myapp-pod -c init-myservice
运行init-myservice服务
kubectl apply -f initcservice1.yml
查看init-myservice服务运行情况
kubectl get svc
查看myapp-pod运行情况,需要耐心等一会,会发现pod的第一个init已经就绪
kubectl get pods
运行init-mydb服务
kubectl apply -f initcservice2.yml
查看init-myservice服务运行情况
kubectl get svc
查看myapp-pod运行情况,需要耐心等一会,会发现pod的两个init已经就绪,pod状态ready
kubectl get pod -w
以上是脚本宝典为你收集整理的初始化容器全部内容,希望文章能够帮你解决初始化容器所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。