スキップしてコンテンツを表示

よくある質問: Amazon EKS アドオン

所要時間3分
0

Amazon Elastic Kubernetes Service (Amazon EKS) アドオンに関する質問があります。

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI のエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

Q: Amazon EKS クラスターに Amazon EKS アドオンをデプロイできなかった原因を確認する方法を教えてください。

障害の原因を確認するには、Amazon EKS コンソールまたは AWS CLI を使用します。

Amazon EKS コンソールで次の手順を実行します。

  1. Amazon EKS コンソールを開きます。
  2. ナビゲーションペインで [クラスター] をクリックします。次に、アドオンを作成する対象のクラスター名を選択します。
  3. [アドオン] タブをクリックします。
  4. ステータスが [低下]、[保留中]、または [非アクティブ] であるアドオンを選択します。[ヘルスの問題] セクションに障害の原因が表示されます。

または、

AWS CLI で describe-addon コマンドを実行します。

$ aws eks describe-addon --cluster-name example-cluster --addon-name coredns

Addonissue オブジェクトに障害の原因が表示されます。

出力例:

{    "addon": {
        "addonName": "coredns",
        "clusterName": "eksn",
        "status": "DEGRADED",
        "addonVersion": "v1.8.7-eksbuild.4",
        "health": {
            "issues": [
                {
                    "code": "InsufficientNumberOfReplicas",
                    "message": "The add-on is unhealthy because it doesn't have the desired number of replicas."
                }
            ]
        }
        "addonArn": "arn:aws:eks:us-east-2:acc-ID:addon/EKS_CLUSTER/coredns/76c68b04-0804-2419-8da6-90d8318af308",
        "createdAt": "2024-01-17T06:07:23.826000+00:00",
        "modifiedAt": "2024-04-19T04:40:03.537000+00:00",
        "tags": {}
    }
}

Q: 次のエラーメッセージが表示されます。 "The add-on is unhealthy because it doesn't have the desired number of replicas." このエラーのトラブルシューティング方法を教えてください。

クラスター内の対応するポッドの状態を確認するには、次のコマンドを実行します。

kubectl get pods -n kube-system
kubectl describe pod pod-name -n kube-system
kubectl logs pod-name -n kube-system

pod-name を実際のポッド名に置き換えてください。

出力に表示されたポッドのステータスを解決する方法については、「Amazon EKS のポッドステータスをトラブルシューティングする方法を教えてください」を参照してください。

Q: 次のエラーメッセージが表示されます。 "Conflicts found when trying to apply.Will not continue to due to resolve conflicts mode." このエラーのトラブルシューティング方法を教えてください。

JSON ファイルに設定を記述します。次に、ファイルをアドオンに適用します。詳細については、「Amazon EKS マネージドアドオンを作成または更新する際、設定の競合を防ぐ方法を教えてください」を参照してください。

Q: Amazon EKS アドオンの設定をカスタマイズする方法を教えてください。

アドオンのカスタム設定を作成するには、CreateAddon API の ConfigurationValue パラメータを指定します。

CoreDNS アドオンの設定オプションを確認するには、describe-addon コマンドを実行します。

aws eks describe-addon-configuration --addon-name coredns --addon-version v1.9.3-eksbuild.2 --query configurationSchema --output text | jq

出力例:

{
  "$ref": "#/definitions/Coredns",
  "$schema": "http://json-schema.org/draft-06/schema#",
  "definitions": {
    "Coredns": {
      "additionalProperties": false,
      "properties": {
        "computeType": {
          "type": "string"
        },
        "corefile": {
          "description": "Entire corefile contents to use with installation",
          "type": "string"
        },
        "nodeSelector": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "replicaCount": {
          "type": "integer"
        },
        "resources": {
          "$ref": "#/definitions/Resources"
        }
      },
      "title": "Coredns",
      "type": "object"
    },
    "Limits": {
      "additionalProperties": false,
      "properties": {
        "cpu": {
          "type": "string"
        },
        "memory": {
          "type": "string"
        }
      },
      "title": "Limits",
      "type": "object"
    },
    "Resources": {
      "additionalProperties": false,
      "properties": {
        "limits": {
          "$ref": "#/definitions/Limits"
        },
        "requests": {
          "$ref": "#/definitions/Limits"
        }
      },
      "title": "Resources",
      "type": "object"
    }
  }
}

