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

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

管理ワークステーションに 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

ロードバランサの作成

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

gkectl create loadbalancer --config admin-cluster.yaml

管理クラスタの作成

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

gkectl create admin --config admin-cluster.yaml