如何添加kubernetes活性探针

时间:2017-08-06 10:26:57

标签: centos kubernetes kubernetes-health-check

我正在编写一个简单的YAML文件,以便在Centos.6上使用TCP端口应用活动探测

  1. 我从公共存储库中提取了一个centos:6图像
  2. 使用图片启动了一个容器。
  3. 安装了mysql,并启动它以验证打开的端口(3306)
  4. 将本地存储库提交为“mysql-test:v0.1”
  5. 并按以下方式应用广告

    apiVersion: v1
    kind: Pod
    metadata:
      labels:
        test: mysql-test
      name: mysql-test-exec
    spec:
      containers:
      - name: mysql-test
        args:
        - /sbin/service
        - mysqld
        - start
        image: mysql-test:v0.1
        livenessProbe:
          tcpSocket:
            port: 3306
          initialDelaySeconds: 15
          periodSeconds: 20
    

    但是,pod的状态为 CrashLoopBackOff ,而work02上容器的状态为已退出

    1)主节点

    root@kubeadm-master01:~# kubectl get pods 
    NAME              READY     STATUS             RESTARTS   AGE
    mysql-test-exec   0/1       CrashLoopBackOff   6          8m
    
    root@kubeadm-master01:~# kubectl describe pod mysql-test-exec
    .
    .
    .
    Events:
      FirstSeen     LastSeen        Count   From                    SubObjectPath                   Type            Reason          Message
      ---------     --------        -----   ----                    -------------                   --------        ------          -------
      1m            1m              1       default-scheduler                                       Normal          Scheduled       Successfully assigned mysql-test-exec to kubeadm-work02
      1m            1m              1       kubelet, kubeadm-work02 spec.containers{mysql-test}     Normal          Created         Created container with id abbad6585021151cd86fdfb3a9f733245f603686c90f533f23
    44397c97c36918
      1m            1m              1       kubelet, kubeadm-work02 spec.containers{mysql-test}     Normal          Started         Started container with id abbad6585021151cd86fdfb3a9f733245f603686c90f533f23
    44397c97c36918
      1m            1m              1       kubelet, kubeadm-work02 spec.containers{mysql-test}     Normal          Started         Started container with id a1062083089eed109fe8f41344136631bb9d4c08a2c6454dc7
    7f677f01a48666
      1m            1m              1       kubelet, kubeadm-work02 spec.containers{mysql-test}     Normal          Created         Created container with id a1062083089eed109fe8f41344136631bb9d4c08a2c6454dc7
    7f677f01a48666
      1m            1m              3       kubelet, kubeadm-work02                                 Warning         FailedSync      Error syncing pod, skipping: failed to "StartContainer" for "mysql-test" wit
    h CrashLoopBackOff: "Back-off 10s restarting failed container=mysql-test pod=mysql-test-exec_default(810c37bd-7a8c-11e7-9224-525400603584)"
    
      1m    1m      1       kubelet, kubeadm-work02 spec.containers{mysql-test}     Normal  Created         Created container with id 79512aeaf8a6b4692e11b344adb24763343bb2a06c9003222097962822d42202
      1m    1m      1       kubelet, kubeadm-work02 spec.containers{mysql-test}     Normal  Started         Started container with id 79512aeaf8a6b4692e11b344adb24763343bb2a06c9003222097962822d42202
      1m    43s     3       kubelet, kubeadm-work02                                 Warning FailedSync      Error syncing pod, skipping: failed to "StartContainer" for "mysql-test" with CrashLoopBackOff: "Bac
    k-off 20s restarting failed container=mysql-test pod=mysql-test-exec_default(810c37bd-7a8c-11e7-9224-525400603584)"
    
      29s   29s     1       kubelet, kubeadm-work02 spec.containers{mysql-test}     Normal  Started         Started container with id 4427a3b8e5320b284ac764c1152def4ba749e4f656b3c464a472514bccf2e30e
      1m    29s     4       kubelet, kubeadm-work02 spec.containers{mysql-test}     Normal  Pulled          Container image "centos-mysql:v0.1" already present on machine
      29s   29s     1       kubelet, kubeadm-work02 spec.containers{mysql-test}     Normal  Created         Created container with id 4427a3b8e5320b284ac764c1152def4ba749e4f656b3c464a472514bccf2e30e
      1m    10s     9       kubelet, kubeadm-work02 spec.containers{mysql-test}     Warning BackOff         Back-off restarting failed container
      27s   10s     3       kubelet, kubeadm-work02                                 Warning FailedSync      Error syncing pod, skipping: failed to "StartContainer" for "mysql-test" with CrashLoopBackOff: "Bac
    k-off 40s restarting failed container=mysql-test pod=mysql-test-exec_default(810c37bd-7a8c-11e7-9224-525400603584)"
    

    2)工作节点

    root@kubeadm-work02:~# docker logs f64e20bf33a8
    Starting mysqld:  [  OK  ]
    

1 个答案:

答案 0 :(得分:0)

我必须删除args才能使用docker image。以下部署对我有用。

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: mysql-test
  name: mysql-test-exec
spec:
  containers:
  - name: mysql-test   
    image: mysql:5.6
    env:
      - name: MYSQL_ROOT_PASSWORD
        value:  mysql456
    livenessProbe:
      tcpSocket:
        port: 3306
      initialDelaySeconds: 15
      periodSeconds: 20