このトピックでは、[EventBridge] に公開できる Container Service for Kubernetes (ACK)イベントについて説明します。
使用上の注意
ACK イベントは、次の 2 つのイベントソースから取得されます。
Application Real-Time Monitoring Service (ARMS)
Kubernetes クラスタに ARMS Prometheus コンポーネントをインストールする必要があります。詳細については、「手順 1: Managed Service for Prometheus を有効にする」をご参照ください。
これらのイベントは cs:k8s:K8s-event-via-arms タイプであり、特定のタイプに分類されません。
Node Problem Detector (NPD)
Kubernetes クラスタに ack-node-problem-detector コンポーネントをインストールし、[EventBridge] をシンクとして構成する必要があります。 詳細については、「NPD コンポーネントをインストールする」をご参照ください。
これらのイベントはリソースタイプ別に分類されます。たとえば、cs:k8s:PodRelatedEvent タイプのイベントは、ポッドに関連するイベントです。
イベント
次の表に、[EventBridge] に公開できる ACK イベントを示します。
イベント | 値 種類 パラメーター |
ConfigMap に関連する ACK イベント | cs:k8s:ConfigMapRelatedEvent |
CRON ジョブに関連する ACK イベント | cs:k8s:CronJobRelatedEvent |
DaemonSet に関連する ACK イベント | cs:k8s:DaemonSetRelatedEvent |
Deployment に関連する ACK イベント | cs:k8s:DeploymentRelatedEvent |
Ingress に関連する ACK イベント | cs:k8s:IngressRelatedEvent |
ジョブに関連する ACK イベント | cs:k8s:JobRelatedEvent |
cs:k8s:k8s-event-via-arms | |
名前空間に関連する ACK イベント | cs:k8s:NamespaceRelatedEvent |
ノードに関連する ACK イベント | cs:k8s:NodeRelatedEvent |
永続ボリュームクレーム(PVC)に関連する ACK イベント | cs:k8s:PersistentVolumeClaimRelatedEvent |
永続ボリューム(PV)に関連する ACK イベント | cs:k8s:PersistentVolumeRelatedEvent |
cs:k8s:PodRelatedEvent | |
ReplicaSet に関連する ACK イベント | cs:k8s:ReplicaSetRelatedEvent |
ReplicationController に関連する ACK イベント | cs:k8s:ReplicationControllerRelatedEvent |
StatefulSet に関連する ACK イベント | cs:k8s:StatefulSetRelatedEvent |
リソースに対して操作が実行される | cs:ActionTrail:AliyunServiceEvent |
API 操作が呼び出される | cs:ActionTrail:ApiCall |
コンソールで操作が実行される | cs:ActionTrail:ConsoleOperation |
リソース変更ログが配信されたことを示す通知 | cs:Config:ConfigurationItemChangeNotification |
リソースが非準拠と評価されたことを示す通知 | cs:Config:NonCompliantNotification |
CloudEvents 仕様で定義されているパラメータの詳細については、「概要」をご参照ください。
上記の表では、頻度の高い ACK イベントのみを説明しています。上記の表に記載されていないイベントを照合するには、カスタムルールを使用できます。また、すべてのイベントをフィルタリングして表示することもできます。
ACK イベントのタイプは、cs:k8s:{リソースタイプ名}RelatedEvent の形式で名前が付けられます。たとえば、ポッドに関連する ACK イベントの場合、type パラメータの値は cs:k8s:PodRelatedEvent です。
ARMS によって収集された ACK イベント
次のサンプルコードは、ARMS によって収集され、[EventBridge] によって受信された ACK イベントを示しています。
{
"id":"4cf9678d-dfec-4d6e-9fd1-a9a2d205****",
"source":"acs.cs",
"time":"2020-11-19T21:04:41+08:00",
"data":{
"reason":"FailedCreatePodSandBox", // Podサンドボックスの作成に失敗しました
"involvedObject":{
"uid":"e0a7e4b6-5331-487f-bb0a-e69647a9****",
"apiVersion":"v1",
"kind":"Pod",
"resourceVersion":"40326010",
"namespace":"kube-system",
"name":"alicloud-application-controller-798784bf49-v88hc"
},
"count":1,
"source":{
"component":"kubelet",
"host":"cn-hangzhou.192.168.XX.XX"
},
"message":"Failed to create pod sandbox", // Podサンドボックスの作成に失敗しました
"type":"Warning", // 警告
"firstTimestamp":"2020-11-19T21:04:41Z",
"lastTimestamp":"2020-11-19T21:04:41Z"
},
"specversion":"1.0",
"datacontenttype":"application/json",
"type":"cs:k8s:K8s-event-via-arms",
"aliyunaccountid":"123456789098****",
"aliyuneventbusname":"default",
"aliyunpublishtime":"2020-11-19T21:04:42Z",
"aliyunregionid":"cn-hangzhou",
"aliyunpublishaddr":"172.25.XX.XX"
}data フィールドのパラメータについて、次の表で説明します。
パラメータ | タイプ | 例 | 説明 |
reason | String | FailedCreatePodSandBox | ACK イベントが報告された理由。 |
involvedObject | Struct | イベントに関連するオブジェクト。 | |
uid | String | e0a7e4b6-5331-487f-bb0a-e69647a9**** | リソースの一意の ID。 |
apiVersion | String | v1 | API のバージョン番号。 |
kind | String | Pod | リソースのタイプ。 |
resourceVersion | String | 40326010 | リソースのバージョン番号。 |
namespace | String | kube-system | リソースが存在する名前空間。 |
name | String | alicloud-application-controller-798784bf49-v88hc | リソースの名前。 |
count | Integer | 1 | イベントの発生回数。 |
source | Struct | イベントを検出したリソース。 | |
component | String | kubelet | source パラメータが指定するイベントソースのタイプ。 |
host | String | cn-hangzhou.192.168.XX.XX | source パラメータが指定するイベントソースの一意の ID。 |
message | String | Failed to create pod sandbox | イベントの説明。 |
type | String | Warning | イベントの重大度。 有効な値:
|
firstTimestamp | Timestamp | 2020-11-19T21:04:41Z | イベントが最初に発生した時刻。 |
lastTimestamp | Timestamp | 2020-11-19T21:04:41Z | イベントが最後に発生した時刻。 |
ポッドに関連する ACK イベント
次のサンプルコードは、ポッドに関連し、[EventBridge] によって受信された ACK イベントを示しています。
{
"datacontenttype":"application/json",
"aliyunaccountid":"123456789098****",
"data":{
"reason":"BackOff", // バックオフ
"metadata":{
"uid":"0a2d6413-ea4a-414b-a813-aa9b6a17****",
"resourceVersion":"1163710",
"creationTimestamp":"2021-01-08T07:11:52Z",
"name":"oom-test",
"namespace":"default"
},
"involvedObject":{
"uid":"3438fea9-1e54-4f71-aec5-6e874136****",
"apiVersion":"v1",
"kind":"Pod",
"resourceVersion":"425592514",
"name":"oom-test-85b",
"namespace":"default"
},
"reportingInstance":"",
"count":197,
"source":{
"component":"kubelet",
"host":"cn-hangzhou.172.16.XX.XX"
},
"message":"Back-off restarting failed container", // 失敗したコンテナの再起動をバックオフしています
"type":"Warning", // 警告
"reportingComponent":"",
"firstTimestamp":"2021-01-08T07:11:52Z",
"lastTimestamp":"2021-01-08T07:56:41Z"
},
"subject":"acs:cs:cn-hangzhou:123456789098****:abc/apis/v1/namespaces/default/pods/oom-test-85b",
"source":"acs.cs",
"type":"cs:k8s:PodRelatedEvent",
"aliyunpublishtime":"2021-01-18T09:43:58.785Z",
"specversion":"1.0",
"aliyuneventbusname":"default",
"id":"af182bae-16b8-4327-bb3a-a972de72****",
"time":"2021-01-08T15:57:00+08:00",
"aliyunregionid":"cn-hangzhou",
"aliyunpublishaddr":"172.25.XX.XX"
}data フィールドのパラメータについて、次の表で説明します。
パラメータ | タイプ | 例 | 説明 |
reason | String | BackOff | ポッドに関連する ACK イベントが発生した理由。 |
metadata | Struct | イベントのメタデータ。 | |
uid | String | 0a2d6413-ea4a-414b-a813-aa9b6a17**** | Kubernetes クラスタ内のイベントの一意の ID。 |
resourceVersion | Integer | 1163710 | イベントのバージョン番号。イベントが変更されるたびに、バージョン番号は順番に増加します。 |
creationTimestamp | Timestamp | 2021-01-08T07:11:52Z | イベントが最初に作成されたタイムスタンプ。 |
name | String | oom-test | イベントの名前。 |
namespace | String | default | イベントが属する名前空間。 |
involvedObject | Struct | イベントに関連するオブジェクト。 | |
uid | String | 3438fea9-1e54-4f71-aec5-6e874136**** | リソースの一意の ID。 |
apiVersion | String | v1 | API のバージョン番号。 |
kind | String | Pod | リソースのタイプ。 |
resourceVersion | String | 40326010 | リソースのバージョン番号。 |
namespace | String | default | リソースが存在する名前空間。 |
name | String | oom-test-85b6c9494b-hpllq | リソースの名前。 |
reportingInstance | String | N/A | イベントを開始したインスタンス。 |
count | Integer | 197 | イベントの発生回数。 |
source | Struct | イベントを検出したリソース。 | |
component | String | kubelet | source パラメータが指定するイベントソースのタイプ。 |
host | String | cn-hangzhou.172.16.XX.XX | source パラメータが指定するイベントソースの一意の ID。 |
message | String | Back-off restarting failed container | イベントの説明。 |
type | String | Warning | イベントの重大度。 有効な値:
|
reportingComponent | String | N/A | イベントを開始したコンポーネント。 |
firstTimestamp | Timestamp | 2021-01-08T07:11:52Z | イベントが最初に発生した時刻。 |
lastTimestamp | Timestamp | 2021-01-08T07:56:41Z | イベントが最後に発生した時刻。 |
NPD コンポーネントをインストールする
ACK コンソール にログインします。
左側のナビゲーションペインで、 を選択します。
[マーケットプレイス] ページで、[アプリカタログ] タブをクリックします。検索ボックスに ack-node-problem-detector と入力し、
アイコンをクリックします。[ack-node-problem-detector] カードをクリックします。コンポーネントの詳細ページで、[デプロイ] をクリックします。
[デプロイ] パネルで、パラメータを構成し、[OK] をクリックします。
[基本情報] ステップで、クラスタと名前空間を選択し、[次へ] をクリックします。
[パラメータ] ステップで、コードエディタの Sink パラメータの eventbridge について、enabled の値を true に変更します。