ユーザー クラスタの作成(基本)

このページでは、ユーザー クラスタを作成する方法について説明します。

このトピックの手順は、gkeadm を使用して管理ワークステーションを作成したことを前提としています。gkeadm を使用せず、静的 IP アドレスを持つ管理ワークステーションを作成の手順に沿って作成した場合、このトピックの説明に従って調整を行います。必要な調整は個々の手順の中で説明します。

プロキシの内側から操作する場合、すべての gkectl コマンドは、管理ワークステーションからのインターネット リクエストの構成ファイルで設定したものと同じプロキシを自動的に使用します。管理ワークステーションが同じプロキシの内側にない場合は、「管理ワークステーションの作成」の「手動プロキシオプション」における静的 IPDHCP の高度なトピックをご覧ください。

管理ワークステーションへの SSH 接続

管理ワークステーションへの SSH 接続の確立の手順に沿って、管理ワークステーションに SSH 接続します。

許可リストに登録されたサービス アカウントは、管理ワークステーションで有効化されます。このトピックの残りの手順はすべて管理ワークステーションで行います。

ユーザー クラスタの静的 IP の構成

ユーザー クラスタに使用する静的 IP アドレスを指定するには、user-hostconfig.yaml という名前のホスト構成ファイルを作成します。この学習では、ユーザー クラスタで使用する 3 つの IP アドレスを指定する必要があります。

3 つのホストを持つホスト構成ファイルの例を、次に示します。

hostconfig:
  dns: 172.16.255.1
  tod: 216.239.35.0
  otherdns:
  - 8.8.8.8
  - 8.8.4.4
  othertod:
  - ntp.ubuntu.com
  searchdomainsfordns:
  - "my.local.com"
blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.15
      hostname: user-host1
    - ip: 172.16.20.16
      hostname: user-host2
    - ip: 172.16.20.17
      hostname: user-host3

ips フィールドは、IP アドレスとホスト名の配列です。これらは、GKE On-Prem がユーザー クラスタノードに割り当てる IP アドレスとホスト名です。

ホスト構成ファイルでは、ユーザー クラスタノードが使用する DNS サーバー、タイムサーバー、デフォルト ゲートウェイのアドレスも指定します。

searchdomainsfordns フィールドは、クラスタで使用する DNS 検索ドメインの配列です。これらのドメインは、ドメイン検索リストの一部として使用されます。

構成ファイルの入力フィールド

管理ワークステーションを作成したときに、admin-ws-config.yaml という名前の構成ファイルに入力ました。gkeadm コマンドライン ツールで admin-ws-config.yaml ファイルを使用して管理ワークステーションを作成しました。

gkeadm が管理ワークステーションを作成したときに、user-cluster.yaml という名前の別の構成ファイルが生成されました。管理ワークステーションにあるこの構成ファイルは、ユーザー クラスタの作成に使用します。

admin-ws-config.yaml ファイルと user-cluster.yaml ファイルには複数の共通のフィールドがあります。この共通フィールドの値は、すでに user-cluster.yaml ファイルで入力されています。

管理ワークステーションの作成時に指定した値が入力されているフィールドは、次のとおりです。

stackdriver:
  projectID:
  serviceAccountKeyPath:
gkeConnect:
  projectID:
  registerServiceAccountKeyPath:
  agentServiceAccountKeyPath:

構成ファイルの残りの部分への入力

次に、user-cluster.yaml ファイルの残りのフィールドを入力します。

name

文字列。ユーザー クラスタの任意の名前。例:

name: "my-user-cluster"

gkeOnPremVersion

文字列。ユーザー クラスタの GKE On-Prem のバージョン。例:

gkeOnPremVersion: "1.4.3-gke.3"

network.ipMode.type

文字列。"static" に設定します。

network:
  ipMode:
    type: "static"

network.ipBlockFilePath

文字列。静的 IP アドレスを使用しているため、静的 IP の構成で説明されているホスト構成ファイルが必要です。network.ipBlockFilePath にホスト構成ファイルのパスを設定します。例:

network:
  ipBlockFilePath: "/my-config-directory/admin-hostconfig.yaml"

network.serviceCIDRnetwork.podCiDR

文字列。ユーザー クラスタには、Service に使用する IP アドレスの範囲と Pod に使用する IP アドレスの範囲が必要です。これらの範囲は、network.serviceCIDR フィールドと network.podCIDR フィールドで指定します。これらのフィールドにはデフォルト値が入力されています。入力した値は、必要に応じて任意の値に変更できます。

Service と Pod の範囲は重複しないようにします。また、Service と Pod の範囲が、クラスタ内のノードで使用する IP アドレスと重複しないようにしてください。

例:

network:
  ...
  serviceCIDR: "10.96.232.0/24"
  podCIDR: "192.168.0.0/16"

network.vCenter.networkName

文字列。クラスタノードの vSphere ネットワークの名前。

名前に特殊文字が含まれる場合は、エスケープ シーケンスを使用する必要があります。

