init容器和主容器
init容器和主容器的区别
- 初始化容器不支持 Readinessprobe,因为他们必须在pod就绪之前运行完成
- 每个init容器必须运行成功,下一个才能够运行
# 定义两个初始化容器,完成后再运行主容器
vi pod-init.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
initContainers:
- name: init-myservice
image: 172.16.80.140/busybox/busybox:1.28
imagePullPolicy: IfNotPresent
command: ['sh', '-c', "sleep 5"]
- name: init-mydb
image: 172.16.80.140/busybox/busybox:1.28
imagePullPolicy: IfNotPresent
command: ['sh', '-c', "sleep 5"]
containers:
- name: myapp-container
image: 172.16.80.140/busybox/busybox:1.28
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
# 获取百度首页,挂载到init容器中,同时挂载到主容器nginx中
vi pod-init-2.yaml
apiVersion: v1
kind: Pod
metadata:
name: initnginx
spec:
initContainers:
- name: install
image: 172.16.80.140/busybox/busybox:1.28
imagePullPolicy: IfNotPresent
command:
- wget
- "-O"
- "/work-dir/index.html"
- "https://www.baidu.com"
volumeMounts:
- name: workdir
mountPath: /work-dir
containers:
- name: nginx
image: 172.16.80.140/nginx/nginx:1.26
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
volumeMounts:
- name: workdir
mountPath: /usr/share/nginx/html
dnsPolicy: Default
volumes:
- name: workdir
emptyDir: {}