このページでは、ユーザー クラスタを作成する方法について説明します。
このトピックの手順は、gkeadm
を使用して管理ワークステーションを作成したことを前提としています。gkeadm
を使用せず、静的 IP アドレスを持つ管理ワークステーションを作成の手順に沿って作成した場合、このトピックの説明に従って調整を行います。必要な調整は個々の手順の中で説明します。
プロキシの内側から操作する場合、すべての gkectl
コマンドは、管理ワークステーションからのインターネット リクエストの構成ファイルで設定したものと同じプロキシを自動的に使用します。管理ワークステーションが同じプロキシの内側にない場合は、「管理ワークステーションの作成」の「手動プロキシオプション」における静的 IP と DHCP の高度なトピックをご覧ください。
管理ワークステーションへの 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.serviceCIDR
と network.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.enablevpc
を true
に設定します。これにより、すべてのテレメトリーが Google の制限された IP アドレスを通過するようになります。
stackdriver.enableVPC
ブール値。クラスタのネットワークが VPC によって制御されている場合は、stackdriver.enableVPC
を true
に設定します。これにより、すべてのテレメトリーが 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] は、ユーザー クラスタの構成ファイルのパスです。