Oracle Cloud Infrastructureドキュメント

Kubernetesクラスタの作成

Container Engine for Kubernetesを使用して、新しいKubernetesクラスタを作成することができます。 クラスタを作成するには、テナンシ管理者グループに属するか、またはポリシーがCLUSTER_MANAGE権限を付与するグループに所属する必要があります。

まず、新しいクラスタの基本的な詳細(クラスタ名とマスター・ノードにインストールするKubernetesバージョン)を指定します。 そのあと、次の2つの方法のいずれかでクラスタを作成できます。

  • デフォルト設定を使用して、必要に応じて新しいネットワーク・リソースでクイック・クラスタを作成します。 この方法は、新しいクラスタを最も速く作成する方法です。 すべてのデフォルト値を受け入れると、いくつかのクリックで新しいクラスタを作成できます。 クラスタの新規ネットワーク・リソースが、ノード・プールおよびワーカー・ノードとともに自動的に作成されます。 クイック・クラスタ内のワーカー・ノードはプライベート・サブネット内に作成されるため、NATゲートウェイも(インターネット・ゲートウェイに加えて)作成されます。 クイック・クラスタを作成するには、新しいネットワーク・リソースを作成するために必要な権限をポリシーで付与するグループに属している必要があります(「グループの1つ以上のポリシーを作成する(オプション)」を参照)。
  • カスタム設定を使用してカスタム・クラスタを作成します。 この方法では、新しいクラスタを最も細かく制御できます。 新しいクラスタのプロパティは明示的に定義できます。 また、ワーカー・ノードを作成する既存のパブリック・サブネットやプライベート・サブネットなど、使用する既存のネットワーク・リソースを明示的に指定できます。 通常は新しいカスタム・クラスタを定義するときにノード・プールをただちに定義する必要はありませんが、定義する必要はありません。 ノード・プールなしでカスタム・クラスタを作成し、後でノード・プールを追加できます。

ノート

Container Engine for Kubernetesはまだリージョンのサブネットをサポートしていないため、ロード・バランサ・サブネットまたはワーカー・ノード・サブネットを指定する際にリージョンのサブネットを選択できないことに注意してください。

クラスタの作成方法に関係なく、Container Engine for Kubernetesはワーカー・ノードに次の書式で名前を付けます:

oke-c<part-of-cluster-OCID>-n<part-of-node-pool-OCID>-s<part-of-subnet-OCID>-<slot>

説明:

  • okeは、Container Engine for Kubernetesによって作成されるすべてのワーカー・ノードの標準接頭辞です
  • c<part-of-cluster-OCID > は、文字cを先頭に付けたクラスタOCIDの一部です。

  • n<part-of-node-pool-OCID>は、ノード・プールOCIDの一部で、文字nが先頭に付加されます。
  • s<part-of-subnet-OCID>は、先頭に文字sを付けたサブネットOCIDの一部です。
  • <slot>はサブネット内のノードの序数です(01など)

たとえば、クラスタを指定した場合、ノード・プール内のサブネットごとに2つのノードを持つことになると、2つのノードに名前が付けられます:

  • oke-cywiqripuyg-nsgagklgnst-st2qczvnmba-0
  • oke-cywiqripuyg-nsgagklgnst-st2qczvnmba-1

高可用性を確保するため、「Kubernetesのコンテナ・エンジン」は、(サポートされるリージョンの異なる可用性ドメインに分散されている)複数のOracle管理対象マスター・ノード上にKubernetesコントロール・プレーンを作成します。

コンソールを使用した、デフォルト設定でのクイック・クラスタの作成

