プロセッサを追加するコンテナのライフサイクルイベントkubernetes

簡単な紹介

この記事では、プロセッサ・サイクル時間コンテナ、Kubernetesサポートにステートメントを追加する方法について説明postStartしてpreStopイベント。Kubernetesは、コンテナの開始直後に送信されpostStartた容器が終了する直前に送信されたイベント、preStopイベントを。

注:このドキュメントでは、彼らの公式文書を参照して理解されるべきである、と。誤解を招くような場合は、批判をしてください。

そして、プロセッサPRESTOPはpostStartを定義し

ポッド、そこにコンテナのコンテナを作成postStartし、preStopイベントを。ファイル名:lifecycle-events.yaml

apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-demo
spec:
  containers:
  - name: lifecycle-demo-container
    image: nginx
    lifecycle:
      postStart:
        exec:
          command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
      preStop:
        exec:
          command: ["/bin/sh","-c","nginx -s quit; while killall -0 nginx; do sleep 1; done"]

設定ファイルでは、postStartコマンドは書いてmessageコンテナにファイルを/usr/share/messageディレクトリ。preStopコマンドスーッnginxコンテナは、障害が原因で終了した場合、それが参考になります。

# kubectl apply -f /root/k8s-example/pods/lifecycle-events.yaml

ポッドは、容器が実行されている確認します

# kubectl get pod lifecycle-demo
NAME             READY   STATUS    RESTARTS   AGE
lifecycle-demo   1/1     Running   0          26h

容器シェルへ

# kubectl exec -it lifecycle-demo -- /bin/bash

シェルの確認postStartプロセッサは、作成しmessageたファイルが存在します

root@lifecycle-demo:/#  cat /usr/share/message
Hello from the postStart handler

あなたは、コンテナを作成した後、Kubernetesはすぐに送信されpostStartたイベントを。しかし、コンテナを呼び出すことを保証なしentrypoint最初の呼び出しの前にpostStartハンドラ。postStartまで、ハンドラは、コンテナブロックのコードコンテナが、Kubernetes管理に関して非同期で実行postStartハンドラが完成します。postStart前処理プログラムが完了すると、状態は、コンテナに設定されていませんRUNNING

おすすめ

転載: www.cnblogs.com/mcsiberiawolf/p/12227852.html