出力の configurationSchema 要素には、選択したバージョンの CoreDNS アドオンで設定可能な要素が表示されます。

このアドオンを更新するには、JSON スキーマに従ってカスタム設定を指定します。例えば、nodeSelector パラメータの selector_value をカスタマイズすると、特定のノードセットで CoreDNS デプロイポッドをスケジュールできます。

例:

{
    "nodeSelector": {
        "selector_key": "selector_value"
    }
}

Q: カスタム構成でアドオンを作成または更新しようとした際、次のエラーが発生します。 "ConfigurationValue provided in request is not supported: Json schema validation failed with error"?

以下の設定が原因でこのエラーが発生します。

...
"Limits":
    {
        "cpu":"100m",
        "memory":"500Mi"
    }
...

詳細設定が、アドオンバージョンがサポートする configurationSchema の形式に従っていることを確認します。CoreDNS アドオンにリソースクォータとリクエストを指定するには、次のスキーマを実行します。

...
{
   "resources": {
        "limits": {
            "cpu": "200m",
            "memory": "200Mi",
        },
        "requests": {
            "cpu": "100m",
            "memory": "100Mi"
        }
    }
}
...

Q: アドオンを更新した後に、カスタムパラメータを含むアドオン JSON スキーマが、Amazon EKS によりデフォルトパラメータに戻された原因を教えてください。

UpdateAddon API オペレーション中、configurationValues フィールドにアドオンに対するカスタムパラメータを含めなかった場合、そのアドオンはデフォルトパラメータに戻されます。

アドオンの更新時に、設定の編集内容を維持するには、次のいずれかの操作を行います。

UpdateAddon API オペレーションのたびに、configurationValues パラメータにカスタムパラメータを含めます。

または、

UpdateAddon オペレーションで --resolve-conflicts PRESERVE オプションを指定します。

Q: アドオンが Amazon EKS マネージドかセルフマネージドかを確認する方法を教えてください。

クラスターにデプロイされているアドオンのタイプを確認するには、AWS CLI で describe-addon コマンドを実行します。

aws eks describe-addon --cluster-name example-cluster --addon-name example-addon --query addon.addonVersion --output text

注: example-cluster をクラスター名に、example-addon をアドオン名に置き換えてください。

出力にアドオンに関する情報が含まれている場合は、Amazon EKS がそのアドオンを管理しています。出力にエラーメッセージが表示された場合、そのアドオンはセルフマネージドです。

Q: クラスター内のセルフマネージドアドオンを Amazon EKS アドオンに移行する方法を教えてください。

適切な競合解決方法を実施して Amazon EKS アドオンを作成します。

Amazon EKS アドオンの作成時には、configurationSchema フィールドでカスタム設定を渡すことができます。

クラスター内の設定変更を維持するには、アドオンを更新または削除する際、PRESERVE オプションを指定します。Amazon EKS アドオンが管理していないフィールドに対し、Kubernetes API が行った変更を維持するには、PRESERVE オプションを指定します。スキーマがこのマネージドフィールドをサポートしていない場合は、アドオンのデプロイまたは DaemonSet にカスタマイズを手動で追加します。次に、次回の更新オペレーションで PRESERVE オプションを指定します。

競合解決方法に OVERWRITE を選択した場合、Amazon EKS はアドオンのカスタマイズされた設定を元に戻し、値をデフォルト値で上書きします。

Q: Amazon EKS アドオンをセルフマネージドアドオンに移行する方法を教えてください。

Amazon EKS クラスターから Amazon EKS アドオンを削除してから、delete-addon コマンドを実行する必要があります。

aws eks delete-addon --cluster-name example-cluster --addon-name example-addon --preserve

注: example-cluster をクラスター名に、example-addon をアドオン名に置き換えてください。--preserve フラグを指定すると、基盤となる Kubernetes リソースを保持できます。

AWS公式更新しました 2年前
コメントはありません