デフォルト設定でクイック・クラスタを作成し、Container Engine for Kubernetesを使用して新しいネットワーク・リソースを作成するには:

  1. コンソールで、「ナビゲーション・メニュー」を開きます。 ソリューション、プラットフォームおよびエッジの下で、開発者サービスに行き、「コンテナ・クラスタ」をクリックします。
  2. 作業権限のある「コンパートメント」を選択し、その中に新しいクラスタと、関連するネットワーク・リソースの両方を作成します。

  3. 「クラスタ・リスト」ページで、「クラスタの作成」をクリックします。
  4. 新しいクラスタに対してデフォルトの構成の詳細を受け入れるか、次のように代替を指定します。

    • 名: 新しいクラスタの名前。 デフォルト名をそのまま使用するか、任意の名前を入力します。 機密情報を入力しないでください。
    • Kubernetesバージョン: クラスタのマスター・ノードおよびワーカー・ノードで実行するKubernetesのバージョン。 デフォルト・バージョンを受け入れるか、任意のバージョンを選択します。 とりわけ、選択したKubernetesバージョンによって、作成されたクラスタでオンになるアド・ミッション・コントローラのデフォルト・セットが決定されます(このセットは、そのバージョンのKubernetes documentationで指定されている推奨事項に従います)。
  5. 「クイック作成」を選択すると、新しいクラスタの新しいネットワーク・リソースとともに、デフォルト設定で新しいクラスタが作成されます。

    「仮想クラウド・ネットワークの作成」パネルには、デフォルトで作成されるネットワーク・リソースが表示されます。

    「ノード・プールの作成」パネルには、作成されるクラスタ内の最初のノード・プールの固定プロパティが表示されます。

    • ノード・プールの名前(常時pool1)
    • ノード・プールが作成されるコンパートメント(常に新しいネットワーク・リソースが存在するコンパートメントと同じ)
    • ノード・プールの各ワーカー・ノードで実行されるKubernetesのバージョン(常にマスター・ノードに指定されたバージョンと同じ)
    • ノード・プールの各ノードで使用するイメージ

    「ノード・プールの作成」パネルには、変更できるノード・プールのプロパティの一部も含まれていますが、それらのプロパティには適切なデフォルト値が指定されています。

  6. すべてのデフォルト構成の詳細をそのまま使用し、次のステップに進んでクラスタをすぐに作成するか、次のように代替を指定します。

    1. ノード・プールに対してデフォルトの構成の詳細を受け入れるか、次のように「ノード・プールの作成」パネルで代替を指定します。
      • シェイプ: ノード・プールの各ノードに使用するシェイプ。 シェイプによって、CPUの数、および各ノードに割り当てられるメモリーの量が決まります。 リストは、Container Engine for Kubernetesでサポートされているテナンシで使用可能なシェイプのみを示します。
      • サブネットあたりの数量: 各プライベート・サブネット内のノード・プールに作成するワーカー・ノードの数。
      • 公開SSHキー: (オプション)ノード・プール内の各ノードへのSSHアクセスに使用するキー・ペアの公開キー部分。 公開キーは、クラスタ内のすべてのワーカー・ノードにインストールされます。 公開SSHキーを指定しないと、Container Engine for Kubernetesが提供することに注意してください。 ただし、対応する秘密キーがないので、ワーカー・ノードへのSSHアクセスはありません。 クイック・クラスタ内のワーカー・ノードはプライベート・サブネットにあるため、SSHを使用して直接アクセスすることはできません(「SSHを使用したプライベート・サブネットのワーカー・ノードへの接続」を参照)。
      • Kubernetesラベル: ノード・プールのワーカー・ノードに追加する1つ以上のラベル(デフォルト・ラベルに加えて)。これにより、特定のノード・プールでワークロードのターゲット指定が可能になります。
    2. 残りのクラスタの詳細のデフォルト値を受け入れるか、「追加アドオン」パネルで次のように代替を指定します。

      • Kubernetesダッシュボード有効: Kubernetesダッシュボードを使用してコンテナ化アプリケーションのデプロイとトラブルシューティングを行い、Kubernetesリソースを管理する場合に選択します。 「Kubernetesダッシュボードの起動」を参照してください。
      • ティラー(ヘルム)有効: Tiller (Helmのサーバー部分)をKubernetesクラスタで実行するかどうかを選択します。 クラスタ内でTillerを実行すると、Helmを使用してKubernetesリソースを管理できます。
    3. (オプション) 「このクラスタがリクエストされた後の詳細ページの表示」を選択すると、クラスタ作成プロセスの最後にコンソール内の「クラスタ詳細」タブ(「クラスタ・リスト」ページではなく)に戻ります。
  7. 「作成」をクリックして、新しいネットワーク・リソースと新しいクラスタを作成します。

    Container Engine for Kubernetesは、次の作成を開始します。

    • ネットワーク・リソース(VCN、インターネット・ゲートウェイ、NATゲートウェイ、ルート表、セキュリティ・リスト、プライベート・サブネットなど)、oke-<resource-type>-quick-<cluster-name>という名前 -<creation-date>
    • クラスタ、指定した名前
    • ノード・プール,名前付きpool1
    • ワーカー・ノード、名前の書式はoke-c<part-of-cluster-OCID>-n<part-of-node-pool-OCID>-s<part-of-subnet-OCID>-<slot>

    なんらかの理由でクラスタが正常に作成されていない場合(たとえば、権限が不十分な場合やテナンシのクラスタ制限を超えた場合など)は、クラスタ作成プロセス中に作成されたネットワーク・リソースが自動的に削除されることはありません。 このような未使用のネットワーク・リソースは、手動で削除する必要があります。

  8. 「閉じる」をクリックして、コンソールに戻ります。
  9. 「このクラスタがリクエストされた後の詳細ページの表示」を選択した場合は、コンソールの「クラスタ詳細」タブに戻ります。 「このクラスタがリクエストされた後の詳細ページの表示」を選択しなかった場合は、「クラスタ・リスト」ページに戻ります。

    最初、新しいクラスタは、コンソールに作成中ステータスで表示されます。 クラスタが作成されると、アクティブなステータスになります。

    Container Engine for Kubernetesは、kubectlおよびKubernetes Dashboardを使用してクラスタにアクセスするために使用する、Kubernetes kubeconfig構成ファイルも作成します。

