排版网页设计教程南京seo网站优化

目录
Pod 中 init 容器
1 init 容器特点
2 使用 init 容器
Pod 中 init 容器
Init 容器是一种特殊容器,在Pod 内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。
1 init 容器特点
init 容器与普通的容器非常像,除了如下几点:
-  
它们总是运行到完成。如果 Pod 的 Init 容器失败,kubelet 会不断地重启该 Init 容器直到该容器成功为止。 然而,如果 Pod 对应的
restartPolicy值为 "Never",并且 Pod 的 Init 容器失败, 则 Kubernetes 会将整个 Pod 状态设置为失败。 -  
每个都必须在下一个启动之前成功完成。
 -  
同时 Init 容器不支持
lifecycle、livenessProbe、readinessProbe和startupProbe, 因为它们必须在 Pod 就绪之前运行完成。 -  
如果为一个 Pod 指定了多个 Init 容器,这些容器会按顺序逐个运行。 每个 Init 容器必须运行成功,下一个才能够运行。当所有的 Init 容器运行完成时, Kubernetes 才会为 Pod 初始化应用容器并像平常一样运行。
 -  
Init 容器支持应用容器的全部字段和特性,包括资源限制、数据卷和安全设置。 然而,Init 容器对资源请求和限制的处理稍有不同。
 
2 使用 init 容器
官网地址: Init 容器 | Kubernetes
在 Pod 的规约中与用来描述应用容器的 containers 数组平行的位置指定 Init 容器。
apiVersion: v1
kind: Pod
metadata:name: init-demo
spec:containers:- name: myapp-containerimage: busybox:1.28command: ['sh', '-c', 'echo The app is running! && sleep 3600']initContainers:- name: init-myserviceimage: busybox:1.28command: ['sh', '-c', 'echo init-myservice is running! && sleep 5']- name: init-mydbimage: busybox:1.28command: ['sh', '-c', 'echo init-mydb is running! && sleep 10'] 
-  
查看启动详细
 
$ kubectl describe pod init-demo
# 部分结果
Events:Type    Reason     Age    From               Message----    ------     ----   ----               -------Normal  Scheduled  2m16s  default-scheduler  Successfully assigned default/init-demo to k8s-node2Normal  Pulling    2m16s  kubelet            Pulling image "busybox:1.28"Normal  Pulled     118s   kubelet            Successfully pulled image "busybox:1.28" in 17.370617268s (17.370620685s including waiting)Normal  Created    118s   kubelet            Created container init-myserviceNormal  Started    118s   kubelet            Started container init-myserviceNormal  Pulled     112s   kubelet            Container image "busybox:1.28" already present on machineNormal  Created    112s   kubelet            Created container init-mydbNormal  Started    112s   kubelet            Started container init-mydbNormal  Pulled     101s   kubelet            Container image "busybox:1.28" already present on machineNormal  Created    101s   kubelet            Created container myapp-containerNormal  Started    101s   kubelet            Started container myapp-container 
