バージョン 1.6

管理クラスタの作成(基本)

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

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

前のトピックでは、gkeadm を使用して管理ワークステーションを作成しました。管理ワークステーション上のコンポーネント アクセス サービス アカウントも、gkeadm を使用して有効にしました。

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

このトピックの残りの手順はすべて管理ワークステーションで行います。

管理クラスタの静的 IP の構成

管理クラスタに使用する静的 IP アドレスを指定するには、IP ブロック ファイルadmin-cluster-ipblock.yaml という名前で作成します。この演習では、管理クラスタで使用する IP アドレスを 5 つ指定する必要があります。

5 つのホストが記載された IP ブロック ファイルの例を次に示します。

blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.10
      hostname: admin-host1
    - ip: 172.16.20.11
      hostname: admin-host2
    - ip: 172.16.20.12
      hostname: admin-host3
    - ip: 172.16.20.13
      hostname: admin-host4
    - ip: 172.16.20.14
      hostname: admin-host5

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

IP ブロック ファイルには、管理クラスタノード用のサブネット マスクとデフォルト ゲートウェイも指定します。

認証情報構成ファイルの作成

vCenter ユーザー アカウントのユーザー名とパスワードを保持する認証情報構成ファイルを、admin-creds.yaml という名前で作成します。ユーザー アカウントには管理者ロールまたは同等の権限が必要です。

認証情報構成ファイルの例を次に示します。

apiVersion: v1
kind: "CredentialFile"
items:
- name: "vcenter-creds"
  username: "my-vcenter-account"
  password: "U$icUKEW#INE"

GKE On-Prem の構成ファイルで入力されたフィールド

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

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

admin-cluster.yaml ファイルには、admin-ws-config.yaml ファイルの特定のフィールドと同じか、関連するフィールドが複数あります。これらのフィールドの値は、すでに admin-cluster.yaml ファイルに入力されています。

admin-ws-config.yaml ファイルに入力した値に従ってすでに入力されている admin-cluster.yaml のフィールドは、次のとおりです。

vCenter:
  address:
  datacenter:
  cluster:
  network:
    vCenter:
      networkName:
  resourcePool:
  datastore:
  caCertPath:
proxy:
  url:
gcrKeyPath:

admin-cluster.yaml の他のフィールドのいくつかに、デフォルト値または生成された値が入力されます。例:

bundlePath:
loadbalancer
  seesaw:
    cpus:
    memoryMB:
    enableHA:
stackdriver:
  projectID:
  serviceAccountKeyPath:

admin-cluster.yaml ファイルの他の値は、変更せずにそのまま残します。

残りの管理クラスタ構成ファイルの入力

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

vCenter.credentials.fileRef.path

文字列。認証情報構成ファイルのパス。例:

vCenter:
  credentials:
    fileRef:
      path: "admin-creds.yaml"

vCenter.credentials.fileRef.entry

文字列。認証情報ブロックの名前で、認証情報構成ファイルにあります。vCenter ユーザー アカウントのユーザー名とパスワードを保持します。次に例を示します。

vCenter:
  credentials:
    fileRef:
      entry: "vcenter-creds"

vCenter.dataDisk

文字列。GKE On-Prem は、管理クラスタの Kubernetes オブジェクト データを保持する仮想マシンディスク(VMDK)を作成します。インストーラによって VMDK が作成されますが、vCenter.dataDisk フィールドに VMDK の名前を指定する必要があります。例:

vCenter:
  dataDisk: "my-disk.vmdk"
vSAN データストア: VMDK 用フォルダの作成

vSAN データストアを使用する場合は、VMDK をフォルダに格納する必要があります。フォルダは、事前に手動で作成する必要があります。govc を使用してフォルダを作成することで、これを行えます。

govc datastore.mkdir -namespace=true my-gke-on-prem-folder

次に、vCenter.dataDisk を VMDK のパス(フォルダを含む)に設定します。例:

vDenter:
dataDisk: "my-gke-on-prem-folder/my-disk.vmdk"

network.ipMode.type

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

network:
  ipMode:
    type: "static"

network.ipBlockFilePath

文字列。静的 IP の構成で説明されているように、静的 IP アドレスを使用しているため、IP ブロック ファイルが必要です。network.ipBlockFilePath には、IP ブロック ファイルのパスを設定します。次に例を示します。

network:
  ipBlockFilePath: "/my-config-directory/admin-cluster-ipblock.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"

loadBalancer.vips

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

loadBalancer:
  vips:
    controlplaneVIP: "203.0.113.3"
    addonsVIP: "203.0.113.4"

loadBalancer.kind

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

loadBalancer:
  kind: "Seesaw"

loadBalancer.seesaw.ipBlockFilePath

文字列。Seesaw VM の IP ブロック ファイルのパスを設定します。

例:

loadbalancer:
  seesaw:
    ipBlockFilePath: "admin-seesaw-ipblock.yaml"

loadBalancer.seesaw.vird

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

loadBalancer:
  seesaw:
    vrid: 125

loadBalancer.seesaw.masterIP

文字列。Seesaw VM が通知する任意の IP アドレス。例:

loadBalancer:
  seesaw:
    masterIP: "172.16.20.21"

loadBalancer.seesaw.enableHA

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

loadBalancer:.
  seesaw:
    enableHA: false

proxy.url

文字列。管理ワークステーション構成ファイルで proxyURL に値を入力した場合、このフィールドには同じ値が入っています。

管理クラスタとユーザー クラスタを、管理ワークステーションとは異なるプロキシの背後に配置する場合は、クラスタで使用するプロキシ サーバーの HTTP アドレスを設定します。ポート番号は、スキームのデフォルト ポートと同じ場合でも含める必要があります。例:

proxy:
  url: "http://my-proxy.example.local:80"

proxy.noProxy

文字列。プロキシ サーバーを経由しない IP アドレス、IP アドレス範囲、ホスト名、ドメイン名のリスト。GKE On-Prem がこれらのアドレス、ホスト、ドメインのいずれかにリクエストを送信する場合、そのリクエストは直接送信されます。例:

proxy:
  noProxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"

stackdriver.clusterLocation

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

stackdriver:
  clusterLocation: "us-central1"

stackdriver.enableVPC

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

stackdriver:
  enableVPC: false

管理クラスタの構成ファイルの追加フィールド

管理クラスタの構成ファイルには、このトピックに示すフィールド以外にも複数のフィールドがあります。構成ファイル内のフィールドの詳細については、管理クラスタの構成ファイルをご覧ください。

管理クラスタの構成ファイルの検証

管理クラスタの構成ファイルを変更したら、gkectl check-config を実行して、ファイルが有効で、クラスタの作成に使用できることを確認します。

gkectl check-config --config admin-cluster.yaml

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

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

gkectl prepare の実行

gkectl prepare を実行して、vSphere 環境を初期化します。

gkectl prepare --config admin-cluster.yaml --skip-validation-all

ロードバランサの作成

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

gkectl create loadbalancer --config [CONFIG_FILE]

ここで、[CONFIG_FILE] は、管理クラスタの構成ファイルのパスです。

管理クラスタの作成

管理クラスタを作成します。

gkectl create admin --config [CONFIG_FILE]

[CONFIG_FILE] は、管理クラスタの構成ファイルのパスです。