07-kubernetesPod控制器应用

Overview

探针类型有三种:

ExecAction, TCPSocketAction, HTTPGetActon

资源清单1

vim liveness-exec.yaml

apiVersion: v1
kind: Pod
metadata:
    name: liveness-exec-pod
    namespace: default
spec:
    containers:
    - name: liveness-exec-container
      image: busybox: latest
      imagePullPolicy: IfNotPresent
      command: ["/bin/sh", "-c", "touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 3600"]
      livenessProbe:
        exec: 
            command: ["test", "-e", "/tmp/healthy"]
        initialDelaySeconds: 1
        periodSeconds: 3
    restartPolicy:

资源清单2

vim liveness-httpget.yaml

apiVersion: v1
kind: Pod
metadata: 
    name: liveness-httpget-pod
    namespace: default
spec:
    containers:
    - name: liveness-httpget-container
      image: ikubernetes/myapp:v1
      imagePullPolicy: IfNotPresent
      ports:
      - name: http
        containerPort:80
      livenessProbe:
        httpGet:
            port: http
            path: /index.html
        initialDelaySecond: 1
        perioSeconds: 3
        

资源清单3

vim readiness-httpget.yaml

apiVersion: v1
kind: Pod
metadata: 
    name: readiness-httpget-pod
    namespace: default
spec:
    containers:
    - name: readiness-httpget-container
      image: ikubernetes/myapp:v1
      imagePullPolicy: IfNotPresent
      ports:
      - name: http
        containerPort: 80
      readlinessProbe:
        httpGet:
            port: http
            path: /index.html
        initialDelaySeconds: 1
        periodSeconds: 3

资源清单4

vim portstart-pod.yaml

apiVersion: v1
kind: Pod
metadata:
    name: portstart-pod
    namespace: default
spec:
    containers:
    - name: busybox-httpd
        image: busybox-latest
        imagePulPolicy: IfNotPresent
        lifecycle:
            postStart:
                exec:
                    command: ["/bin/sh", "-c", "echo Home Page >> /tmp/index.html"]
        #command: ['/bin/sh', '-c', 'sleep 3600']
        command: ['/bin/httpd']
        args: ["rm", "-f", "/tmp/html"]

应用实例

  1. 示例1, 查看livenessProbe的使用说明
    kubectl explian pods.spec.containers.livenessProbe

  2. 示例2, 创建清单实例, kubectl create -f liveness-exec.yaml

  3. 示例3, 查看pods的具体描述信息, kubectl describe pods liveness-exec-pod

  4. 示例4, 使用httpGet进行探测, kubectl explain pods.spec.containers.livenessProbe.httpGet

  5. 示例5, 创建第2个资源清单, kubectl create -f liveness-httpget.yaml

  6. 示例6, 连接进入liveness-httpget-pod容器,并且手动删除容器中的文件, kubectl exec -it liveness-httpget-pod -- /bin/sh

rm -rf /usr/share/nginx/html/index.html

  1. 示例7, 查看kubectl的探测结果, kubectl describe pods liveness-httpget-pod

  2. 示例8, 创建第3个资源清单, kubectl create -f readiness-httpget.yaml

  3. 示例9, 接入readiness-httpget容器,并删除文件. kubectl exec -it readiness-httpget-pod -- /bin/sh
    rm -f /usr/share/nginx/html/index.html

  4. 示例10, 启动第4个资源清单, kubectl create -f portstart-pod.yaml

  5. 示例11, 接入poststart-pod容器,kubectl exec -it poststart-pod -- /bin/sh

后续问题待解决

  1. 探针是什么?

  2. 这里的探测是在做什么?

  3. 不断的删除文件,是在检查什么?

发布了21 篇原创文章 · 获赞 0 · 访问量 2611

猜你喜欢

转载自blog.csdn.net/u012720518/article/details/105449143