栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

知识点记录-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   # 设置容器重启
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/715793.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号