eksctl の開始方法 - Amazon EKS

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

eksctl の開始方法

この入門ガイドは、 Amazon EKS 使用 eksctlは、Kubernetesクラスタを作成および管理するためのシンプルなコマンドラインユーティリティです。 Amazon EKS. このチュートリアルの最後に、 Amazon EKS アプリケーションをデプロイできるクラスタです。

このガイドの手順では、いくつかのリソースを自動的に作成します。この手順は、 AWS マネジメントコンソール. 相互のやり取りをより良く理解するために、ほとんどのリソースを手動で作成したい場合は、 AWS マネジメントコンソール クラスタを作成して計算します。詳細については、AWS マネジメントコンソール の開始方法 を参照してください。

Prerequisites

このセクションは、Amazon EKS クラスターの作成と管理に必要なツールとリソースのインストールと設定に役立ちます。

AWS CLI をインストールする

AWS CLI の最新バージョンをインストールするには、AWS CLI をインストールするオペレーティングシステムの名前が示されたタブを選択してください。

macOS

現在 AWS CLI がインストールされている場合は、インストールされているバージョンを確認します。

aws --version

バージョン 1.18.124 以降がない場合や、バージョン AWS CLI 以降がインストールされている場合は、2.0.42 バージョン 2 をインストールします。その他のインストールオプションや、現在インストールされているバージョン 2 をアップグレードする方法については、「macOS での AWS CLI バージョン 2 のインストール」の「アップグレード」を参照してください。

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 --version

バージョン 1.18.124 以降がない場合や、バージョン AWS CLI 以降がインストールされている場合は、2.0.42 バージョン 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
Windows

現在 AWS CLI がインストールされている場合は、インストールされているバージョンを確認します。

aws --version

AWS CLI バージョン 2 をインストールするには

バージョン 1.18.124 以降がない場合や、バージョン AWS CLI 以降がインストールされている場合は、以下のステップを使用して 2.0.42 バージョン 2 をインストールします。その他のインストールオプションや、現在インストールされているバージョン 2 をアップグレードする方法については、「Windows での AWS CLI バージョン 2 のインストール」の「Windows でのアップグレード」を参照してください。

  1. Windows 用 AWS CLI MSI インストーラ (64 ビット) を https://awscli.amazonaws.com/AWSCLIV2.msi からダウンロードします。

  2. ダウンロードした 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 keysecret access keyAWS Region、および output format。 この情報は、 default。 このプロファイルは、別のプロファイルを指定しない限り、コマンドを実行するときに使用されます。

詳細については、『AWS CLI』の「AWS Command Line Interface ユーザーガイド の設定」 を参照してください。

インストール eksctl

インストールするには 0.26.0 バージョンまたはそれ以降の eksctl コマンド ライン ユーティリティで、インストールするオペレーティング システムの名前のタブを選択します。 eksctl をオン。詳細については、https://eksctl.io/ を参照してください。

macOS

Homebrew を使用して macOS で eksctl をインストールまたはアップグレードするには

Amazon EKS と macOS の使用を開始する最も簡単な方法は、Homebrew を使用して eksctl をインストールすることです。は eksctl ホームブルのレシピのインストール eksctl および、 Amazon EKSなど kubectl。 レシピには、 aws-iam-authenticator。 AWS CLI バージョン 1.16.156 またはそれ以降がインストールされていること。

  1. Mac OS で Homebrew をまだインストールしていない場合は、以下のコマンドでインストールします。

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  2. Weaveworks Homebrew tap をインストールします。

    brew tap weaveworks/tap
  3. eksctl をインストールまたはアップグレードします。

    • 以下のコマンドを使用して、eksctl をインストールします。

      brew install weaveworks/tap/eksctl
    • eksctl がすでにインストールされている場合は、以下のコマンドでアップグレードします。

      brew upgrade eksctl && brew link --overwrite eksctl
  4. 以下のコマンドを使用して、インストールが成功したことをテストします。

    eksctl version
    注記

    GitTag のバージョンは 0.26.0 以上であることが必要です。そうでない場合は、端末の出力にインストールエラーやアップグレードエラーがないか確認するか、以下からリリースのアーカイブを手動でダウンロードします https://github.com/weaveworks/eksctl/releases/download/0.26.0/eksctl_Darwin_amd64.tar.gzeksctl を展開し、実行します。

Linux

