簡単な紹介
この記事では、プロセッサ・サイクル時間コンテナ、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
。