

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# EC2 インスタンスストアを設定した AWS Outposts にあるローカルの Amazon EKS クラスターをトラブルシューティングする
<a name="eks-outposts-instance-store-troubleshooting"></a>

このトピックでは、EC2 インスタンスストアを設定した AWS Outposts でローカルの Amazon EKS クラスターの使用中に表示される可能性がある一般的なエラーとそのトラブルシューティング方法について説明します。

## `kubeconfig` の設定後に `kubectl` が動作しない
<a name="eks-outposts-instance-store-troubleshooting-kubectl"></a>

`aws eks update-kubeconfig` の実行後に次のエラーが表示される場合:

```
Either parameter --cluster-name or --cluster-id must be specified.
```

または:

```
couldn't get current server API group list: getting credentials: exec: executable aws failed with exit code 1
```

`kubeconfig` (`~/.kube/config`) では、`--cluster-id` ではなく引数 `exec` に `--cluster-name` を指定していることを確認します。

```
      args:
        - --region
        - region-code
        - eks
        - get-token
        - --cluster-name
        - my-cluster
        - --output
        - json
      command: aws
```

## ノードがクラスターに参加していない
<a name="eks-outposts-instance-store-troubleshooting-nodes-not-joining"></a>

`kubectl get nodes` の実行時にノードが表示されない場合:

1.  **ノードで `kubelet` ログを確認します。**SSM または SSH でノードにアクセスし、以下を実行します。

   ```
   systemctl status kubelet -l
   ```

1.  **不正なエラーがないか確認します。**不正なエラーがある場合、ノードロールにアクセス許可がないか、`aws-auth` ConfigMap に問題が発生している可能性があります。ノードのインスタンスロールが `aws-auth` ConfigMap に正しくマッピングされていることを確認します。

1.  **CSR ステータスを確認します。**ノードの証明書署名リクエストが承認済みであることを確認します。

   ```
   kubectl get csr
   ```

   CSR が `Pending` 状態の場合は、承認します。

   ```
   kubectl certificate approve node-csr-EXAMPLE
   ```

## クラスターが `CREATING` 状態でスタックしています
<a name="eks-outposts-instance-store-troubleshooting-creating"></a>

クラスターが FAILED ステータスになった場合:
+  **容量不足:** 指定されたインスタンスタイプの 6 つのコントロールプレーンインスタンス (3 つの `etcd` \+ 3 つの API サーバー) に対応できるように、Outposts の仮想化容量が十分に確保されていることを確認します。インスタンスタイプは、Outposts にスロットされている必要があります。
+  **スプレッドトポロジを満たせない:** `host` の `spreadLevel` を指定した場合は、選択したインスタンスタイプで少なくとも 3 つのホストが設定されていることを確認します。`rack` を指定した場合は、選択したインスタンスタイプのホストが少なくとも 3 つのラックにあることを確認します。
+  **サブネットの問題:** 指定したサブネットが Outposts のホームであるアベイラビリティーゾーンにあり、各サブネットに使用可能な IP アドレスが少なくとも 3 つあることを確認します。「[EC2 インスタンスストアを設定した AWS Outposts に Amazon EKS ローカルクラスターの VPC とサブネットを作成する](eks-outposts-instance-store-vpc-subnet-requirements.md)」を参照してください。

## クラスターが `UPDATING` 状態でスタックしています
<a name="eks-outposts-instance-store-troubleshooting-updating"></a>

Kubernetes バージョンまたはプラットフォームバージョンの更新中にクラスターが `UPDATING` 状態のままである場合:
+  **容量不足:** 更新中に、コントロールプレーンインスタンスは再インスタンス化の前に削除されます。置換先インスタンスをプロビジョニングする前に、解放された容量が別のワークロードによって消費された場合、更新は停止します。コントロールプレーンインスタンスタイプに使用可能な容量が Outposts にあることを確認します。

## `etcd` のクォーラム損失
<a name="eks-outposts-instance-store-troubleshooting-etcd-quorum"></a>

Kubernetes API オペレーションを実行できなくなり、Outposts との接続が切断された場合:
+  `etcd` のクォーラムが失われた可能性があります。これが発生するのは、切断中に複数の `etcd` インスタンスが使用できなくなった場合です。
+ 既に実行中のワークロードは引き続き動作しますが、Kubernetes API オペレーションは使用できなくなります。
+ 接続が復元されると、Amazon EKS は最新の `etcd` スナップショットからクラスターの状態を復旧します。

[AWS サポートセンター](https://console.aws.amazon.com/support/home)にお問い合わせください。