curl を使用して Linux で eksctl をインストールまたはアップグレードするには

  1. 以下のコマンドを使用して、eksctl の最新リリースをダウンロードして解凍します。

    curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
  2. 抽出したバイナリを /usr/local/bin に移動します。

    sudo mv /tmp/eksctl /usr/local/bin
  3. 以下のコマンドを使用して、インストールが成功したことをテストします。

    eksctl version
    注記

    GitTag バージョンは以上でなければなりません 0.26.0。 そうでない場合は、ターミナル出力でインストールまたはアップグレード エラーがないかを確認するか、手順 1 のアドレスを https://github.com/weaveworks/eksctl/releases/download/0.26.0/eksctl_Linux_amd64.tar.gz 手順1~3をもう一度実行します。

Windows

Chocolatey を使用して Windows で eksctl をインストールまたはアップグレードするには

  1. Windows システムに Chocolatey がまだインストールされていない場合は、「Chocolatey のインストール」を参照してください。

  2. eksctl をインストールまたはアップグレードします。

    • 次のコマンドでバイナリをインストールします。

      chocolatey install -y eksctl
    • すでにインストールされている場合は、以下のコマンドでアップグレードします。

      chocolatey upgrade -y eksctl
  3. 以下のコマンドを使用して、インストールが成功したことをテストします。

    eksctl version
    注記

    GitTag のバージョンは 0.26.0 以上であることが必要です。そうでない場合は、端末の出力にインストールエラーやアップグレードエラーがないか確認するか、以下からリリースのアーカイブを手動でダウンロードします https://github.com/weaveworks/eksctl/releases/download/0.26.0/eksctl_Windows_amd64.zipeksctl を展開し、実行します。

インストールと構成 kubectl

Kubernetesは kubectl クラスタAPIサーバと通信するためのコマンドラインユーティリティ。

注記

前述の Homebrew の手順に従って macOS に eksctl をインストールした場合、kubectl はすでにシステムにインストールされています。「作成 Amazon EKS クラスタとコンピューティング」に進めます。

kubectl コマンドラインユーティリティのバージョン 1.17 をインストールするには、kubectl をインストールするオペレーティングシステムの名前のタブを選択してください。別のクラスターバージョンで使用するために別のバージョンをインストールする必要がある場合は、「インストール中 kubectl」を参照してください。

macOS

MacOS で kubectl をインストールするには

  1. ダウンロード Amazon EKS ベンド kubectl バイナリ。

    curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.9/2020-08-04/bin/darwin/amd64/kubectl
  2. (オプション) ダウンロードされたバイナリを SHA-256 sum で検証します。

    1. SHA-256 sum をダウンロードします。

      curl -o kubectl.sha256 https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.9/2020-08-04/bin/darwin/amd64/kubectl.sha256
    2. SHA-256 sum を確認します。

      openssl sha1 -sha256 kubectl
    3. コマンド出力で生成された SHA-256 sum とダウンロードした SHA-256 ファイルを比較します。両者は一致する必要があります。

  3. バイナリへの実行アクセス権限を適用します。

    chmod +x ./kubectl
  4. 移動 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
  5. インストール後 kubectl 次のコマンドを使用して、バージョンを確認できます。

    kubectl version --short --client
Linux

Linux で kubectl をインストールするには

  1. ダウンロード Amazon EKS ベンド kubectl バイナリ。

    curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.9/2020-08-04/bin/linux/amd64/kubectl
  2. (オプション) ダウンロードされたバイナリを SHA-256 sum で検証します。

    1. SHA-256 sum をダウンロードします。

      curl -o kubectl.sha256 https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.9/2020-08-04/bin/linux/amd64/kubectl.sha256
    2. SHA-256 sum を確認します。

      openssl sha1 -sha256 kubectl
    3. コマンド出力で生成された SHA-256 sum とダウンロードした SHA-256 ファイルを比較します。両者は一致する必要があります。

  3. バイナリへの実行アクセス権限を適用します。

    chmod +x ./kubectl
  4. 移動 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 シェルを使用していることを前提としています。別のシェルを使用している場合は、特定のシェル初期化ファイルを使用するよう、コマンドを変更します。

  5. インストール後 kubectl 次のコマンドを使用して、バージョンを確認できます。

    kubectl version --short --client
Windows

