AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Amazon EKS クラスターの Container Insights に関する問題をトラブルシューティングする方法を教えてください。
Amazon Elastic Kubernetes Service (Amazon EKS) クラスターに Amazon CloudWatch Container Insights を設定する際に、問題が発生します。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Container Insights のインストールを確認する
Amazon EKS クラスターに Container Insights が正しくインストールされているかどうかを確認するには、次のコマンドを実行します。
kubectl get pods -n amazon-cloudwatch
次に、ポッドで以下のコマンドを実行します。
kubectl describe pod pod-name -n amazon-cloudwatch
注: pod-name は実際のポッド名に置き換えます。
コマンドの出力で [イベント] セクションを確認します。
CloudWatch ログを確認するには、次のコマンドを実行します。
kubectl logs pod-name -n amazon-cloudwatch
CloudWatch Observability を Amazon EKS マネージドアドオンとしてインストールする
Amazon EKS アドオンを使用して拡張オブザーバビリティ Container Insights を Amazon EKS にインストールします。
注: EKS アドオン CloudWatch Observability は、Kubernetes バージョン 1.23 以降のみを実行する Amazon EKS クラスターで使用できます。
CloudWatch Observability をセルフマネージドアドオンとしてインストールするには、次の手順を実行します。
-
cert-manager をインストールするには、次のコマンドを実行します。
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.1/cert-manager.yaml -
カスタムリソース定義 (CRD) をインストールするには、次のコマンドを実行します。
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-custom-resource-definitions.yaml | kubectl apply --server-side -f - -
CloudWatch コンテナエージェントオペレータをインストールするには、次のコマンドを実行します。
ClusterName=my-cluster-name RegionName=my-cluster-region curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl apply -f -
AWS マネジメントコンソールに表示されないメトリクスのトラブルシューティング
AWS マネジメントコンソールに Container Insights のメトリクスが表示されない場合は、Container Insights のセットアップが完了していることを確認してください。
Container Insights で発生するエラーのトラブルシューティング
Unauthorized panic: Cannot retrieve cadvisor data from kubelet (kubelet から cadvisor データを取得できません)
この問題を解決するには、kubelet で Webhook 認証モードを有効にしてください。
Invalid endpoint エラー
エラーメッセージの例
"log": "2020-04-02T08:36:16Z E! cloudwatchlogs: code: InvalidEndpointURL, message: invalid endpoint uri, original error: &url.Error{Op:\"parse\", URL:\"https://logs.{{region_name}}.amazonaws.com/\", Err:\"{\"}, &awserr.baseError{code:\"InvalidEndpointURL\", message:\"invalid endpoint uri\", errs:[]error{(*url.Error)(0xc0008723c0)}}\n",
この問題を解決するには、コマンド内のプレースホルダー値をすべて置き換える必要があります。たとえば、cluster-name と region-name に使用する情報は、AWS CLI を実行する際のデプロイに適切なものである必要があります。
クラスターのアップグレード後に、Amazon EKS または Kubernetes に関するポッドのメトリクスが表示されない
エラーメッセージの例
「W! No pod metric collected (ポッドのメトリクスは収集されませんでした)」
クラスターをアップグレードした後にポッドのメトリクスが見つからない場合は、ノード上のコンテナランタイムが想定どおりに動作しているかどうかを確認してください。
この問題を解決するには、デプロイマニフェストを更新し、コンテナ化したソケットをホストからコンテナにマウントします。
デプロイマニフェストの例
apiVersion: apps/v1 kind: DaemonSet metadata: name: cloudwatch-agent namespace: amazon-cloudwatch spec: template: spec: containers: - name: cloudwatch-agent # ... # Don't change the mountPath volumeMounts: # ... - name: dockersock mountPath: /var/run/docker.sock readOnly: true - name: varlibdocker mountPath: /var/lib/docker readOnly: true - name: containerdsock # NEW mount mountPath: /run/containerd/containerd.sock readOnly: true # ... volumes: # ... - name: dockersock hostPath: path: /var/run/docker.sock - name: varlibdocker hostPath: path: /var/lib/docker - name: containerdsock # NEW volume hostPath: path: /run/containerd/containerd.sock
マニフェストの完全な例については、GitHub のウェブサイトで「cwagent-daemonset.yaml」を参照してください。
** Amazon EKS でボトルロケットを使用する際に、ポッドのメトリクスが表示されない**
エラーメッセージの例
「W! No pod metric collected (ポッドのメトリクスは収集されませんでした)」
Bottlerocket は、ホスト上の別のコンテナパスを使用します。Bottlerocket を使用する場合は、すべてのボリュームを Bottlerocket コンテナパスの場所に変更する必要があります。
コマンド例
volumes: # ... - name: containerdsock hostPath: # path: /run/containerd/containerd.sock # bottlerocket does not mount containerd sock at normal place # https://github.com/bottlerocket-os/bottlerocket/commit/91810c85b83ff4c3660b496e243ef8b55df0973b path: /run/dockershim.sock
Prometheus メトリクスの収集時に、CloudWatch エージェントからのログが想定を超えて増加する
この問題を解決するには、CloudWatch エージェントを利用可能な最新バージョンに更新してください。現在のバージョンを確認する方法については、「CloudWatch エージェントのバージョンに関する情報を特定する」を参照してください。最新バージョンをインストールする方法については、「CloudWatch エージェントのインストール」を参照してください。
CloudWatch エージェントで発生する CrashLoopBackoff エラー
この問題を解決するには、AWS Identity and Access Management (IAM) アクセス許可が正しく設定されていることを確認してください。
CloudWatch エージェントまたは Fluentd ポッドが保留状態に留まっている
ポッドが Pending 状態のままになっていたり、CloudWatch エージェントまたは Fluentd ポッドで FailedScheduling が発生していたりする可能性があります。この問題を解決するには、エージェントが必要とするコード量と RAM に応じて、ノードに十分なコンピューティングリソースがあることを確認します。
ポッドを記述するには、次のコマンドを実行します。
kubectl describe pod cloudwatch-agent-85ppg -n amazon-cloudwatch
fluent bit の設定マップが正しくデプロイされていない
この問題を解決するには、設定マップ fluent-bit-config が名前空間 amazon-cloudwatch に正しくデプロイされていることを確認してください。
エラーメッセージの例
[2024/10/02 11:16:42] [error] [config] inconsistent use of tab and space [2024/10/02 11:16:42] [error] [config] error in /fluent-bit/etc/..2024_10_02_11_16_29.3759745087//application-log.conf:62: invalid indentation level [2024/10/02 11:16:42] [error] configuration file contains errors, aborting.cwagent-daemonset.yaml
- トピック
- Containers
- 言語
- 日本語
