「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
eksctl
の開始方法
この入門ガイドは、Amazon EKS (eksctl
での Kubernetes クラスターの作成と管理用のシンプルなコマンドラインユーティリティ) を使用して、Amazon EKS の開始に必要なすべてのリソースを作成するのに役立ちます。このチュートリアルを完了すると、アプリケーションをデプロイできる実行中の
Amazon EKS クラスターが作成されます。
このガイドの手順では、いくつかのリソースが自動的に作成されます。これらのリソースは、AWS マネジメントコンソール を使用してクラスターを作成するときに手動で作成する必要があります。ほとんどのリソースを手動で作成し、リソース間でのやり取りがどのように行われるかの理解を深めるには、AWS マネジメントコンソール を使用してクラスターとコンピューティングを作成します。詳細については、「AWS マネジメントコンソール の開始方法」を参照してください。
Prerequisites
このセクションは、Amazon EKS クラスターの作成と管理に必要な以下のツールをインストールして設定するのに役立ちます。
AWS CLI をインストールする
for AWS CLImacOS、Linux、または Windows の最新バージョンをインストールできます。
[AWS CLI の macOS をインストールするには]
-
現在 AWS CLI がインストールされている場合は、インストールされているバージョンを確認します。
aws --version
-
バージョン 1.18.190 以降がない場合や、バージョン AWS CLI 以降がインストールされている場合は、2.1.7 バージョン 2 をインストールします。その他のインストールオプションや、現在インストールされているバージョン 2 をアップグレードする方法については、「 での AWS CLI バージョン 2 のアップグレードmacOS」の「アップグレード」を参照してください。
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target /
AWS CLI バージョン 2 を使用できない場合は、次のコマンドを使用して、AWS CLI バージョン 1 の最新バージョンがインストールされていることを確認します。
pip3 install awscli --upgrade --user
[Linux 用の AWS CLI をインストールするには]
-
現在 AWS CLI がインストールされている場合は、インストールされているバージョンを確認します。
aws --version
-
バージョン 1.18.190 以降がない場合や、バージョン AWS CLI 以降がインストールされている場合は、2.1.7 バージョン 2 をインストールします。その他のインストールオプションや、現在インストールされているバージョン 2 をアップグレードする方法については、「Linux での AWS CLI バージョン 2 のインストール」の「アップグレード」を参照してください。
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
AWS CLI バージョン 2 を使用できない場合は、次のコマンドを使用して、AWS CLI バージョン 1 の最新バージョンがインストールされていることを確認します。
pip3 install --upgrade --user awscli
[AWS CLI for Windows をインストールするには]
-
現在 AWS CLI がインストールされている場合は、インストールされているバージョンを確認します。
aws --version
-
バージョン 1.18.190 以降がない場合や、バージョン AWS CLI 以降がインストールされている場合は、以下のステップを使用して 2.1.7 バージョン 2 をインストールします。その他のインストールオプションや、現在インストールされているバージョン 2 をアップグレードする方法については、「Windows での AWS CLI バージョン 2 のインストール」の「Windows でのアップグレード」を参照してください。
-
Windows 用 AWS CLI MSI インストーラ (64 ビット) を https://awscli.amazonaws.com/AWSCLIV2.msi
からダウンロードします。 -
ダウンロードした MSI インストーラを実行し、画面の指示に従います。デフォルトでは、AWS CLI は
C:\Program Files\Amazon\AWSCLIV2
にインストールされます。
-
-
(オプション) AWS CLI バージョン 2 を使用できない場合は、次のコマンドを使用して、最新バージョンの AWS CLI バージョン 1 がインストールされていることを確認します。
pip3 install --user --upgrade awscli
AWS CLI 認証情報を設定する
eksctl
と AWS CLI の両方には、使用している環境で AWS 認証情報が設定されている必要があります。一般的な使用の場合、 aws configure
コマンドは、AWS CLI をインストールしてセットアップするための最も簡単な方法です。
$ aws configure AWS Access Key ID [None]: <AKIAIOSFODNN7EXAMPLE> AWS Secret Access Key [None]: <wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY> Default region name [None]: <region-code> Default output format [None]: <json>
このコマンドを入力すると、AWS CLI によって 4 つの情報の入力が求められます。access key
、secret access key
、AWS
Region
、および output format
。 この情報は、default
という名前のプロファイル (設定の集合) に保存されます。 このプロファイルは、コマンドを実行するときに、別のプロファイルを指定しない限り、使用されます。
詳細については、『AWS CLI』の「AWS Command Line Interface ユーザーガイド の設定」 を参照してください。
eksctl
をインストールする
バージョン以降の 0.35.0 eksctl
コマンドラインユーティリティは、、macOSLinux、または Windows でインストールできます。詳細については、https://eksctl.io/
[Homebrew を使用して eksctl
で macOS をインストールまたはアップグレードするには]
と Amazon EKS の使用を開始する最も簡単な方法は、macOSHomebreweksctl
を使用して をインストールすることです。eksctl
のほか、eksctl
に必要なその他の依存関係 (Amazon EKS など) がインストールされます。kubectl
このレシピは aws-iam-authenticator もインストールします。これは AWS CLI バージョン 1.16.156 以上をインストールしていない場合に必要です。
-
に Homebrew がまだインストールされていない場合は、次のコマンドを使用してインストールします。macOS
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
-
Weaveworks Homebrew tap をインストールします。
brew tap weaveworks/tap
-
eksctl
をインストールまたはアップグレードします。-
以下のコマンドを使用して、
eksctl
をインストールします。brew install weaveworks/tap/eksctl
-
eksctl
がすでにインストールされている場合は、以下のコマンドでアップグレードします。brew upgrade eksctl && brew link --overwrite eksctl
-
-
以下のコマンドを使用して、インストールが成功したことをテストします。
eksctl version
注記 GitTag
のバージョンは0.35.0
以上であることが必要です。そうでない場合は、端末の出力にインストールエラーやアップグレードエラーがないか確認するか、以下からリリースのアーカイブを手動でダウンロードします https://github.com/weaveworks/eksctl/releases/download/0.35.0/eksctl_Darwin_amd64.tar.gz、 eksctl
を展開し、実行します。
[eksctl
を使用して Linux で curl
をインストールまたはアップグレードするには]
-
以下のコマンドを使用して、
eksctl
の最新リリースをダウンロードして解凍します。curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
-
抽出したバイナリを
/usr/local/bin
に移動します。sudo mv /tmp/eksctl /usr/local/bin
-
以下のコマンドを使用して、インストールが成功したことをテストします。
eksctl version
注記 のバージョンは
GitTag
以上であることが必要です。0.35.0
そうでない場合は、ターミナルの出力でインストールエラーやアップグレードエラーがないか確認するか、ステップ 1 のアドレスをhttps://github.com/weaveworks/eksctl/releases/download/0.35.0/eksctl_Linux_amd64.tar.gz
に置き換えて、ステップ 1 ~ 3 をもう一度実行します。
[Chocolatey を使用して Windows に eksctl
をインストールまたはアップグレードするには]
-
Windows システムに Chocolatey がまだインストールされていない場合は、「Chocolatey のインストール
」を参照してください。 -
eksctl
をインストールまたはアップグレードします。-
次のコマンドでバイナリをインストールします。
choco install -y eksctl
-
すでにインストールされている場合は、以下のコマンドでアップグレードします。
choco upgrade -y eksctl
-
-
以下のコマンドを使用して、インストールが成功したことをテストします。
eksctl version
注記 GitTag
のバージョンは0.35.0
以上であることが必要です。そうでない場合は、端末の出力にインストールエラーやアップグレードエラーがないか確認するか、以下からリリースのアーカイブを手動でダウンロードします https://github.com/weaveworks/eksctl/releases/download/0.35.0/eksctl_Windows_amd64.zip、 eksctl
を展開し、実行します。
kubectl
のインストールと設定
Kubernetes では、クラスター API サーバーとの通信に kubectl
コマンドラインユーティリティを使用します。
前述の Homebrew の手順に従って eksctl
に macOS をインストールした場合、kubectl
はすでにシステムにインストールされています。「クラスターを作成してコンピューティングするAmazon EKS」に進めます。
コマンドラインユーティリティのバージョン 1.18 は、kubectl
、macOSLinux、または Windows 用にインストールできます。別のクラスターバージョンで使用するために別のバージョンをインストールする必要がある場合は、「のインストールkubectl」を参照してください。
[kubectl
を macOS にインストールするには]
-
クラスターがあるリージョンに対応する Amazon EKS 提供の
kubectl
バイナリをダウンロードします。-
リージョン以外のすべてのリージョン。中国
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/darwin/amd64/kubectl
-
北京および寧夏 中国リージョン。
curl -o kubectl https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/darwin/amd64/kubectl
-
-
(オプション) ダウンロードされたバイナリを SHA-256 sum で検証します。
-
クラスターがあるリージョンに対応する SHA-256 sum をダウンロードします。
-
リージョン以外のすべてのリージョン。中国
curl -o kubectl.sha256 https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/darwin/amd64/kubectl.sha256
-
北京および寧夏 中国リージョン。
curl -o kubectl.sha256 https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/darwin/amd64/kubectl.sha256
-
-
SHA-256 sum を確認します。
openssl sha1 -sha256 kubectl
-
コマンド出力で生成された SHA-256 sum とダウンロードした SHA-256 ファイルを比較します。両者は一致する必要があります。
-
-
バイナリへの実行アクセス権限を適用します。
chmod +x ./kubectl
-
パス内のフォルダに
kubectl
を移動します。-
まだ
kubectl
のバージョンがインストールされていない場合は、PATH
にすでに存在するフォルダにバイナリを移動します。sudo mv ./kubectl /usr/local/bin
-
既に
kubectl
のバージョンがインストールされている場合は、$HOME/bin/kubectl
フォルダを作成し、そのフォルダにバイナリを移動し、$HOME/bin
が$PATH
の最初にあることを確認することをお勧めします。mkdir -p $HOME/bin && mv ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
(オプション) シェルを開いたときに設定されるように、シェルの初期化ファイルに
$HOME/bin
パスを追加します。echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile
-
-
kubectl
をインストールしたら、以下のコマンドを使用してそのバージョンを確認できます。kubectl version --short --client
[Linux に kubectl
をインストールするには]
-
クラスターがあるリージョンに対応する Amazon EKS 提供の
kubectl
バイナリをダウンロードします。-
リージョン以外のすべてのリージョン。中国
curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/linux/amd64/kubectl
-
北京および寧夏 中国リージョン。
curl -o kubectl https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/linux/amd64/kubectl
-
-
(オプション) ダウンロードされたバイナリを SHA-256 sum で検証します。
-
クラスターがあるリージョンに対応する SHA-256 sum をダウンロードします。
-
リージョン以外のすべてのリージョン。中国
curl -o kubectl.sha256 https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/linux/amd64/kubectl.sha256
-
北京および寧夏 中国リージョン。
curl -o kubectl.sha256 https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/linux/amd64/kubectl.sha256
-
-
SHA-256 sum を確認します。
openssl sha1 -sha256 kubectl
-
コマンド出力で生成された SHA-256 sum とダウンロードした SHA-256 ファイルを比較します。両者は一致する必要があります。
-
-
バイナリへの実行アクセス権限を適用します。
chmod +x ./kubectl
-
パス内のフォルダに
kubectl
を移動します。-
のバージョンがインストールされていない場合は、バイナリを
kubectl
のフォルダに移動します。PATH
sudo mv ./kubectl /usr/local/bin
-
すでに
kubectl
のバージョンがインストールされている場合は、$HOME/bin/kubectl
フォルダを作成し、そのフォルダにバイナリを移動し、$HOME/bin
が$PATH
の最初にあることを確認することをお勧めします。mkdir -p $HOME/bin && mv ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
(オプション) シェルを開いたときに設定されるように、シェルの初期化ファイルに
$HOME/bin
パスを追加します。echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile
注記 このステップでは、Bash シェルを使用していることを前提としています。別のシェルを使用している場合は、特定のシェル初期化ファイルを使用するよう、コマンドを変更します。
-
-
kubectl
をインストールしたら、以下のコマンドを使用してそのバージョンを確認できます。kubectl version --short --client
[Windows に kubectl
をインストールするには]
-
ターミナルを開きます。PowerShell
-
クラスターがあるリージョンに対応する Amazon EKS 提供の
kubectl
バイナリをダウンロードします。-
リージョン以外のすべてのリージョン。中国
curl -o kubectl.exe https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/windows/amd64/kubectl.exe
-
北京および寧夏 中国リージョン。
curl -o kubectl.exe https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/windows/amd64/kubectl.exe
-
-
(オプション) ダウンロードされたバイナリを SHA-256 sum で検証します。
-
クラスターがあるリージョンに対応する SHA-256 sum をダウンロードします。
-
リージョン以外のすべてのリージョン。中国
curl -o kubectl.exe.sha256 https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.9/2020-11-02/bin/windows/amd64/kubectl.exe.sha256
-
北京および寧夏 中国リージョン。
curl -o kubectl.exe.sha256 https://amazon-eks.s3.cn-north-1.amazonaws.com.cn/1.18.9/2020-11-02/bin/windows/amd64/kubectl.exe.sha256
-
-
SHA-256 sum を確認します。
Get-FileHash kubectl.exe
-
コマンド出力で生成された SHA-256 sum とダウンロードした SHA-256 ファイルを比較します。出力は大文字になりますが、2 つが一致する必要があります。PowerShell
-
-
バイナリを
PATH
のフォルダにコピーします。 コマンドラインユーティリティで使用する PATH 内に既存のディレクトリがある場合、そのディレクトリにバイナリをコピーします。それ以外の場合は、以下のステップを完了します。-
コマンドラインのバイナリ用に新しいディレクトリ (
C:\bin
など) を作成します。 -
kubectl.exe
バイナリを新しいディレクトリにコピーします。 -
ユーザーまたはシステムの PATH 環境変数を編集し、新しいディレクトリを PATH に追加します。
-
新しい PATH 変数を取得するには、PowerShell ターミナルを閉じ、新しいターミナルを開きます。
-
-
kubectl
をインストールしたら、以下のコマンドを使用してそのバージョンを確認できます。kubectl version --short --client
クラスターを作成してコンピューティングするAmazon EKS
このセクションは、アプリケーションを実行するためのコンピューティングオプションを持つ Amazon EKS クラスターの作成に役立ちます。最新の Kubernetes と Amazon EKS の機能を利用できるように、Amazon EKS で使用可能な最新バージョンの Kubernetes がインストールされます。一部の機能は、Kubernetes の古いバージョンでは利用できません。
クラスターがあるリージョンの AWS Security Token Service (STS) エンドポイントがアカウントに対して有効になっていることを確認します。エンドポイントが有効になっていない場合、ノードはクラスターの作成中にクラスターに参加できません。詳細については、「AWS リージョンでの AWS STS のアクティブ化と非アクティブ化」を参照してください。
次のいずれかのコンピューティングオプションを選択します。各オプションの詳細については、「Amazon EKS 個のノード」を参照してください。クラスターがデプロイされたら、必要に応じて他のオプションを追加できます。
-
[ Fargate – Linux] – で Linux アプリケーションを実行する場合は、このオプションを選択します。AWS Fargate
-
[ – Managed nodes Linux–] Amazon Linux インスタンスで Amazon EC2 アプリケーションを実行する場合は、このオプションを選択します
-
セルフマネージド型ノード – Windows インスタンスで Windows アプリケーションを実行する場合は、このオプションを選択します。–Amazon EC2Windows アプリケーションを実行するだけであっても、クラスターに少なくとも 1 つの Linux ノードが必要であるため、このオプションを使用して Linux アプリケーションを実行することもできます。
このガイドでは説明しませんが、Bottlerocket
[Fargate – Linux]
-
一部のリージョンでは、AWS Fargate と Amazon EKS のみを使用できます。で Fargate を使用する前に、使用するリージョンがサポートされていることを確認してください。Amazon EKS詳細については、「Amazon EKS を使用した AWS Fargate の開始方法」を参照してください。
-
AWS Outposts、AWS Wavelength、または AWS ローカルゾーンが有効になっている AWS リージョンに、クラスターまたはノードを作成するときは、
eksctl
を使用しないでください。代わりに、Amazon EC2 API または AWS CloudFormation を使用して、クラスターとセルフマネージドノードを作成します。詳細については、「を使用してセルフマネージド型 Linux ノードを起動するにはAWS マネジメントコンソール」および「を使用してセルフマネージド Windows ノードを起動するにはAWS マネジメントコンソール」を参照してください。
以下のコマンドを使用して、Fargate をサポートする、Amazon EKS クラスターを作成します。(<example values>
を含む) を独自の値に置き換えます。<>
<us-west-2>
は、Amazon EKS で サポートされている任意のリージョンに置き換えることができます。は、<us-west-2>
Amazon EKS がサポートされている任意のリージョンFargateに置き換えることができます。バージョン 1.18
をデプロイすることをお勧めしますが、以前のバージョンと置き換える場合は、そのバージョンの重要な リリースノートAmazon EKSを読み、対応するバージョンの kubectl をインストールしてください。
eksctl create cluster \ --name <my-cluster> \ --version <1.18> \ --region <us-west-2> \ --fargate
ノードグループなしで新しい Amazon EKS クラスターが作成されます。Eksctl
は、ポッド実行ロール、 および Fargate 名前空間の default
プロファイルkube-system
を作成し、coredns
デプロイにパッチを適用して Fargate で実行できるようにします。詳細については、「AWS Fargate」を参照してください。
[ マネージド型ノード – Linux ]
-
起動テンプレートの有無にかかわらずノードを作成できます。起動テンプレートを使用すると、カスタム AMI をデプロイする機能を含めて、より高度にカスタマイズできます。どちらのオプションでも、
<example values>
(<>
を含む) を独自の値に置き換えます。<us-west-2>
は、Amazon EKS で サポートされている任意のリージョンに置き換えることができます。バージョン1.18
をデプロイすることをお勧めしますが、以前のバージョンと置き換える場合は、そのバージョンの重要な リリースノートAmazon EKSを読み、対応するバージョンの kubectl をインストールしてください。--ssh-public-key
はオプションですが、クラスターを使用してノードグループを作成するときに、これを指定することを強くお勧めします。このオプションを指定すると、マネージド型ノードグループ内のノードへの SSH アクセスが有効になります。SSH アクセスを有効にすることにより、インスタンスに接続し、問題がある場合に診断情報を収集できます。ノードグループの作成後にリモートアクセスを有効にすることはできません。パブリックキーがない場合は、 で に指定するAmazon EC2キーペアを作成--ssh-public-key
できます。 キーは、クラスターを作成するリージョンと同じリージョンに作成してください。重要 AWS Outposts、AWS Wavelength、または AWS ローカルゾーンが有効になっている AWS リージョンに、クラスターまたはノードを作成するときは、
eksctl
を使用しないでください。代わりに、Amazon EC2 API または AWS CloudFormation を使用して、クラスターとセルフマネージドノードを作成します。詳細については、「を使用してセルフマネージド型 Linux ノードを起動するにはAWS マネジメントコンソール」および「を使用してセルフマネージド Windows ノードを起動するにはAWS マネジメントコンソール」を参照してください。重要 Amazon EKS ノードは Amazon EC2 スタンダードインスタンスであり、通常の Amazon EC2 インスタンス料金に基づいて請求されます。詳細については、「Amazon EC2 料金表
」を参照してください。 -
なし 起動テンプレート。
注記 独自の起動テンプレートを指定しない場合でも、Amazon EKS API によりデフォルトの起動テンプレートが作成され、その起動テンプレートを使用してノードがデプロイされます。
eksctl create cluster \ --name <my-cluster> \ --version <1.18> \ --region <us-west-2> \ --nodegroup-name <linux-nodes> \ --nodes <3> \ --nodes-min <1> \ --nodes-max <4> \ --with-oidc \ --ssh-access \ --ssh-public-key <name-of-ec2-keypair> \ --managed
-
起動テンプレートを使用 起動テンプレートを使用して – クラスターと Amazon EKS ノードを作成します。Amazon Linux起動テンプレートが既に存在しており、起動テンプレート設定の基本 で指定されている要件を満たしている必要があります。次の内容のファイルを作成し、
<example values>
(<>
を含む) を独自の値に置き換えます。起動テンプレートなしでデプロイするときに指定するいくつかの設定は、起動テンプレートに移動されます。バージョンを指定しない場合は、テンプレートのデフォルトバージョンが使用されます。--- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: <my-cluster> region: <us-west-2> version: '<1.18>' iam: withOIDC: true managedNodeGroups: - name: <ng-linux> launchTemplate: id: lt-<id> version: "<1>"
-
-
次のコマンドを使用して、クラスターとノードグループを作成します。
eksctl create cluster --config-file <filename-you-used-in-previous-step.yaml>
出力:
クラスターとノードが作成されると、数行の出力が表示されます。出力の最後の行は、次のサンプル行のようになります。
[✓] EKS cluster "<my-cluster>" in "<us-west-2>" region is ready
ノードがクラスターに参加できない場合は、トラブルシューティングガイドの「ノードがクラスターに参加できない」を参照してください。
[セルフマネージド型ノード – Windows ]
Windows サポートの「考慮事項」を把握しておいてください。以下の例のテキストには instanceType
のサポートされる値が含まれています。例の <values> を独自の値に置き換えます。
バージョン 1.18
をデプロイすることをお勧めします。 以前のバージョンをデプロイする必要がある場合、置き換えることができるのはバージョン 1.16
以降のみです。1.18
を変更した場合は、そのバージョンの重要な Amazon EKS リリースノートを読み、対応するバージョンの kubectl をインストールする必要があります。
AWS Outposts、AWS Wavelength、または AWS ローカルゾーンが有効になっている AWS リージョンに、クラスターまたはノードを作成するときは、eksctl
を使用しないでください。代わりに、Amazon EC2 API または AWS CloudFormation を使用して、クラスターとセルフマネージドノードを作成します。詳細については、「を使用してセルフマネージド型 Linux ノードを起動するにはAWS マネジメントコンソール」および「を使用してセルフマネージド Windows ノードを起動するにはAWS マネジメントコンソール」を参照してください。
Amazon EKS ノードは Amazon EC2 スタンダードインスタンスであり、通常の Amazon EC2 インスタンス料金に基づいて請求されます。詳細については、「Amazon EC2 料金表
-
次の内容のファイルを作成し、
<example values>
(<>
を含む) を独自の値に置き換えます。このファイルは、セルフマネージド Windows ノードグループとマネージド Linux ノードグループを持つクラスターを作成するために使用されます。クラスターで Windows アプリケーションのみを実行する場合でも、すべての Amazon EKS クラスターには少なくとも 1 つの Linux ノードが含まれている必要がありますが、可用性を確保するために少なくとも 2 つの Linux ノードを作成することをお勧めします。eksctl
、config ファイルスキーマ、config ファイルサンプル における config ファイル の使用の詳細については、 eksctl
ドキュメントを参照してください。バージョン1.18
をデプロイすることをお勧めします (ただし、最初に<>
を削除します)。を置き換える場合は、バージョンの重要な1.18
リリースノートAmazon EKS を読み、対応するバージョンの kubectl をインストールします。--- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: <my-cluster> region: <us-west-2> version: '<1.18>' iam: withOIDC: true managedNodeGroups: - name: <linux-ng> instanceType: <m5.large> minSize: <2> nodeGroups: - name: <windows-ng> instanceType: <m5.large> minSize: <2> volumeSize: <100> amiFamily: <WindowsServer2019FullContainer>
-
次のコマンドを使用して、Amazon EKS クラスターと Windows ノードと Linux ノードを作成します。
eksctl create cluster -f <filename-you-used-in-previous-step.yaml> --install-vpc-controllers
注記 で使用できるオプションの詳細については、プロジェクト
eksctl create cluster
README on GitHub を参照するか、次のコマンドを使用してヘルプページを参照してください。eksctl create cluster --help
出力:
クラスターとノードが作成されると、数行の出力が表示されます。出力の最後の行は、次のサンプル行のようになります。
[✓] EKS cluster "<my-cluster>" in "<us-west-2>" region is ready
ノードがクラスターに参加できない場合は、トラブルシューティングガイドの「ノードがクラスターに参加できない」を参照してください。
クラスターのプロビジョニングには通常、10 ~ 15 分かかります。
-
クラスターの準備ができたら、
kubectl
設定が正しいことをテストします。kubectl get svc
注記 その他の認可またはリソースタイプのエラーが発生した場合は、トラブルシューティングセクションの「許可されていないか、アクセスが拒否されました (kubectl)」を参照してください。
出力:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 1m
-
(Linux 高速 AMI ノードのみ) 高速 AMI インスタンスタイプと Amazon EKS 最適化高速 AMI を選択した場合は、NVIDIA device plugin for Kubernetes
を、次のコマンドを使ってクラスターの DaemonSet として適用しなければなりません。 kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.6.0/nvidia-device-plugin.yml
次のステップ
これでノードを含む Amazon EKS クラスターが動作するようになったので、Kubernetes アドオンのインストールとクラスターへのアプリケーションのデプロイを開始できます。以下のトピックは、クラスターの機能を拡張するのに役立ちます。
-
IMDS へのアクセスの制限 – すべての Kubernetes サービスアカウントに IAM ロールを割り当てて、ポッドが必要最小限のアクセス許可のみを持つようにする計画の場合、クラスター内のいずれのポッドにも、Amazon EC2 インスタンスメタデータサービス (IMDS) へのアクセスを必要とする他の理由 (現在のリージョンを取得するなど) がなければ、IMDS へのポッドアクセスをブロックすることをお勧めします。詳細については、「サービスアカウントの IAM ロール」および「IMDS および Amazon EC2 インスタンスプロファイルの認証情報へのアクセスの制限」を参照してください。
-
Cluster Autoscaler – ノードグループ内のノード数を自動的に調整するように Kubernetes Cluster Autoscaler を設定します。
-
Linux ワークロードのサンプルをデプロイする – サンプルアプリケーションをデプロイして、クラスターと Linux ノードをテストします。
-
Windows サンプルアプリケーションをデプロイする – サンプルアプリケーションをデプロイして、クラスターと Windows ノードをテストします。
-
クラスターの管理 – クラスターを管理するための重要なツールを使用する方法について説明します。