知识点记录-K8S中POD的周期
目录运行过程:(没画图)状态:测试pod-initcontainer.yaml周期函数拦截pod-hook-exec.yaml容器探测pod-livenessprobe-exec.yaml重启策略pod-restartpolicy.yaml
运行过程:(没画图)多个INIT容器串行执行->运行MAIN容器(POST START -> RUNNING(LIVNESS PROBE READINESS PROBE) -> PRE STOP)
状态:PENDIND 已创建POD 未调度或镜像下载中
RUNNING: 已调度某节点, KUBELET已创建容器
SUCCEEDED: POD中容器已停止不重启
FAILED: 有>=1的POD中容器已停止异常
UNKNOWN: 网络调用状态异常
apiVersion: v1 kind: Pod metadata: name: pod-initcontainer namespace: dev spec: containers: - name: main-container image: nginx:1.18.1 ports: - name: nginx-port containerPort: 80 initContainers: # 顺序执行启动initContainers1->启动initContainers2->启动main-container - name: initContainers1 image: busybox:1.30 command: ['sh', '-c', 'until ping 192.168.1.201 -c 1 ; do echo waiting; sleep 5; done;'] - name: initContainers2 image: busybox:1.30 command: ['sh', '-c', 'until ping 192.168.1.200 -c 1 ; do echo waiting ; sleep 5; done;']周期函数拦截
exec方式 lifecycle: postStart: exec: command: - ls - / tcpSocke方式 lifecycle: postStart: tcpSocket: port: 8080 httpGet方式 lifecycle: postStart: httpGet: path: / #URI地址 port: 80 #端口号 host: 192.168.1.100 #主机地址 scheme: HTTP #支持的协议,http或者httpspod-hook-exec.yaml
apiVersion: v1 kind: Pod metadata: name: pod-hook-exec namespace: dev spec: containers: - name: main-container image: nginx:1.18.1 ports: - name: nginx-port containerPort: 80 lifecycle: postStart: # 启动时执行 exec: command: ["/bin/sh", "-c", "echo postStart"] preStop: # 停止时执行 exec: command: ["/bin/sh", "-c", "echo preStop"]容器探测
有2个类型livenessProbe readinessProbe支持exec tcpSocket httpGet方式
pod-livenessprobe-exec.yamlapiVersion: v1 kind: Pod metadata: name: pod-livenessprobe-exec namespace: dev spec: containers: - name: nginx image: nginx:1.18.1 ports: - name: nginx-port containerPort: 80 livenessProbe: exec: command: ["/bin/ls","/"] initialDelaySeconds: 20 # 容器启动后20s开始探测 timeoutSeconds: 1 # 探测超时时间为1s重启策略
容器探测执行异常的重启策略,延迟递增为10s、20s、40s、80s、160s和300s
支持Always(默认) onFailure Never
apiVersion: v1 kind: Pod metadata: name: pod-restartpolicy namespace: dev spec: containers: - name: nginx image: nginx:1.18.1 ports: - name: nginx-port containerPort: 80 livenessProbe: httpGet: scheme: HTTP port: 80 path: / restartPolicy: Never # 设置容器重启
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)