Kubernetes 1.20.5实验记录--Pod健康检查

Kubernetes 1.20.5实验记录–Pod健康检查

1.1 默认健康检查

1、创建Pod:

文件healthcheck-default.yaml

apiVersion: v1
kind: Pod
metadata: 
  name: healthcheck-default
spec:
  restartPolicy: OnFailure
  containers:
  - name: healthcheck-default
    image: busybox
    args:
    - /bin/sh
    - c
    - sleep 10; exit 1
kubectl apply -f healthcheck-default.yaml

在这里插入图片描述

2、查看Pod状态:

kubectl get pod -o wide

在这里插入图片描述

Kubernetes会根据restartPolicy: OnFailure重启Pod

3、删除Pod:

kubectl delete -f healthcheck-default.yaml

在这里插入图片描述

1.2 Liveness健康检查

1、创建Pod:

文件healthcheck-liveness.yaml

apiVersion: v1
kind: Pod
metadata:
  name: healthcheck-liveness
spec:
  restartPolicy: OnFailure
  containers:
  - name: healthcheck-liveness
    image: busybox
    args:
    - /bin/sh
    - -c
    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 3000
    livenessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 10
      periodSeconds: 5
kubectl apply -f healthcheck-liveness.yaml

在这里插入图片描述

2、查看Pod状态:

kubectl get pod -o wide

在这里插入图片描述

Kubernetes会根据restartPolicy: OnFailure重启Pod

3、删除Pod:

kubectl delete -f healthcheck-liveness.yaml

在这里插入图片描述

1.3 Readiness健康检查

1、创建Pod:

文件healthcheck-readiness.yaml

apiVersion: v1
kind: Pod
metadata:
  name: healthcheck-readiness
spec:
  restartPolicy: OnFailure
  containers:
  - name: healthcheck-readiness
    image: busybox
    args:
    - /bin/sh
    - -c
    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 3000
    readinessProbe:
      exec:
        command:
        - cat
        - /tmp/healthy
      initialDelaySeconds: 10
      periodSeconds: 5
kubectl apply -f healthcheck-readiness.yaml

在这里插入图片描述

2、查看Pod状态:

kubectl get pod -o wide

在这里插入图片描述

Kubernetes会根据restartPolicy: OnFailure,将Pod置于not ready状态

3、删除Pod:

kubectl delete -f healthcheck-readiness.yaml

在这里插入图片描述

1.4 Scale Up中使用健康检查

创建Service:

文件healthcheck.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: healthcheck
spec:
  replicas: 6
  selector:
    matchLabels:
      run: healthcheck
  template:
    metadata:
      labels:
        run: healthcheck
    spec:
      containers:
      - name: healthcheck
        image: nginx
kubectl apply -f healthcheck.yaml

在这里插入图片描述

查看Pod状态:

kubectl get pod -o wide

在这里插入图片描述

对Deployment进行Scale Up:

文件healthcheck-scaleup.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: healthcheck
spec:
  replicas: 10
  selector:
    matchLabels:
      run: healthcheck
  template:
    metadata:
      labels:
        run: healthcheck
    spec:
      containers:
      - name: healthcheck
        image: nginx
        readinessProbe:
          httpGet:
            scheme: HTTP
            path: /healthy
            port: 8080
          initialDelaySeconds: 10
          periodSeconds: 5
kubectl apply -f healthcheck-scaleup.yaml

在这里插入图片描述

查看Pod状态:

kubectl get pod -o wide

在这里插入图片描述

副本数由6扩展至10,但未通过Readiness探测,属于not ready状态

查看Deployment详细信息:

kubectl describe deploy healthcheck

在这里插入图片描述

删除Deployment:

kubectl delete -f healthcheck.yaml

在这里插入图片描述

1.5 Rolling Update中使用健康检查

1、创建Deployment:

文件healthcheck.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: healthcheck
spec:
  replicas: 6
  selector:
    matchLabels:
      run: healthcheck
  template:
    metadata:
      labels:
        run: healthcheck
    spec:
      containers:
      - name: healthcheck
        image: busybox
        args:
        - /bin/sh
        - -c
        - sleep 10; touch /tmp/healthy; sleep 3000
        readinessProbe:
          exec:
            command:
            - cat
            - /tmp/healthy
          initialDelaySeconds: 10
          periodSeconds: 5
kubectl apply -f healthcheck.yaml

在这里插入图片描述

2、查看Pod状态:

kubectl get pod -o wide

在这里插入图片描述

3、对Deployment进行Rolling Update:

文件healthcheck-rollingupdate.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: healthcheck
spec:
  replicas: 6
  selector:
    matchLabels:
      run: healthcheck
  template:
    metadata:
      labels:
        run: healthcheck
    spec:
      containers:
      - name: healthcheck
        image: busybox
        args:
        - /bin/sh
        - -c
        - sleep 3000
        readinessProbe:
          exec:
            command:
            - cat
            - /tmp/healthy
          initialDelaySeconds: 10
          periodSeconds: 5
kubectl apply -f healthcheck-rollingupdate.yaml

在这里插入图片描述

4、查看Pod状态:

kubectl get pod -o wide

在这里插入图片描述

Rolling Update时,新增副本未通过Readiness探测,属于not ready状态

5、查看Deployment详细信息:

kubectl describe deploy healthcheck

在这里插入图片描述

6、删除Deployment:

kubectl delete -f healthcheck.yaml

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值