クラスターの作成と管理 - Eksctl ユーザーガイド

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クラスターの作成と管理

このトピックでは、Eksctl を使用して EKS クラスターを作成および削除する方法について説明します。クラスターを作成するには、CLI コマンドを使用するか、クラスター設定 YAML ファイルを作成します。

シンプルなクラスターの作成

次のコマンドを使用して、シンプルなクラスターを作成します。

eksctl create cluster

これにより、2 つの m5.large ノードを含む 1 つのマネージド型ノードグループを使用して、デフォルトのリージョン (AWS CLI 設定で指定) に EKS クラスターが作成されます。

eksctl は、設定ファイルが使用されていないときに、デフォルトでマネージド型ノードグループを作成するようになりました。セルフマネージド型ノードグループを作成するには、 を eksctl create clusterまたは --managed=falseに渡しますeksctl create nodegroup

考慮事項

  • でクラスターを作成するときにus-east-1、 が発生することがありますUnsupportedAvailabilityZoneException。この場合、提案されたゾーンをコピーし、 --zonesフラグを渡します。例: eksctl create cluster --region=us-east-1 --zones=us-east-1a,us-east-1b,us-east-1d。この問題は他のリージョンで発生する可能性がありますが、あまり一般的ではありません。ほとんどの場合、 --zoneフラグを使用する必要はありません。

設定ファイルを使用してクラスターを作成する

フラグの代わりに設定ファイルを使用してクラスターを作成できます。

まず、 cluster.yaml ファイルを作成します。

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: basic-cluster region: eu-north-1 nodeGroups: - name: ng-1 instanceType: m5.large desiredCapacity: 10 volumeSize: 80 ssh: allow: true # will use ~/.ssh/id_rsa.pub as the default ssh key - name: ng-2 instanceType: m5.xlarge desiredCapacity: 2 volumeSize: 100 ssh: publicKeyPath: ~/.ssh/ec2_id_rsa.pub

次に、次のコマンドを実行します。

eksctl create cluster -f cluster.yaml

これにより、説明に従ってクラスターが作成されます。

既存の VPC を使用する必要がある場合は、次のような設定ファイルを使用できます。

apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: cluster-in-existing-vpc region: eu-north-1 vpc: subnets: private: eu-north-1a: { id: subnet-0ff156e0c4a6d300c } eu-north-1b: { id: subnet-0549cdab573695c03 } eu-north-1c: { id: subnet-0426fb4a607393184 } nodeGroups: - name: ng-1-workers labels: { role: workers } instanceType: m5.xlarge desiredCapacity: 10 privateNetworking: true - name: ng-2-builders labels: { role: builders } instanceType: m5.2xlarge desiredCapacity: 2 privateNetworking: true iam: withAddonPolicies: imageBuilder: true

クラスター名またはノードグループ名には、英数字 (大文字と小文字を区別) とハイフンのみを含める必要があります。アルファベット文字で始まり、128 文字を超えることはできません。そうしないと、検証エラーが発生します。詳細については、AWS CloudFormation コンソールからスタックを作成する」を参照してください。 CLoudFormation

新しいクラスターの kubeconfig を更新する

クラスターが作成されると、適切な kubernetes 設定が kubeconfig ファイルに追加されます。これは、環境変数またはKUBECONFIG~/.kube/configデフォルトで設定したファイルです。kubeconfig ファイルへのパスは、 --kubeconfigフラグを使用して上書きできます。

kubeconfig ファイルの書き込み方法を変更できるその他のフラグ:

フラグ type use デフォルト値

--kubeconfig

文字列

kubeconfig を書き込むパス (--auto-kubeconfig と互換性がありません)

$KUBECONFIG または ~/.kube/config

--set-kubeconfig-context

ブール

true の場合、現在のコンテキストは kubeconfig で設定されます。コンテキストがすでに設定されている場合、上書きされます。

true

--auto-kubeconfig

ブール

kubeconfig ファイルをクラスター名で保存する

true

--write-kubeconfig

ブール

kubeconfig の書き込みを切り替える

true

クラスターの削除

このクラスターを削除するには、以下を実行します。

eksctl delete cluster -f cluster.yaml
警告

削除オペレーションで --waitフラグを使用して、削除エラーが適切に報告されるようにします。

--wait フラグがない場合、eksctl はクラスターの CloudFormation スタックにのみ削除オペレーションを発行し、削除を待機しません。場合によっては、クラスターまたはその VPC を使用する AWS リソースによって、クラスターの削除が失敗することがあります。削除が失敗した場合、または待機フラグを忘れた場合は、CloudFormation GUI に移動し、そこから eks スタックを削除する必要があります。

警告

PDB ポリシーは、クラスターの削除中にノードの削除をブロックすることがあります。

ノードグループを使用してクラスターを削除すると、Pod Disruption Budget (PDB) ポリシーによってノードが正常に削除されない場合があります。たとえば、 aws-ebs-csi-driverがインストールされているクラスターには通常、PDB ポリシーを持つ 2 つのポッドがあり、一度に 1 つのポッドしか使用できないため、削除中に他のポッドを削除できなくなります。これらのシナリオでクラスターを正常に削除するには、 disable-nodegroup-evictionフラグを使用して PDB ポリシーチェックをバイパスします。

eksctl delete cluster -f cluster.yaml --disable-nodegroup-eviction

その他のサンプル設定ファイルについては、eksctl GitHub リポジトリの examples/ ディレクトリを参照してください。

ドライラン

ドライラン機能を使用すると、クラスターの作成をスキップする ClusterConfig ファイルを生成し、提供された CLI オプションを表し、eksctl で設定されたデフォルト値を含む ClusterConfig ファイルを出力できます。

詳細については、「Dry Run」ページを参照してください。