この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

Amazon EC2 クラスターの作成

このセクションでは、Amazon EC2 に RKE2 または K3s Kubernetes クラスターをデプロイする方法を学びます。

まず、Rancher に EC2 クラウド認証情報を設定します。

次に、Rancher で EC2 クラスターを作成し、新しいクラスターを構成する際に、マシンプールを定義します。各マシンプールには、etcd、controlplane、または worker の Kubernetes ロールがあります。Rancher は新しいノードに Kubernetes をインストールし、マシンプールによって定義された Kubernetes ロールで各ノードを設定します。

前提条件

EC2クラスターの作成

クラスターを作成する手順は、Rancherのバージョンによって異なります。

クラウド資格情報を作成する

すでに使用するクラウド認証情報のセットがある場合は、このセクションをスキップしてください。

  1. *☰ > クラスター管理*をクリックします。

  2. クラウド資格情報 をクリックします。

  3. 作成]をクリックします。

  4. *Amazon*をクリックします。

  5. クラウド認証情報の名前を入力してください。

  6. *デフォルトリージョン*フィールドで、クラスターのノードが配置されるAWSリージョンを選択します。

  7. AWS EC2の*アクセスキー*と*シークレットキー*を入力してください。

  8. 作成]をクリックします。

*結果:*クラスター内のノードをプロビジョニングするために使用されるクラウド認証情報を作成しました。

クラスターを作成する

  1. *☰ > クラスター管理*をクリックします。

  2. *クラスター*ページで、*作成*をクリックします。

  3. スイッチを*RKE2/K3s*に切り替えます。

  4. *Amazon EC2*をクリックします。

  5. 複数存在する場合は、*クラウド認証情報*を選択します。そうでなければ、事前に選択されています。

  6. *クラスター名*を入力してください。

  7. 各Kubernetesロールごとにマシンプールを作成してください。役割の割り当てと数に関する推奨事項については、ベストプラクティスを参照してください。

    1. 各マシンプールごとに、マシンの構成を定義してください。構成オプションに関する情報については、EC2マシン構成リファレンスを参照してください。

  8. インストールするKubernetesのバージョン、使用するネットワークプロバイダー、およびプロジェクトネットワークの分離を有効にするかどうかを選択するには、*クラスター構成*を使用してください。クラスターの構成に関するヘルプについては、RKE2およびK3sクラスター構成リファレンスを参照してください。

  9. クラスターのユーザー認可を構成するには、*メンバー役割*を使用してください。*メンバーを追加*をクリックして、クラスターにアクセスできるユーザーを追加してください。各ユーザーの権限を設定するには、*役割*のドロップダウンを使用してください。

  10. 作成]をクリックします。

結果:

クラスターが作成され、状態が*プロビジョニング*に割り当てられました。Rancherがクラスターを立ち上げています。

状態が*アクティブ*に更新された後、クラスターにアクセスできます。

*アクティブ*なクラスターには、2つのプロジェクトが割り当てられています:

  • Default、`default`名前空間を含む

  • Systemcattle-systemtraefikkube-public、および`kube-system`名前空間を含む

オプションの次のステップ

クラスターを作成した後、Rancher UIを通じてアクセスできます。ベストプラクティスとして、クラスターにアクセスするためのこれらの代替方法を設定することをお勧めします:

  • kubectl CLIを使用してクラスターにアクセスする:これらの手順に従って、ワークステーションでkubectlを使用してクラスターにアクセスしてください。この場合、Rancherサーバーの認証プロキシを通じて認証され、その後Rancherがダウンストリームクラスターに接続します。この方法を使用すると、Rancher UIなしでクラスターを管理できます。

  • 認可されたクラスターエンドポイントを使用して、kubectl CLIでクラスターにアクセスします:これらの手順に従って、Rancherを介さずにkubectlでクラスターに直接アクセスします。Rancherに接続できない場合でもクラスターにアクセスできるように、この代替方法を設定することをお勧めします。

IAMポリシー

IAMポリシーの例

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:Describe*",
                "ec2:ImportKeyPair",
                "ec2:CreateKeyPair",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "ec2:DeleteKeyPair",
                "ec2:ModifyInstanceMetadataOptions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:REGION::image/ami-*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:instance/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:placement-group/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:volume/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:subnet/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:key-pair/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:network-interface/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:security-group/*"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "ec2:RebootInstances",
                "ec2:TerminateInstances",
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:instance/*"
        }
    ]
}

PassRoleを使用したIAMポリシーの例

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:Describe*",
                "ec2:ImportKeyPair",
                "ec2:CreateKeyPair",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "ec2:DeleteKeyPair",
                "ec2:ModifyInstanceMetadataOptions"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "iam:PassRole",
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:REGION::image/ami-*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:instance/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:placement-group/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:volume/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:subnet/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:key-pair/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:network-interface/*",
                "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:security-group/*",
                "arn:aws:iam::AWS_ACCOUNT_ID:role/YOUR_ROLE_NAME"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "ec2:RebootInstances",
                "ec2:TerminateInstances",
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:instance/*"
        }
    ]
}

暗号化されたEBSボリュームを許可するIAMポリシーの例

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:Encrypt",
        "kms:DescribeKey",
        "kms:CreateGrant",
        "ec2:DetachVolume",
        "ec2:AttachVolume",
        "ec2:DeleteSnapshot",
        "ec2:DeleteTags",
        "ec2:CreateTags",
        "ec2:CreateVolume",
        "ec2:DeleteVolume",
        "ec2:CreateSnapshot"
      ],
      "Resource": [
        "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:volume/*",
        "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:instance/*",
        "arn:aws:ec2:REGION:AWS_ACCOUNT_ID:snapshot/*",
        "arn:aws:kms:REGION:AWS_ACCOUNT_ID:key/KMS_KEY_ID"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeInstances",
        "ec2:DescribeTags",
        "ec2:DescribeVolumes",
        "ec2:DescribeSnapshots"
      ],
      "Resource": "*"
    }
  ]
}