tencent cloud

Tencent Kubernetes Engine

故障時の自己回復ルール

PDF
フォーカスモード
フォントサイズ
最終更新日: 2023-05-08 18:28:50

機能の説明

インフラに安定性がなく、環境に確定性がない場合は、さまざまな側面からシステムの故障が発生することになります。スタッフを頻発する運用保守の業務から解放するために、TKEチームは、故障時の自己回復機能を自社開発し、運用保守スタッフが迅速に問題を特定できるようにサポートします。プリセットしたプラットフォーム運用保守の経験から、さまざまな検査項目に対して最小の自己回復動作を提供します。この機能は、NPD Plusコンポーネントの基盤をさらに拡張させたもので、具体的には以下の特徴が含まれています。
システムは、人員が関与して解決しなければならない持続的な故障をリアルタイムで検出します。
故障範囲には、オペレーティングシステム、K8s環境、実行時などの数十種類の検査項目が含まれています。
プリセットした専門家の経験(スクリプトの修正の実行、コンポーネントの再起動)を基に、故障に対して迅速なレスポンスを行います。

検査項目の紹介

検査項目
説明
リスクレベル
自己回復動作
FDPressure
Too many files opened(ホストのファイルのディスクリプタの数量が、最大値の90%に達したかどうかを確認します)
low
-
RuntimeUnhealthy
List containerd task failed
low
RestartRuntime
KubeletUnhealthy
Call kubelet healthz failed
low
RestartKubelet
ReadonlyFilesystem
Filesystem is readonly
high
-
OOMKilling
Process has been oom-killed
high
-
TaskHung
Task blocked more then beyond the threshold
high
-
UnregisterNetDevice
Net device unregister
high
-
KernelOopsDivideError
Kernel oops with divide error
high
-
KernelOopsNULLPointer
Kernel oops with NULL pointer
high
-
Ext4Error
Ext4 filesystem error
high
-
Ext4Warning
Ext4 filesystem warning
high
-
IOError
IOError
high
-
MemoryError
MemoryError
high
-
DockerHung
Task blocked more then beyond the threshold
high
-
KubeletRestart
Kubelet restart
low
-

ノードの故障時の自己回復機能を有効化します

コンソールを介して

1. TKEコンソールにログインし、左側ナビゲーションバーからクラスターを選択します。
2. クラスターリストページで、クラスターIDをクリックし、このクラスターの詳細ページに進みます。
3. 左側メニューバーのノード管理 > 故障時の自己回復ルールを選択し、「故障時の自己回復ルールリスト」ページに進みます。
4. 故障時の自己回復ルールの新規作成をクリックし、下図に示すとおり、新しい故障時の自己回復ルールを作成します。

5. 作成完了後、ノードプールリストページに戻ります。
6. ノードプールIDをクリックし、ノードプール詳細ページに進みます。
7. ノードプール詳細ページの「運用保守情報」モジュールで、編集をクリックし、ノードプールの故障時の自己回復機能を有効化します。
8. 有効化すると、「運用保守記録」からリアルタイムで故障の検出の詳細を確認することができます。ステータスが「失敗」となっている場合は、この検査項目が有効化されていないことを示しています。

YAMLで操作します

1. 故障時の自己回復ルールの新規作成

コマンドkubectl ceate -f demo-HealthCheckPolicy.yamlに従って、クラスターに自己回復ルールを作成します。YAMLの設定は次のとおりです。
apiVersion: config.tke.cloud.tencent.com/v1
kind: HealthCheckPolicy
metadata:
name: test-all
namespace: cls-xxxxxxxx(クラスターID)
spec:
machineSetSelector:
matchLabels:
key: fake-label
rules:
- action: RestartKubelet
enabled: true
name: FDPressure
- action: RestartKubelet
autoRepairEnabled: true
enabled: true
name: RuntimeUnhealthy
- action: RestartKubelet
autoRepairEnabled: true
enabled: true
name: KubeletUnhealthy
- action: RestartKubelet
enabled: true
name: ReadonlyFilesystem
- action: RestartKubelet
enabled: true
name: OOMKilling
- action: RestartKubelet
enabled: true
name: TaskHung
- action: RestartKubelet
enabled: true
name: UnregisterNetDevice
- action: RestartKubelet
enabled: true
name: KernelOopsDivideError
- action: RestartKubelet
enabled: true
name: KernelOopsNULLPointer
- action: RestartKubelet
enabled: true
name: Ext4Error
- action: RestartKubelet
enabled: true
name: Ext4Warning
- action: RestartKubelet
enabled: true
name: IOError
- action: RestartKubelet
enabled: true
name: MemoryError
- action: RestartKubelet
enabled: true
name: DockerHung
- action: RestartKubelet
enabled: true
name: KubeletRestart


2. 自己回復スイッチを有効化する

MachineSetで、フィールドhealthCheckPolicyName: test-allを指定します。YAMLの設定は次のとおりです。
apiVersion: node.tke.cloud.tencent.com/v1beta1
kind: MachineSet
spec:
type: Hosted
displayName: demo-machineset
replicas: 2
autoRepair: true
deletePolicy: Random
healthCheckPolicyName: test-all
instanceTypes:
- C3.LARGE8
subnetIDs:
- subnet-xxxxxxxx
- subnet-yyyyyyyy
......



ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック