2017-08-06 10 views
-1

私は 追加する方法kubernetesは、ライブネスプローブ

  1. Centos.6

    上のTCPポートを使用して生存性プローブを適用するために、単純なYAMLファイルを書いていますが、私はCentOSの引か:公開リポジトリから6の画像を
  2. は、コンテナを開始しました画像を使用します。
  3. インストールmysqlの、そして開かれたポート(3306)を確認するためにそれを開始し
  4. としてローカルリポジトリにコミットし、 "MySQLのテスト:v0.1の"

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 
以下のようにポッドを適用

ただし、ポッドのステータスはCrashLoopBackOff、work02のコンテナのステータスはです。終了です。

1)マスタノード

[email protected]:~# kubectl get pods 
NAME    READY  STATUS    RESTARTS AGE 
mysql-test-exec 0/1  CrashLoopBackOff 6   8m 

[email protected]:~# 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)ワーク・ノード

[email protected]:~# docker logs f64e20bf33a8 
Starting mysqld: [ OK ] 
+0

、'ドッキングウィンドウのps'を行うと、あなたのコンテナがポッドの –

+0

ステータスが「CrashLoopBackOff」であり、コンテナのステータスが「終了しました」で終了しているだろうことがわかります。 – jazzsir

答えて

0

Iはドッカー画像で動作するように引数を除去しなければなりません。以下のデプロイメントが私のために機能します代わりに `ドッキングウィンドウのlogs`の

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 
+0

残念ながら、それも機能していません。起動時にmysqldを実行する方法が不思議です – jazzsir

+0

Dockerイメージが自動的にmysqldを起動します。 rootパスワードを渡すだけです。あなたの得点は何ですか? – sfgroups

+0

の結果は以前と同様でした。質問があります。 "chkconfig mysqld on"を実行したにもかかわらず、centos-mysql:5.7イメージでmysqlを実行すると、 "docker run -tid --privileged = true -h test-mysql --name test-mysql centos-mysql:5.7/bin/bash"起動時にmysqldを実行しませんでした。 私はARG( -/sbin/service - mysqld - start)をYAMLに追加する選択肢はありません。私は "Dockerイメージが自動的にmysqldを起動する"ことは理解していません。 – jazzsir

関連する問題