このトピックでは、既存のユーザー クラスタの構成を更新する方法について説明します。
概要
Kubernetes バージョン 1.20 以降を実行しているユーザー クラスタでは、次の属性を変更できます。
- ユーザー クラスタのセキュリティ グループ。このトピックで説明します。
- クラスタとノードプールのバージョン。詳細については、GKE on AWS のアップグレードをご覧ください。
- プロキシ設定。詳細については、プロキシ設定の変更をご覧ください。
- ノードプールのサイズ。詳細については、ノードプールのサイズを変更するをご覧ください。
Kubernetes 1.22 以降では、EC2 インスタンス タイプを更新できます。
これらのリソースを更新するには、AWSCluster リソースと AWSNodePool リソースを編集します。
構成を更新すると、GKE on AWS はクラスタまたはノードプールを Updating
状態にします。更新が完了すると、クラスタまたはノードプールは Provisioned
状態に戻ります。
始める前に
ユーザー クラスタを変更するには、クラスタとノードプールで Kubernetes バージョン 1.20 以降が実行されている必要があります。クラスタで Kubernetes 1.20 が実行されていない場合は、最初にユーザー クラスタをアップグレードします。
クラスタのセキュリティ グループを変更するには、GKE on AWS のユーザー クラスタを管理する AWS IAM ロール(anthos-gke.yaml
で spec.authentication.awsIAM.adminIdentityARNs
に設定)に ec2:ModifyNetworkInterfaceAttribute
権限が必要です。
セキュリティ グループの更新
このセクションでは、クラスタとノードプールのセキュリティ グループを更新します。セキュリティ グループを更新する手順は次のとおりです。
anthos-aws
ディレクトリからanthos-gke
を使用して、コンテキストを管理サービスに切り替えます。cd anthos-aws anthos-gke aws management get-credentials
AWSCluster を作成した YAML ファイルをテキスト エディタで開きます。最初の YAML ファイルがない場合は、
kubectl edit
を使用できます。YAML を編集する
ユーザー クラスタの作成の手順を行っている場合、YAML ファイルの名前は
cluster-0.yaml
です。このファイルをテキスト エディタで開きます。kubectl edit
kubectl edit
を使用して AWSCluster を編集するには、次のコマンドを実行します。env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-name
cluster-name を AWSCluster に置き換えます。たとえば、デフォルトのクラスタ
cluster-0
を編集するには、次のコマンドを実行します。env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-0
AWSCluster
のspec.controlPlane.securityGroupIDs
フィールドを編集します。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSCluster ... spec: controlPlane: securityGroupIDs: - SECURITY_GROUP_ID ...
SECURITY_GROUP_ID は、新しいセキュリティ グループの ID に置き換えます。複数のセキュリティ グループを追加するには、
spec.controlPlane.securityGroupIDs
の下の配列に値を追加します。次の例では、セキュリティ グループ
sg-12345678ab
とsg-abcdef1234
が追加されています。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSCluster spec: controlPlane: securityGroupIDs: - sg-12345678ab - sg-abcdef1234 ...
AWSNodePool
リソースのspec.securityGroupIDs
フィールドを編集します。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSNodePool spec: securityGroupIDs: - SECURITY_GROUP_ID ...
ファイルを保存します。
kubectl edit
を使用している場合は、kubectl
が変更を自動的に適用します。YAML ファイルを編集する場合は、次のコマンドを使用して管理サービスに適用します。env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
kubectl
で更新ステータスを確認します。更新が完了すると、オブジェクトの状態はUpdating
からProvisioned
に変わります。env HTTPS_PROXY=http://localhost:8118 \ kubectl get AWSClusters,AWSNodePools
たとえば、クラスタが更新状態にある場合、出力は次のようになります。
NAME STATE AGE VERSION ENDPOINT cluster-0 Updating 10m41s 1.25.5-gke.2100 gke-xyz.elb.us-east-1.amazonaws.com NAME CLUSTER STATE AGE VERSION cluster-0-pool-0 cluster-0 Updating 10m40s 1.25.5-gke.2100
インスタンス タイプの更新
このセクションでは、クラスタとノードプールのインスタンス タイプを更新します。インスタンス タイプを更新する手順は次のとおりです。
anthos-aws
ディレクトリからanthos-gke
を使用して、コンテキストを管理サービスに切り替えます。cd anthos-aws anthos-gke aws management get-credentials
AWSCluster を作成した YAML ファイルをテキスト エディタで開きます。最初の YAML ファイルがない場合は、
kubectl edit
を使用できます。YAML を編集する
ユーザー クラスタの作成の手順を行っている場合、YAML ファイルの名前は
cluster-0.yaml
です。このファイルをテキスト エディタで開きます。kubectl edit
kubectl edit
を使用して AWSCluster を編集するには、次のコマンドを実行します。env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-name
cluster-name を AWSCluster に置き換えます。たとえば、デフォルトのクラスタ
cluster-0
を編集するには、次のコマンドを実行します。env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-0
AWSCluster
のspec.controlPlane.instanceType
フィールドを編集します。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSCluster ... spec: controlPlane: instanceType: AWS_INSTANCE_TYPE ...
AWS_INSTANCE_TYPE は、新しいインスタンス タイプに置き換えます。詳細については、サポートされているインスタンス タイプをご覧ください。
AWSNodePool
リソースのspec.instanceType
フィールドを編集します。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSNodePool spec: instanceType: AWS_INSTANCE_TYPE ...
ファイルを保存します。
kubectl edit
を使用している場合は、kubectl
が変更を自動的に適用します。YAML ファイルを編集する場合は、次のコマンドを使用して管理サービスに適用します。env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
kubectl
で更新ステータスを確認します。更新が完了すると、オブジェクトの状態はUpdating
からProvisioned
に変わります。env HTTPS_PROXY=http://localhost:8118 \ kubectl get AWSClusters,AWSNodePools
たとえば、クラスタが更新状態にある場合、出力は次のようになります。
NAME STATE AGE VERSION ENDPOINT cluster-0 Updating 10m41s 1.25.5-gke.2100 gke-xyz.elb.us-east-1.amazonaws.com NAME CLUSTER STATE AGE VERSION cluster-0-pool-0 cluster-0 Updating 10m40s 1.25.5-gke.2100
次のステップ
- ユーザー クラスタのアップグレードについて詳しくは、GKE on AWS のアップグレードをご覧ください。