title: How to add kubernetes liveness probe
body: <p>I am writing a simple YAML file to apply liveness probe using a TCP port on Centos.6</p>
  
  <ol>
  <li>I pulled a centos:6 image from public repository</li>
  <li>started a container using the image.</li>
  <li>installed mysql, and started it to verify a opened port (3306)</li>
  <li>committed to local repository as "mysql-test:v0.1"</li>
  </ol>
  
  <p>and apply a pod as below</p>
  
  <pre><code>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
  </code></pre>
  
  <p>But, the status of the pod is <strong>CrashLoopBackOff</strong>, and the status of the container on work02 is <strong>Exited</strong>.</p>
  
  <p>1) master node</p>
  
  <pre><code>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)"
  </code></pre>
  
  <p>2) work node</p>
  
  <pre><code>root@kubeadm-work02:~# docker logs f64e20bf33a8
  Starting mysqld:  [  OK  ]
  </code></pre>