コンソールを使用して、明示的に定義された設定でカスタム・クラスタを作成する

Container Engine for Kubernetesを使用して明示的に定義された設定および既存のネットワーク・リソースを持つカスタム・クラスタを作成するには:

  1. コンソールで、「ナビゲーション・メニュー」を開きます。 ソリューション、プラットフォームおよびエッジの下で、開発者サービスに行き、「コンテナ・クラスタ」をクリックします。
  2. 作業権限があり、新しいクラスタを作成する「コンパートメント」を選択します。
  3. 「クラスタ・リスト」ページで、「クラスタの作成」をクリックします。
  4. 新しいクラスタの構成の詳細を指定します:

    • 名: 新しいクラスタの名前。 デフォルト名をそのまま使用するか、任意の名前を入力します。 機密情報を入力しないでください。
    • Kubernetesバージョン: クラスタのマスター・ノードで実行するKubernetesのバージョン。 デフォルト・バージョンを受け入れるか、任意のバージョンを選択します。 とりわけ、選択したKubernetesバージョンによって、作成されたクラスタでオンになるアド・ミッション・コントローラのデフォルト・セットが決定されます(このセットは、そのバージョンのKubernetes documentationで指定されている推奨事項に従います)。
  5. 新しいクラスタ・プロパティと使用する既存のネットワーク・リソースを明示的に定義することによって新しいクラスタを作成するには、「カスタム作成」を選択します。

  6. 「ネットワークの選択」パネルで新しいクラスタに使用する既存のネットワーク・リソースを指定します。

    • ネットワーク・コンパートメント: 既存のネットワーク・リソースが存在するコンパートメント。
    • VCN: クラスタの作成およびデプロイ用に構成された既存の仮想クラウド・ネットワーク。 「VCN構成」を参照してください。
    • KubernetesサービスLBサブネット: オプションで、ロード・バランサをホストするように構成されている既存のサブネット。 ロード・バランサ・サブネットはワーカー・ノードのサブネットとは異なる必要があり、パブリックまたはプライベートを指定できます。 ロード・バランサ・サブネットを指定する必要はありません。 ただし、ロード・バランサ・サブネットを指定している場合、指定するロード・バランサ・サブネットの数は、クラスタを作成しているリージョンによって異なります:

      • 3つの可用性ドメインがあるリージョンにクラスタを作成する場合、ロード・バランサ・サブネットを指定することも、2つ指定することもできます。 2つのロード・バランサ・サブネットを指定する場合、2つのロード・バランサ・サブネットが異なる可用性ドメインに存在する必要があります。
      • 1つの可用性ドメインを持つリージョン内にクラスタを作成する場合、ロード・バランサ・サブネットを0個または1つ指定できます。

      Container Engine for Kubernetesはリージョンのサブネットをサポートしていないため、ロード・バランサ・サブネットを指定する際にリージョンのサブネットを現在選択できないことに注意してください。

      「サブネット構成」を参照してください。

    • KubernetesサービスCIDRブロック: Kubernetesサービス(ClusterIP)として公開可能なネットワーク・アドレスの利用可能なグループ。単一の連続したIPv4 CIDRブロックとして表されます。 たとえば、10.96.0.0/16です。 指定するCIDRブロックは、VCNのCIDRブロックと重複してはいけません。 「CIDRブロックおよびContainer Engine for Kubernetes」も参照してください。
    • ポッドCIDRブロック: クラスタ内で実行されているポッドに割り当てられるネットワーク・アドレスの利用可能なグループ。単一の連続したIPv4 CIDRブロックとして表されます。 たとえば、10.244.0.0/16です。 指定するCIDRブロックは、VCN内のサブネット用のCIDRブロックと重複してはならず、VCN CIDRブロック外にあることがあります。 「CIDRブロックおよびContainer Engine for Kubernetes」も参照してください。
  7. 「追加アドオン」パネルでクラスタの残りの詳細を指定します。

    • Kubernetesダッシュボード有効: Kubernetesダッシュボードを使用してコンテナ化アプリケーションのデプロイとトラブルシューティングを行い、Kubernetesリソースを管理する場合に選択します。 「Kubernetesダッシュボードの起動」を参照してください。
    • ティラー(ヘルム)有効: Tiller (Helmのサーバー部分)をKubernetesクラスタで実行するかどうかを選択します。 クラスタ内でTillerを実行すると、Helmを使用してKubernetesリソースを管理できます。
  8. 続行をクリックします。
  9. (オプション)「ノード・プール」パネルでクラスタの最初のノード・プールの構成の詳細を指定します。

    • 名: 新しいノード・プール用に選択した名前。 機密情報を入力しないでください。
    • バージョン: ノード・プール内の各ワーカー・ノードで実行するKubernetesのバージョン。 デフォルトでは、マスター・ノードに指定されたKubernetesのバージョンが選択されます。 ワーカー・ノードのKubernetesバージョンは、マスター・ノードのKubernetesバージョンと同じバージョン、または互換性がある以前のバージョンである必要があります。 「KubernetesのバージョンとContainer Engine for Kubernetes」を参照してください。
    • イメージ: ノード・プール内の各ノードで使用するイメージ。 イメージは、ノードのオペレーティング・システムやその他のソフトウェアを決定する仮想ハード・ドライブのテンプレートです。
    • シェイプ: ノード・プールの各ノードに使用するシェイプ。 シェイプによって、CPUの数、および各ノードに割り当てられるメモリーの量が決まります。 リストは、Container Engine for Kubernetesでサポートされているテナンシで使用可能なシェイプのみを示します。
    • サブネット: ワーカー・ノードをホストするように構成された1つ以上のサブネット。 ロード・バランサ・サブネットを指定した場合、ワーカー・ノード・サブネットは異なる必要があります。 指定するサブネットは、パブリックまたはプライベートになります。 Container Engine for Kubernetesはリージョンのサブネットをサポートしていないため、ワーカー・ノード・サブネットを指定するときは、現在リージョンのサブネットを選択できません。 「サブネット構成」を参照してください。
    • サブネットあたりの数量: 各サブネット内のノード・プール用に作成するワーカー・ノードの数。
    • 公開SSHキー: (オプション)ノード・プール内の各ノードへのSSHアクセスに使用するキー・ペアの公開キー部分。 公開キーは、クラスタ内のすべてのワーカー・ノードにインストールされます。 公開SSHキーを指定しないと、Container Engine for Kubernetesが提供することに注意してください。 ただし、対応する秘密キーがないので、ワーカー・ノードへのSSHアクセスはありません。 SSHを使用してプライベート・サブネット内のワーカー・ノードに直接アクセスすることはできません(「SSHを使用したプライベート・サブネットのワーカー・ノードへの接続」を参照)。
    • Kubernetesラベル: ノード・プールのワーカー・ノードに追加する1つ以上のラベル(デフォルト・ラベルに加えて)。これにより、特定のノード・プールでワークロードのターゲット指定が可能になります。
  10. (オプション)「ノード・プールを追加」をクリックして、クラスタ内の2番目以降のノード・プールの構成の詳細を指定します。

    クラスタ内に複数のノード・プールを定義する場合は、すべてのノード・プールを1つのサブネット上にホストすることができます。 ただし、異なるサブネット上のクラスタに異なるノード・プールをホストすることをお勧めします.1つはリージョン内の各可用性ドメインに1つです。

  11. 「確認」をクリックして、使用および作成されるリソースを確認します。
  12. (オプション) 「このクラスタがリクエストされた後の詳細ページの表示」を選択すると、クラスタ作成プロセスの最後にコンソール内の「クラスタ詳細」タブ(「クラスタ・リスト」ページではなく)に戻ります。
  13. 「作成」をクリックして、新しいクラスタを作成します。

    Container Engine for Kubernetesでは、指定した名前でのクラスタの作成が開始されます。

    1つ以上のノード・プールの詳細を指定した場合、Container Engine for Kubernetesは次のように作成します:

    • 指定した名前のノード・プール
    • 名前を持つワーカー・ノードの書式oke-c<part-of-cluster-OCID>-n<part-of-node-pool-OCID>-s<part-of-subnet-OCID>-<slot>

    「このクラスタがリクエストされた後の詳細ページの表示」を選択した場合は、コンソールの「クラスタ詳細」タブに戻ります。 「このクラスタがリクエストされた後の詳細ページの表示」を選択しなかった場合は、「クラスタ・リスト」ページに戻ります。

  14. 最初、新しいクラスタは、コンソールに作成中ステータスで表示されます。 クラスタが作成されると、アクティブなステータスになります。

    Container Engine for Kubernetesは、kubectlおよびKubernetes Dashboardを使用してクラスタにアクセスするために使用する、Kubernetes kubeconfig構成ファイルも作成します。

APIの使用

APIおよび署名リクエストの使用については、REST APIおよび「セキュリティ資格証明」を参照してください。 SDKの詳細は、「ソフトウェア開発キットとコマンドライン・インタフェース」を参照してください。

CreateCluster操作を使用してクラスタを作成します。