特殊文字 エスケープ シーケンス
スラッシュ(/ %2f
バックスラッシュ(\ %5c
パーセント記号(% %25

ネットワーク名が一意でない場合は、/DATACENTER/network/NETWORK_NAME などのネットワークのパスを指定できます。

例:

network:
  vCenter:
    networkName: "MY-CLUSTER-NETWORK"

loadBalancer.vips

文字列。loadBalancer.vips.controlPlaneVIP の値を、ユーザー クラスタの Kubernetes API サーバー用のロードバランサに構成するよう選択した IP アドレスに設定します。loadBalancer.vips.ingressVIP の値を、ユーザー クラスタの Ingress サービスのロードバランサで構成した IP アドレスに設定します。例:

loadBalancer:
  ...
  vips:
    controlplaneVIP: "203.0.113.5"
    ingressVIP: "203.0.113.6"

loadBalancer.kind

文字列。"Seesaw" に設定します。例:

loadBalancer:
  kind: "Seesaw"

loadBalancer.seesaw.ipBlockFilePath

文字列。これを、Seesaw VM の hostconfig ファイルのパスに設定します。例:

loadbalancer:
  ...
  seesaw:
    ipBlockFilePath: "user-seesaw-hostconfig.yaml"

loadBalancer.seesaw.vird

整数。Seesaw VM の仮想ルーター識別子。この識別子は VLAN 内で一意なものにする必要があります。有効な範囲は 1~255 です。例:

loadBalancer:
  seesaw:
    vrid: 126

loadBalancer.seesaw.masterIP

文字列。Seesaw VM のコントロール プレーンの IP アドレス。例:

loadBalancer:
  seesaw:
    masterIP: "203.0.113.7"

loadBalancer.seesaw.cpus

整数。Seesaw VM の CPU 数。例:

loadBalancer:
  seesaw:
    cpus: 8

loadBalancer.seesaw.memoryMB

整数。Seesaw VM のメモリのメガバイト数。例:

loadBalancer:.
  seesaw:
    memoryMB: 8192

loadBalancer.seesaw.enableHA

ブール値。false に設定します。例:

loadBalancer:.
  seesaw:
    enableHA: false

nodePools.name

文字列。ノードプールに付ける名前。例:

nodePools:
- name: "my-user-pool"

nodePools.replicas

整数。ノードプール内の VM の数。3 に設定します。

nodePools:
- name: "my-user-pool"
  replicas: 3

stackdriver.clusterLocation

文字列。ログを保存する Google Cloud リージョン。お使いのオンプレミス データセンターの近くのリージョンを選択することをおすすめします。

stackdriver.enablevpc

クラスタのネットワークが VPC によって制御されている場合は、stackdriver.enablevpctrue に設定します。これにより、すべてのテレメトリーが Google の制限された IP アドレスを通過するようになります。

stackdriver.enableVPC

ブール値。クラスタのネットワークが VPC によって制御されている場合は、stackdriver.enableVPCtrue に設定します。これにより、すべてのテレメトリーが Google の制限された IP アドレスを通過するようになります。それ以外の場合は false に設定します。例:

stackdriver:
  enableVPC: false

構成ファイルの追加フィールド

GKE On-Prem の構成ファイルには、このトピックに示されているフィールド以外にもいくつかのフィールドがあります。たとえば、manuallbspec フィールドを使用して、GKE On-Prem を手動負荷分散モードで実行するように構成できます。

構成ファイルのフィールドの詳細については、DHCP を使用したインストール静的 IP アドレスを使用したインストールをご覧ください。

構成ファイルを検証する

構成ファイルを変更したら、gkectl check-config を実行して、ファイルが有効でインストールに使用できることを確認します。

gkectl check-config --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

ここで

  • [ADMIN_CLUSTER_KUBECONFIG] は管理クラスタの kubeconfig ファイルのパスです。

  • [CONFIG_FILE] は、ユーザー クラスタの構成ファイルのパスです。

コマンドが FAILURE メッセージを返した場合は、問題を修正してファイルを再度検証します。

時間のかかる検証をスキップする場合は、--fast フラグを渡します。個別の検証をスキップするには、--skip-validation-xxx フラグを使用します。check-config コマンドについて詳しくは、プリフライト チェックの実行をご覧ください。

ロードバランサの作成

Seesaw ロードバランサの VM を作成して構成します。

gkectl create loadbalancer --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

ここで

  • [ADMIN_CLUSTER_KUBECONFIG] は管理クラスタの kubeconfig ファイルのパスです。

  • [CONFIG_FILE] は、ユーザー クラスタの構成ファイルのパスです。

ユーザー クラスタの作成

ユーザー クラスタを作成します。

gkectl create cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config [CONFIG_FILE]

ここで

  • [ADMIN_CLUSTER_KUBECONFIG] は管理クラスタの kubeconfig ファイルのパスです。

  • [CONFIG_FILE] は、ユーザー クラスタの構成ファイルのパスです。