Liveness プローブと readiness プローブは、コンテナの状態をチェックするために使用されるメカニズムです。Liveness プローブは、コンテナが想定どおりに実行されているかどうかを確認するために使用され、readiness プローブは、コンテナが準備ができているかどうかを確認するために使用されます。このトピックでは、liveness プローブと readiness プローブを構成して、コンテナのヘルスチェックを実行する方法について説明します。このようにして、Kubernetes はコンテナの状態をより適切に監視および管理し、サービスの高可用性と安定性を確保できます。
機能の説明
Kubernetes では、kubelet は liveness プローブと readiness プローブを使用して、コンテナの状態と実行を定期的にチェックします。
プローブ | 説明 | シナリオ |
Liveness プローブ | Liveness プローブは、コンテナが想定どおりに動作しているかどうかを確認するために使用されます。
|
|
Readiness プローブ | Readiness プローブは、コンテナがリクエストを処理する準備ができているかどうかを確認するために使用されます。
| アプリケーションは、起動時に大量のデータまたは構成ファイルを読み込むときに、一時的に外部リクエストを処理できない場合があります。この場合、アプリケーションを終了したり、アプリケーションにリクエストを送信したくない場合は、readiness プローブを使用して、このような状況を検出して対応することができます。 |
構成例
livenessProbe
パラメータと readinessProbe
パラメータを使用して、liveness プローブと readiness プローブを構成できます。詳細については、Liveness、Readiness、および Startup プローブの構成 を参照してください。
例 1: liveness プローブを構成する
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
# CLIモードを使用してコンテナをチェックするlivenessプローブを構成します。
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5 # コンテナの起動から5秒後にチェックが開始されます。
periodSeconds: 5 # チェックは5秒ごとに実行されます。
例 2: readiness プローブを構成する
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
# CLIモードを使用してコンテナをチェックするreadinessプローブを構成します。
readinessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5 # コンテナの起動から5秒後にチェックが開始されます。
periodSeconds: 5 # チェックは5秒ごとに実行されます。