Amazon VPC CNI Amazon の更新 (Amazon EKS アドオン) - Amazon EKS

Amazon VPC CNI Amazon の更新 (Amazon EKS アドオン)

Amazon EKS タイプの Amazon VPC CNI plugin for Kubernetes アドオンを更新します。Amazon EKS タイプのアドオンをクラスターに追加していない場合は、「Amazon VPC CNI (Amazon EKS アドオン) の作成」に従ってインストールできます。または、「Amazon VPC CNI の更新 (セルフマネージド型アドオン)」に従って他のタイプの VPC CNI インストールを更新します。

  1. クラスターにインストールされているアドオンのバージョンを確認します。my-cluster の部分は、自分のクラスター名に置き換えます。

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query "addon.addonVersion" --output text

    出力例は次のとおりです。

    v1.16.4-eksbuild.2

    バージョンを Amazon VPC CNI バージョン の最新バージョンの表と比較します。返されたバージョンが、最新バージョンの表にあるクラスターの Kubernetes バージョンのバージョンと同じである場合は、既に最新バージョンがクラスターにインストールされているため、この手順の残りを完了する必要はありません。出力にバージョン番号ではなくエラーが表示される場合は、Amazon EKS タイプのアドオンがクラスターにインストールされていません。この手順でアドオンを更新する前に、アドオンを作成する必要があります。VPC CNI アドオンの Amazon EKS タイプを作成するには、「Amazon VPC CNI (Amazon EKS アドオン) の作成」に従います。

  2. 現在インストールされているアドオンの設定を保存します。

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  3. AWS CLI を使用してアドオンを更新します。AWS Management Console または eksctl を使用してアドオンを更新する場合は、「Amazon EKS アドオンを更新する」を参照してください。デバイスに沿ったコマンドをコピーします。必要に応じてコマンドに次の変更を加え、変更したコマンドを実行します。

    • my-cluster の部分は、自分のクラスター名に置き換えます。

    • v1.19.0-eksbuild.1 を、使用しているクラスターバージョンに対して最新バージョンの表に記載されている最新バージョンに置き換えます。

    • 111122223333 を、アカウント ID に置き換えます。また、AmazonEKSVPCCNIRole を、作成した既存の IAM ロールの名前に置き換えます。VPC CNI の IAM ロールを作成するには、「ステップ 1: Amazon VPC CNI plugin for Kubernetes IAM ロールを作成する」を参照してください。ロールを指定するには、クラスター用に IAM OpenID Connect (OIDC) プロバイダーが必要です。クラスター用に持っているかどうかを確認、あるいは作成するには、「クラスターの IAM OIDC プロバイダーを作成する」を参照してください。

    • --resolve-conflicts PRESERVE オプションはアドオンの既存の設定値を保存します。アドオン設定にカスタム値を設定していて、このオプションを使用しない場合、Amazon EKS は値をデフォルト値で上書きします。このオプションを使用する場合、実稼働クラスターのアドオンを更新する前に、非稼動クラスターのフィールドおよび値変更をテストすることをお勧めします。この値を OVERWRITE に変更する場合、すべての設定が Amazon EKS のデフォルト値に変更されます。いずれかの設定にカスタム値を設定した場合、Amazon EKS のデフォルト値で上書きされる可能性があります。この値を none に変更した場合、Amazon EKS は設定の値を一切変更しませんが、更新が失敗する可能性があります。更新に失敗した場合、競合の解決に役立つエラーメッセージが返されます。

    • 構成設定を更新しない場合は、コマンドから --configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}}' を削除します。構成設定を更新する場合は、"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"} を、希望する設定に置き換えます。この例では、AWS_VPC_K8S_CNI_EXTERNALSNAT 環境変数は true に設定されています。指定する値は、設定スキーマに対して有効である必要があります。設定スキーマがわからない場合は、aws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.19.0-eksbuild.1, replacing v1.19.0-eksbuild.1 with the version number of the add-on that you want to see the configuration for. The schema is returned in the output. If you have any existing custom configuration, want to remove it all, and set the values for all settings back to Amazon EKS defaults, remove "env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"} from the command, so that you have empty {}. For an explanation of each setting, see CNI Configuration Variables on GitHub. を実行します。

      aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.19.0-eksbuild.1 \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole \ --resolve-conflicts PRESERVE --configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}}'

      更新が完了するまでに数秒かかる場合があります。

  4. アドオンのバージョンが更新されたことを確認します。my-cluster の部分は、自分のクラスター名に置き換えます。

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni

    更新が完了するまでに数秒かかる場合があります。

    出力例は次のとおりです。

    { "addon": { "addonName": "vpc-cni", "clusterName": "my-cluster", "status": "ACTIVE", "addonVersion": "v1.19.0-eksbuild.1", "health": { "issues": [] }, "addonArn": "arn:aws:eks:region:111122223333:addon/my-cluster/vpc-cni/74c33d2f-b4dc-8718-56e7-9fdfa65d14a9", "createdAt": "2023-04-12T18:25:19.319000+00:00", "modifiedAt": "2023-04-12T18:40:28.683000+00:00", "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole", "tags": {}, "configurationValues": "{\"env\":{\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":\"true\"}}" } }