Amazon EKS の kubelet または CNI プラグインの問題のトラブルシューティング方法を教えてください。

最終更新日: 2020 年 9 月 11 日

Amazon Elastic Kubernetes Service (Amazon EKS) 用の kubelet または CNI プラグインの問題を解決したいと考えています。

簡単な説明

CNI プラグインを使用してワーカーノードのポッドに IP アドレスを割り当てたり、そこで処理を実行させるためには以下が必要です。

  • AWS Identity and Access Management (IAM) のアクセス許可。これには、ワーカーノードの IAM ロールにアタッチされているか、サービスアカウントの IAM ロールを通じて提供されている、Amazon EKS CNI ポリシーが含まれます
  • ワーカーノードからアクセスが可能な Amazon EKS API サーバーエンドポイント。
  • Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Elastic Container Registry (Amazon ECR)、Amazon Simple Storage Service (Amazon S3) における、各 API エンドポイントへのネットワークアクセス。
  • サブネットで利用できる十分な IP アドレス。

解決方法

各ワーカーノードにおいて、 aws-node ポッドのステータスが Running となっていることを確認する

ワーカーノードで、aws-node ポッドのステータスが Running となっているかは、次のコマンドを実行することで確認できます。

kubectl get pods -n kube-system -l k8s-app=aws-node -o wide

コマンドにより RESTARTS カウントが 0 と出力されれば、その aws-node ポッドのステータスは Running になっています。「サブネットに利用可能な IP アドレスが十分にあることを確認する」セクションのトラブルシューティングステップを実行します。

コマンドが、RESTARTS カウントに 0 より大きい値を出力した場合は、次のステップを試してください。

ワーカーノードから Amazon EKS クラスターの API サーバーエンドポイントにアクセスできることを確認するには、次のコマンドを実行します。

curl -vk https://eks-api-server-endpoint-url

Amazon EKS クラスターに接続できない場合は、以下を試してください。

1.    ワーカーノードの Amazon EKS 用のセキュリティグループ設定 が、正しく構成されていることを確認します。

2.    ご使用のワーカーノードにおいて、サブネットに対するネットワークアクセスコントロールリスト (ネットワーク ACL) 内のルールにより、Amazon EKS API サーバーエンドポイントとの通信が許可されていることを確認します。

重要 : ポート 443 でインバウンドトラフィックとアウトバウンドトラフィックを許可します。

3.    次のコマンドを実行し、各ワーカーノードで kube-proxy ポッドが Running ステータスになっていることを確認します。

kubectl get pods -n kube-system -l k8s-app=kube-proxy -o wide

4.    ワーカーノードから、 Amazon EC2、Amazon ECR、および Amazon S3 の 各 API エンドポイントにアクセスできることを確認します。

注 : これらのサービスには、 パブリックエンドポイント または AWS PrivateLinkを通じて設定ができます。

サブネットに利用可能な IP アドレスが十分にあることを確認する

Amazon Virtual Private Cloud (Amazon VPC) ID における各サブネットで利用可能な IP アドレスを一覧表示するには、次のコマンドを実行します。

aws ec2 describe-subnets --filters "Name=vpc-id,Values=<VPCID>" | jq '.Subnets[] | .SubnetId + "=" + "\(.AvailableIpAddressCount)"'

ポッドが起動されているサブネットにおける available-ip-address-count の値は、通常 0 より大きくなります。

セキュリティグループ数の制限に達していないことを確認する

Elastic Network Interface において、セキュリティグループの数が保持できる制限に達していると、ポッドネットワーキング の設定に失敗することがあります。

詳細については、Amazon VPC のクォータをご参照ください。

ワーカーノードで使用されるインスタンスタイプが CNI プラグインでサポートされていることを確認する

詳細については、CNI プラグインでサポートされているインスタンスタイプのリストをご参照ください。

CNI プラグインの最新安定バージョンを実行していることを確認する

CNI プラグインに最新バージョンがあるかは、Kubernetes 用の Amazon VPC CNI プラグインのアップグレードでご確認ください。

その他のトラブルシューティングについては、AWS GitHub の問題に関するページと CNI プラグインのリリースノートをご参照ください。


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


請求に関するサポートまたは技術的なサポートが必要ですか?