Windows に kubectl をインストールするには

  1. PowerShell ターミナルを開きます。

  2. ダウンロード Amazon EKS ベンド kubectl バイナリ。

    curl -o kubectl.exe https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.9/2020-08-04/bin/windows/amd64/kubectl.exe
  3. (オプション) ダウンロードされたバイナリを SHA-256 sum で検証します。

    1. SHA-256 sum をダウンロードします。

      curl -o kubectl.exe.sha256 https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.9/2020-08-04/bin/windows/amd64/kubectl.exe.sha256
    2. SHA-256 sum を確認します。

      Get-FileHash kubectl.exe
    3. コマンド出力で生成された SHA-256 sum とダウンロードした SHA-256 ファイルを比較します。2 つの 出力が一致しなければなりません。ただし、PowerShell の出力は大文字になります。

  4. バイナリを PATH。 コマンド ライン ユーティリティに使用する既存のディレクトリが PATH にある場合は、そのディレクトリにバイナリをコピーします。それ以外の場合は、以下のステップを完了します。

    1. コマンドラインのバイナリ用に新しいディレクトリ (C:\bin など) を作成します。

    2. kubectl.exe バイナリを新しいディレクトリにコピーします。

    3. ユーザーまたはシステムの PATH 環境変数を編集し、新しいディレクトリを PATH に追加します。

    4. 新しい PATH 変数を取得するには、古い PowerShell ターミナルを閉じ、新しいターミナルを開きます。

  5. インストール後 kubectl 次のコマンドを使用して、バージョンを確認できます。

    kubectl version --short --client

作成 Amazon EKS クラスタとコンピューティング

このセクションでは、 Amazon EKS 計算オプションを使ってアプリケーションを実行します。最新の Kubernetes と Amazon EKS の機能を利用できるように、Amazon EKS で使用可能な最新バージョンの Kubernetes がインストールされます。一部の機能は、Kubernetes の古いバージョンでは利用できません。

重要

クラスターがあるリージョンの AWS Security Token Service (STS) エンドポイントがアカウントに対して有効になっていることを確認します。エンドポイントが有効になっていない場合、クラスタの作成中にノードはクラスタに参加できません。詳細については、「AWS リージョンでの AWS STS のアクティブ化と非アクティブ化」を参照してください。

