Kubernetes イベントセンターを作成して、登録済みクラスターのイベントを記録できます。これらのイベントには、Pod の構成変更やコンポーネントの例外などが含まれます。Kubernetes イベントセンターは、クラスターイベントをリアルタイムで収集、保存、可視化します。イベントセンターでは、イベントのクエリと分析、アラートの設定が可能です。このトピックでは、登録済みクラスターの Kubernetes イベントセンターを作成する方法について説明します。
前提条件
ACK One 登録済みクラスターを作成する、およびオンプレミスデータセンターにデプロイされた外部 Kubernetes クラスターが ACK One 登録済みクラスターに接続されています。
背景情報
Kubernetes のアーキテクチャは、状態機械に基づいています。イベントは、状態のトランジションが発生したときに生成されます。通常のイベントは、通常の状態間のトランジション中に生成されます。警告イベントは、通常の状態と異常な状態の間のトランジション中に生成されます。
ACK は、さまざまなシナリオのイベントに対応する、すぐに使えるモニタリングソリューションを提供します。ACK によって維持される node-problem-detector および kube-eventer ツールを使用すると、Kubernetes イベントをモニターできます。
node-problem-detector は、Kubernetes ノードを診断するためのツールです。node-problem-detector はノードの例外を検出し、ノードイベントを生成し、kube-eventer と連携してこれらのイベントに関するアラートを発生させ、アラートのクローズドループ管理を可能にします。node-problem-detector は、Docker エンジンのハング、Linux カーネルのハング、アウトバウンドトラフィックの例外、ファイル記述子の例外などの例外が検出されたときにノードイベントを生成します。詳細については、「NPD」をご参照ください。
kube-eventer は、ACK によって維持されるオープンソースのイベントエミッターです。kube-eventer は、Kubernetes イベントを DingTalk、Log Service、EventBridge などのシンクに送信します。kube-eventer は、さまざまなレベルのイベントをフィルターするためのフィルター条件も提供します。kube-eventer を使用して、リアルタイムでイベントを収集し、特定のイベントでアラートをトリガーし、非同期でイベントをアーカイブできます。詳細については、「kube-eventer」をご参照ください。
ステップ 1: イベントセンターコンポーネントに RAM 権限を付与する
onectl を使用する
オンプレミスマシンに onectl をインストールします。詳細については、「onectl を使用して登録済みクラスターを管理する」をご参照ください。
次のコマンドを実行して、Resource Access Management (RAM) 権限をイベントセンターコンポーネントに付与します:
onectl ram-user grant --addon ack-node-problem-detector期待される出力:
Ram policy ack-one-registered-cluster-policy-ack-node-problem-detector granted to ram user ack-one-user-ce313528c3 successfully.
コンソールを使用する
登録済みクラスターにコンポーネントをインストールする前に、AccessKey ペアを設定して、登録済みクラスターに Alibaba Cloud リソースへのアクセス権限を付与する必要があります。AccessKey ペアを設定する前に、Resource Access Management (RAM) ユーザーを作成し、RAM ユーザーに Alibaba Cloud リソースへのアクセス権限を付与します。
カスタムポリシーを作成するか、AliyunECIFullAccess ポリシーを選択して、RAM ユーザーに権限を付与できます。
AccessKey ペアの作成 (RAM ユーザー用)。
警告詳細については、「ネットワークアクセス制御のための AccessKey ペアベースのポリシーを設定する」をご参照ください。AccessKey の呼び出し元を信頼できるネットワーク環境に限定して AccessKey のセキュリティを強化することをお勧めします。
AccessKey ペアを使用して、登録済みクラスターに
alibaba-addon-secretという名前の Secret を作成します。イベントセンターのコンポーネントをインストールすると、システムは自動的に AccessKey ペアを使用してクラウドリソースにアクセスします。
次のコマンドを実行して、イベントセンターの Secret を作成します。
kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'説明前のステップで取得した AccessKey ペアで
<your AccessKey ID>と<your AccessKey Secret>を置き換えます。
ステップ 2: Kubernetes イベントセンターをインストールする
onectl を使用する
次のコマンドを実行して、イベントセンターコンポーネントをインストールします:
onectl addon install ack-node-problem-detector期待される出力:
Addon ack-node-problem-detector, version xxx installed.コンソールを使用する
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、目的のクラスターを見つけてその名前をクリックします。左側のペインで、 を選択します。
任意: コンソールに Ack-node-problem-detector Is Not Installed と表示された場合は、[イベントセンターの作成] をクリックします。
[イベントセンター] ページで、[イベント概要 (イベントセンター)] タブをクリックして、Kubernetes イベントセンターに関する情報を表示します。
Kubernetes イベントセンターは、イベントの概要、イベントの詳細、および Pod のライフサイクルに関する情報を提供します。クエリをカスタマイズしたり、アラートを設定したりすることもできます。
結果
構成が完了すると、Kubernetes イベントセンターを使用できます。詳細については、「Kubernetes イベントセンターの作成と使用」をご参照ください。
登録済みクラスター用に Kubernetes イベントセンターが作成されると、イベントセンターを使用して、イベントの概要の確認、イベントの詳細の表示、Pod のライフサイクルの確認、アラートの設定、クエリのカスタマイズができます。