翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ポッドエビクション時間を設定する
ポッドエビクション時間は、コントロールプレーンまたはアベイラビリティーゾーンの障害シナリオで回復性を設計する場合に便利です。サブネットのネットワーク接続が失われるアベイラビリティーゾーンの障害テスト中、影響を受けるすべての Amazon EKS ノードは Amazon EKS コントロールプレーンへの接続を失います。1 分以内に、影響を受けるすべての Amazon EKS ノードに NotReady
ステータスとマークされ、ポッドエンドポイントまたは EndpointSlices がサービスエンドポイントから削除されます。ただし、影響を受けるノードで実行されているすべてのポッドは、デフォルトの 5 分間running
ステータスのままになります。その後、ポッドは としてマークされTERMINATING
、新しいポッドがスケジュールされます。
Kubernetes Controller Manager 内の pod-eviction-timeout
パラメータはデフォルトで 5 分に設定され、Kubernetes コントロールプレーンを介して更新できます。ただし、Amazon EKS はマネージド Kubernetes サービスであるため、 pod-eviction-timeout
は変更できません。
回避策として、ノードテイントベースのエビクションtolerationSeconds
node.kubernetes.io/unreachable
と node.kubernetes.io/not-ready
の値を指定するコードを各デプロイにアタッチします。次のコードは例を示しています。
apiVersion: apps/v1 kind: Deployment metadata: name: busybox namespace: default spec: replicas: 2 selector: matchLabels: app: busybox template: metadata: labels: app: busybox spec: tolerations: - key: "node.kubernetes.io/unreachable" operator: "Exists" effect: "NoExecute" tolerationSeconds: 2 - key: "node.kubernetes.io/not-ready" operator: "Exists" effect: "NoExecute" tolerationSeconds: 2 containers: - image: busybox command: - sleep - "3600" imagePullPolicy: IfNotPresent name: busybox restartPolicy: Always