eksctl を使用してクラスターを作成するには

  1. コンピューティング要件に最も適したタブを下から選択してください。次の手順では、1 つの計算オプションを使用してクラスタを作成しますが、クラスタの作成後に他のオプションを追加できます。各オプションの詳細については、以下を参照してください。 Amazon EKS 計算. Linuxアプリケーションのみを実行するクラスタを AWS Fargateを選択し、 AWS Fargate – Linux(Linux). Linuxアプリケーションを Amazon EC2 インスタンスを選択し、 管理対象ノード – Linux(Linux). Windowsアプリケーションを Amazon EC2 インスタンスを選択し、 自己管理ノード – Windows(Windows). このガイドでは取り上げていませんが、 ボトルロケット ノードをクラスタに追加します。詳細については、自己管理の Bottlerocket ノードの起動 を参照してください。

    AWS Fargate – Linux
    注記

    使用できるのは AWS Fargate 付き Amazon EKS 一部の地域では、使用前 Fargate 付き Amazon EKS、使用する地域がサポートされていることを確認します。詳細については、Amazon EKS を使用した AWS Fargate の開始方法 を参照してください。

    以下のコマンドを使用して、Fargate をサポートする、Amazon EKS クラスターを作成します。交換可能 マイクラスタ 自分の価値で、 us-west-2 いずれかの Amazon EKS Fargate 対応地域.

    バージョン をデプロイすることをお勧めします。1.17。 以前のバージョンをデプロイする必要がある場合は、バージョンとのみ置き換えることができます。 1.15 またはそれ以降。変更する場合 1.17それから、重要な Amazon EKS リリースノート の対応するバージョンをインストールしてください。 kubectl.

    eksctl create cluster \ --name my-cluster \ --version 1.17 \ --region us-west-2 \ --fargate

    新しい Amazon EKS クラスタはノードグループなしで作成されます。Eksctl ポッド実行ロール、 Fargate プロファイルdefault および kube-system ネームスペースにパッチを適用し、 coredns 展開して、 Fargate. 詳細については、AWS Fargate を参照してください。

    Managed nodes – Linux

    ノードは、起動テンプレートの有無にかかわらず作成できます。起動テンプレートを使用すると、カスタムAMIをデプロイする機能を含む、より高度なカスタマイズが可能になります。

    作成 Amazon EKS クラスタおよびLinuxノード なし 次のコマンドを使用して、起動テンプレートを作成します。例を置き換える values 自分の価値観に基づいて行動します 交換可能 , us-west-2 いずれかの Amazon EKS 対応地域.

    重要

    Amazon EKS ノードは Amazon EC2 スタンダードインスタンスであり、通常の Amazon EC2 インスタンス料金に基づいて請求されます。詳細については、「Amazon EC2 料金表」を参照してください。

    バージョン をデプロイすることをお勧めします。1.17。 以前のバージョンをデプロイする必要がある場合は、以前のバージョンまたは 1.15 後で行います。変更する場合 1.17それから、重要な Amazon EKS リリースノート の対応するバージョンをインストールしてください。 kubectl.

    --ssh-public-key はオプションですが、クラスターを使用してノードグループを作成するときに、これを指定することを強くお勧めします。このオプションを指定すると、マネージド型ノードグループ内のノードへの SSH アクセスが有効になります。SSH アクセスを有効にすることにより、インスタンスに接続し、問題がある場合に診断情報を収集できます。ノードグループの作成後にリモートアクセスを有効にすることはできません。公開キーを持っていない場合は、 キー・ペアの作成 用 Amazon EC2 に指定 --ssh-public-key。 必ず、クラスタを作成する地域と同じ地域にキーを作成してください。

    eksctl create cluster \ --name my-cluster \ --version 1.17 \ --region us-west-2 \ --nodegroup-name linux-nodes \ --nodes 3 \ --nodes-min 1 \ --nodes-max 4 \ --ssh-access \ --ssh-public-key name-of-ec2-keypair \ --managed

    作成 Amazon EKS クラスタとクラスタト Amazon Linux ノード 付き 起動テンプレートです。起動テンプレートは、すでに存在し、 で指定された要件を満たしている必要があります。 テンプレート構成の基本の起動. という名前のファイルを作成します cluster-node-group-lt.yaml 次の内容で、例を置き換えます。values 自分の価値観に基づいて行動します 起動テンプレートを使用しないで配置するときに指定するいくつかの設定は、起動テンプレートに移動されます。バージョンを指定しない場合、テンプレートのデフォルト バージョンが使用されます。

    --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: us-west-2 version: '1.17' managedNodeGroups: - name: ng-linux launchTemplate: id: lt-id version: "1"

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

    eksctl create cluster --config-file cluster-node-group-lt.yaml

    出力

    クラスタとノードが作成されると、複数の出力行が表示されます。出力の最後の行は、次のサンプル行のようになります。

    [✓] EKS cluster "my-cluster" in "us-west-2" region is ready

    ノードがクラスターに参加できない場合は、トラブルシューティングガイドの「ノードがクラスタに参加できません」を参照してください。

    Self-managed nodes – Windows

    Windows サポートの「考慮事項」を把握しておいてください。以下の例のテキストには instanceType のサポートされる値が含まれています。例を置き換える values 自分の価値観に基づいて行動します

    バージョン をデプロイすることをお勧めします。1.17。 以前のバージョンをデプロイする必要がある場合は、バージョンとのみ置き換えることができます。 1.15 またはそれ以降。変更する場合 1.17それから、重要な Amazon EKS リリースノート の対応するバージョンをインストールしてください。 kubectl.

    重要

    Amazon EKS ノードは Amazon EC2 スタンダードインスタンスであり、通常の Amazon EC2 インスタンス料金に基づいて請求されます。詳細については、「Amazon EC2 料金表」を参照してください。

    以下のテキストを という名前のファイルに保存します cluster-spec.yaml。 構成ファイルは、自己管理のWindowsノード・グループと管理対象のLinuxノード・グループを使用してクラスタを作成するために使用します。Windowsアプリケーションをクラスタでのみ実行する場合でも、 Amazon EKS クラスタには少なくとも 1 つの Linux ノードが含まれている必要がありますが、可用性のために少なくとも 2 つの Linux ノードを作成することをお勧めします。 eksctlconfig ファイルスキーマconfig ファイルサンプルにおける config ファイルの使用の詳細については、eksctl ドキュメントを参照してください。

    --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: us-west-2 version: '1.17' 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 cluster-spec.yaml --install-vpc-controllers
    注記

    使用可能なオプションの詳細については、 eksctl create cluster 、プロジェクトを参照 GitHub上のREADME または、次のコマンドを使用してヘルプ ページを表示します。

    eksctl create cluster --help

    出力

    クラスタとノードが作成されると、複数の出力行が表示されます。出力の最後の行は、次のサンプル行のようになります。

    [✓] EKS cluster "my-cluster" in "us-west-2" region is ready

    ノードがクラスターに参加できない場合は、トラブルシューティングガイドの「ノードがクラスタに参加できません」を参照してください。

  2. クラスターのプロビジョニングには通常、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
  3. (Linux加速AMIノードのみ)加速AMIインスタンス タイプを選択し、 Amazon EKS 最適化アクセラレイテッドAMI を Kubernetes用NVIDIAデバイスプラグイン 次のコマンドを使用し、クラスタの DaemonSet として設定します。

    kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.6.0/nvidia-device-plugin.yml

次のステップ

これで、 Amazon EKS Kubernetesアドオンをインストールし、アプリケーションをクラスタにデプロイする準備が整いました。以下のトピックは、クラスターの機能を拡張するのに役立ちます。