翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
クラスターの作成と管理
このトピックでは、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」ページを参照してください。