标签:产生 初始化 uber comm https root app mys stp
在Pod中,容器是共享存储资源和网络资源的,所以Init Container容器产生的数据是可以被其他容器作用到的。初始化容器有点类似于postStart 钩子的作用,在Pod没有启动之前,为应用容器做一些准备工作,但是跟钩子的启动处于不同的阶段,在Pod生命周期图中可以明显看出。Pod中可以启动一个或多个容器,也可以有一个或多个initContainer 容器。
initContainer 容器和普通容器几乎一样,除了一下两点:
如果init容器启动失败,容器根据restartPolicy策略重启,如果有多个,它们会按顺序,一次执行一个,每个init容器都必须运行成功了才会运行下一个。init容器不支持readnessProbe,因为它们必须在Pod就绪前运行完成。
apiVersino: v1
kind: Pod
metadata:
name: myapp
spec:
initContainers:
- name: init-server
image: busybox
command: ["/bin/bash","-c","chown -R apache:apache /var/www"]
volumeMount:
- name: wwwroot
mountPath: /var/www
containers:
- name: my-service
image: httpd
containerPort:
- name: http
port: 80
protocol: TCP
volumeMount:
- name: wwwroot
mountPath: /var/www
volumes:
- name: wwwroot
hostPath:
path: /home/wwwroot
可以通过init Container修改主容器应用中的共享存储文件权限,让/var/www 路径成为apache用户和组拥有。这是我们利用initContainer起到的作用之一。
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: busybox
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
initContainers:
- name: init-myservice
image: busybox
command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
- name: init-mydb
image: busybox
command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']
标签:产生 初始化 uber comm https root app mys stp
原文地址:https://www.cnblogs.com/h-gallop/p/11809606.html