知识点记录-K8S中POD的周期

知识点记录-K8S中POD的周期,第1张

知识点记录-K8S中POD的周期

知识点记录-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: 网络调用状态异常

测试 pod-initcontainer.yaml
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或者https
pod-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.yaml
apiVersion: 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

pod-restartpolicy.yaml
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   # 设置容器重启

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5712432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存