このページでは、Anthos clusters on VMware(GKE On-Prem)の管理クラスタ構成ファイルで使用されるフィールドについて説明します。
構成ファイルのテンプレートの生成
gkeadm
を使用して管理ワークステーションを作成した場合、gkeadm
により管理クラスタの構成ファイル用のテンプレートが生成されます。また、gkeadm
によって一部のフィールドに入力されます。
管理ワークステーションの作成に gkeadm
を使用していない場合、gkectl
を使用して管理クラスタの構成ファイルのテンプレートを生成できます。
管理クラスタの構成ファイルのテンプレートを生成するには:
gkectl create-config admin --config=OUTPUT_FILENAME
OUTPUT_FILENAME
は、生成されたテンプレートの任意のパスに置き換えます。このフラグを省略すると、gkectl
はファイルに admin-cluster.yaml
という名前を付け、現在のディレクトリに配置します。
テンプレート
構成ファイルの入力
次のセクションで説明するように、構成ファイルでフィールド値を入力します。
bundlePath
文字列。Anthos clusters on VMware バンドル ファイルのパス。
Anthos clusters on VMware フルバンドル ファイルには、Anthos clusters on VMware の特定リリースのすべてのコンポーネントが含まれています。管理ワークステーションを作成すると、フルバンドルが次の場所に追加されます。
/var/lib/gke/bundles/gke-onprem-vsphere-VERSION-full.tgz
次に例を示します。
bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.7.0-gke.16.full.tgz"
vCenter
このセクションには、vCenter 環境に関する情報が表示されます。
vCenter.address
文字列。vCenter Server の IP アドレスまたはホスト名。
address
フィールドを入力する前に、vCenter Server のサービス証明書をダウンロードして検査します。次のコマンドを入力して証明書をダウンロードし、vcenter.pem
という名前のファイルに保存します。
true | openssl s_client -connect VCENTER_IP:443 -showcerts 2>/dev/null | sed -ne '/-BEGIN/,/-END/p' > vcenter.pem
VCENTER_IP
は、vCenter Server の IP アドレスに置き換えます。
証明書ファイルを開き、サブジェクトの共通名とサブジェクトの代替名を表示します。
openssl x509 -in vcenter.pem -text -noout
出力に Subject
共通名(CN)が表示されます。これが IP アドレスである場合も、ホスト名である場合もあります。次に例を示します。
Subject: ... CN = 203.0.113.100
Subject: ... CN = my-vcenter-server.my-domain.example
出力では、Subject Alternative Name
に 1 つ以上の DNS 名を含めることもできます。
X509v3 Subject Alternative Name: DNS:vcenter.my-domain.example
Subject
共通名または Subject Alternative Name
のいずれか 1 つの DNS 名を選択して、構成ファイルの vcenter.address
の値として使用します。例:
vCenter: address: "203.0.113.100"
vCenter: address: "my-vcenter-server.my-domain.example"
vCenter.datacenter
文字列。vCenter データセンターの名前。次に例を示します。
vCenter: datacenter: "MY-DATACENTER"
vCenter.folder
文字列。クラスタ VM が配置される vCenter フォルダの名前。次に例を示します。
vCenter: folder: "MY-FOLDER"
vCenter.cluster
文字列。vCenter クラスタの名前。次に例を示します。
vCenter: cluster: "MY-CLUSTER"
vCenter.resourcePool
文字列。vCenter リソースプールの名前。次に例を示します。
デフォルト以外のリソースプールを使用している場合は、vCenter リソースプールの名前を指定します。次に例を示します。
vCenter: resourcePool: "MY-POOL"
デフォルトのリソースプールを使用している場合は、次の値を指定します。
vCenter: resourcePool: "VCENTER_CLUSTER/Resources"
VCENTER_CLUSTER
は、使用する vCenter クラスタの名前に置き換えます。
vCenter.datastore
文字列。vCenter データストアの名前。次に例を示します。
vCenter: datastore: "MY-DATASTORE"
スタンドアロン ホストのルートリソース プールの指定をご覧ください。
vCenter.caCertPath
文字列。Anthos clusters on VMware などのクライアントが vCenter Server にリクエストを送信すると、サーバーは、証明書または証明書バンドルを提示して、ID をクライアントに証明する必要があります。証明書またはバンドルを確認するには、Anthos clusters on VMware に信頼チェーン内のルート証明書が必要です。
vCenter.caCertPath
をルート証明書のパスに設定します。次に例を示します。
vCenter: caCertPath: "/usr/local/google/home/me/certs/vcenter-ca-cert.pem"
ご使用の VMware インストレーションには、vCenter サーバーに証明書を発行する認証局(CA)があります。信頼チェーンのルート証明書は、VMware が作成した自己署名証明書です。
デフォルトの VMWare CA を使用しない場合は、別の認証局を使用するように VMware を構成できます。
vCenter Server でデフォルトの VMware CA が発行した証明書を使用している場合は、次のように証明書をダウンロードします。
curl -k "https://SERVER_ADDRESS/certs/download.zip" > download.zip
SERVER_ADDRESS
は、vCenter Server のアドレスに置き換えます。
unzip
コマンドをインストールし、証明書ファイルを解凍します。
sudo apt-get install unzip unzip downloads.zip
1 回の unzip コマンドで解凍できない場合は、再度コマンドを入力します。
certs/lin
で証明書ファイルを見つけます。
vCenter.credentials.fileRef.path
文字列。vCenter ユーザー アカウントのユーザー名とパスワードを保持する認証情報構成ファイルのパス。ユーザー アカウントには管理者ロールまたは同等の権限が必要です。vSphere の要件をご覧ください。次に例を示します。
vCenter: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
vCenter.credentials.fileRef.entry
文字列。vCenter ユーザー アカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。次に例を示します。
vCenter: credentials: fileRef: entry: "vcenter-creds"
vCenter.dataDisk
文字列。Anthos clusters on VMware は、Kubernetes オブジェクト データを保持する仮想マシンディスク(VMDK)を作成します。インストーラによって VMDK が作成されますが、vCenter.dataDisk
フィールドに VMDK の名前を指定する必要があります。次に例を示します。
vCenter: dataDisk: "my-disk.vmdk"
network
このセクションには、管理クラスタ ネットワークに関する情報が含まれます。
network.hostConfig
このセクションには、クラスタで使用される NTP サーバー、DNS サーバー、DNS 検索ドメインに関する情報が格納されます。
次のフィールドのどちらかまたは両方に値を指定した場合は、このセクションを入力します。それ以外の場合は、このセクションを削除します。
loadBalancer.seesaw.ipBlockFilePath
network.ipMode.ipBlockFilePath
network.hostConfig.dnsServers
文字列の配列。ホストが使用する DNS サーバーのアドレス。例:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2"
network.hostConfig.ntpServers
文字列の配列。ホストが使用する時刻サーバーのアドレス。例:
network: hostConfig: ntpServers: - "216.239.35.0"
network.hostConfig.searchDomainsForDNS
文字列の配列。ホストが使用する DNS 検索ドメイン。これらのドメインは、ドメイン検索リストの一部として使用されます。次に例を示します。
network: hostConfig: searchDomainsForDNS: - "my.local.com"
network.ipMode.type
文字列。クラスタノードが DHCP サーバーから IP アドレスを取得するようにするには、これを "dhcp"
に設定します。クラスタノードに、指定したリストから静的 IP アドレスを選択させる場合は、これを "static"
に設定します。
次に例を示します。
network: ipMode: type: "static"
network.ipMode.ipBlockFilePath
ipMode.type
を "static"
に設定した場合は、このフィールドに入力します。
ipMode.type
を "dhcp"
に設定した場合は、このフィールドを削除します。
文字列。管理クラスタノードの IP ブロック ファイルのパス。次に例を示します。
network: ipMode: ipBlockFilePath: "/my-config-folder/admin-cluster-ipblock.yaml"
network.serviceCIDR
と network.podCiDR
文字列。管理クラスタには、Service に使用する IP アドレスの範囲と Pod に使用する IP アドレスの範囲が必要です。これらの範囲は、network.serviceCIDR
フィールドと network.podCIDR
フィールドで指定します。これらのフィールドにはデフォルト値が入力されています。入力した値は、必要に応じて任意の値に変更できます。
Service と Pod の範囲は RFC 1918 アドレス空間にすることをおすすめします。
RFC 1918 アドレスを使用することが推奨される理由の 1 つは次のとおりです。Pod または Service の範囲に外部 IP アドレスが含まれているとします。Pod からそれらの外部アドレスのいずれかに送信されたトラフィックは、クラスタ内トラフィックとして扱われ、外部の宛先に到達しません。
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
このセクションでは、管理クラスタのロードバランサに関する情報について説明します。
loadBalancer.vips.controlPlaneVIP
文字列。管理クラスタの Kubernetes API サーバー用にロードバランサで構成するために選択した IP アドレス。次に例を示します。
loadBalancer: vips: controlplaneVIP: "203.0.113.3"
loadBalancer.vips.addonsVIP
文字列。ロードバランサでアドオン用に選択した IP アドレス。次に例を示します。
loadBalancer: vips: addonsVIP: "203.0.113.4"
loadBalancer.kind
文字列。"Seesaw"
、"F5BigIP"
、"ManualLB"
のいずれかに設定します。次に例を示します。
loadBalancer: kind: "Seesaw"
loadBalancer.manualLB
loadbalancer.kind
を "ManualLB"
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除します。
loadBalancer.manualLB.ingressHTTPNodePort
このフィールドを構成ファイルから削除します。管理クラスタでは使用されません。
loadBalancer.manualLB.ingressHTTPSNodePort
このフィールドを構成ファイルから削除します。管理クラスタでは使用されません。
loadBalancer.manualLB.controlPlaneNodePort
整数。管理クラスタの Kubernetes API サーバーは、NodePort
型の Service として実装されます。Service の nodePort
値を選択する必要があります。
このフィールドに nodePort
値を設定します。例:
loadBalancer: manualLB: contolPlaneNodePort: 30968
loadBalancer.manualLB.addonsNodePort
整数。管理クラスタ内のアドオン サーバーは、NodePort
型の Service として実装されます。Service の nodePort
値を選択する必要があります。
このフィールドに nodePort
値を設定します。例:
loadBalancer: manualLB: addonsNodePort: 31405
loadBalancer.f5BigIP
loadbalancer.kind
を "f5BigIP"
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除します。
loadBalancer.f5BigIP.address
文字列。F5 BIG-IP ロードバランサのアドレス。例:
loadBalancer: f5BigIP: address: "203.0.113.2"
loadBalancer.f5BigIP.fileRef.path
文字列。Anthos clusters on VMware が F5 BIG-IP ロードバランサへの接続に使用できるアカウントの、ユーザー名とパスワードを保持する認証情報構成ファイルのパス。
ユーザー アカウントには、ロードバランサの設定と管理を行うために十分な権限を持つユーザーロールが必要です。管理者ロールまたはリソース管理者ロールのどちらかで十分です。
例:
loadBalancer: f5BigIP: fileRef: path: ""my-config-folder/admin-creds.yaml"
loadBalancer.f5BigIP.fileRef.entry
文字列。F5 BIG-IP アカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。次に例を示します。
loadBalancer: f5BigIP: fileRef: entry: "f5-creds"
loadBalancer.f5BigIP.partition
文字列。管理クラスタ用に作成した BIG-IP パーティションの名前。例:
loadBalancer: f5BigIP: partition: "my-f5-admin-partition"
loadBalancer.f5BigIP.snatPoolName
文字列。SNAT を使用している場合は、SNAT プールの名前。SNAT を使用していない場合は、このフィールドを削除します。次に例を示します。
loadBalancer: f5BigIP: snatPoolName: "my-snat-pool"
loadBalancer.seesaw
loadbalancer.kind
を "Seesaw"
に設定した場合は、このセクションに入力します。それ以外の場合は、このセクションを削除します。
loadBalancer.seesaw.ipBlockFilePath
文字列。Seesaw VM の IP ブロック ファイルのパスに設定します。次に例を示します。
loadBalancer: seesaw: ipBlockFilePath: "admin-seesaw-ipblock.yaml"
loadBalancer.seesaw.vrid
整数。Seesaw VM の仮想ルーター識別子。この識別子は VLAN 内で一意なものにする必要があります。有効な範囲は 1~255 です。例:
loadBalancer: seesaw: vrid: 125
loadBalancer.seesaw.masterIP
文字列。Seesaw VM または VM ペアの VIP。次に例を示します。
loadBalancer: seesaw: masterIP: 172.16.20.21
loadBalancer.seesaw.cpus
整数。Seesaw VM の CPU 数。次に例を示します。
loadBalancer: seesaw: cpus: 8
loadBalancer.seesaw.memoryMB
整数。Seesaw VM のメモリのメガバイト数。次に例を示します。
loadBalancer: seesaw: memoryMB: 8192
loadBalancer.seesaw.vCenter.networkName
文字列。Seesaw VM を含むネットワークの名前。例:
loadBalancer: seesaw: vCenter: networkName: "my-seesaw-network"
loadBalancer.seesaw.enableHA
ブール値。高可用性の Seesaw ロードバランサを作成する場合は、これを true
に設定します。それ以外の場合は false
に設定します。次に例を示します。
loadBalancer: seesaw: enableHA: true
loadBalancer.seesaw.disableVRRPMAC
ブール値。この値を true
に設定すると、Seesaw 負荷バランサはフェイルオーバーに MAC ラーニングを使用しません。代わりに、Gratuitous ARP を使用します。この値を false
に設定すると、Seesaw ロードバランサは MAC ラーニングを使用します。これを true
に設定することをおすすめします。vSphere 7 以降を使用していて、高可用性の Seesaw ロードバランサを使用している場合は、これを true
に設定する必要があります。次に例を示します。
loadBalancer: seesaw: disableVRRPMAC: true
antiAffinityGroups.enabled
ブール値。DRS ルールの作成を有効にするには、この値を true
に設定します。それ以外の場合は false
に設定します。次に例を示します。
antiAffinityGroups: enabled: true
Anthos clusters on VMware は管理クラスタのノードに対して VMware Distributed Resource Scheduler(DRS)の反アフィニティ ルールを自動的に作成し、データセンター内の少なくとも 3 つの物理ホストにそれを分散させます。
この機能を使用するには、vSphere 環境が次の条件を満たしている必要があります。
VMware DRS が有効になっていること。VMware DRS には、vSphere Enterprise Plus ライセンス エディションが必要です。
vSphere ユーザー アカウントに
Host.Inventory.Modify cluster
権限があること。利用可能な物理ホストが少なくとも 3 つあること。
前述のとおり、vSphere スタンダード ライセンスがある場合、VMware DRS を有効にすることはできません。
DRS が有効になっていない場合や、vSphere VM をスケジュール設定できるホストが 3 つ以上ない場合は、antiAffinityGroups.enabled
を false
に設定します。
antiAffinityGroups.enabled
の値の更新
管理クラスタ構成ファイルの antiAffinityGroups.enabled
の値を変更した場合、次のコマンドを実行して構成を更新します。
gkectl update admin --kubeconfig ADMIN_KUBECONFIG --config ADMIN_CONFIG_FILE
以下を置き換えます。
ADMIN_KUBECONFIG
は、kubeconfig ファイルのパスで置き換えます。ファイルが現在のディレクトリにあり、名前がkubeconfig
の場合、このフラグを省略できます。ADMIN_CONFIG_FILE
は、管理クラスタ構成ファイルのパスで置き換えます。ファイルが現在のディレクトリにあり、名前がadmin-cluster.yaml
の場合、このフラグを省略できます。
connectivity
文字列。省略可。Google Cloud への接続性を指定します。接続性に使用できる値は「connected」のみです。次に例を示します。
connectivity: "connected"
proxy
ネットワークがプロキシ サーバーの背後にある場合は、このセクションに入力します。それ以外の場合は、このセクションを削除します。
proxy.url
文字列。プロキシ サーバーの HTTP アドレス。スキームのデフォルト ポートと同じ場合でも、ポート番号を含めます。次に例を示します。
proxy: url: "http://my-proxy.example.local:80"
ここで指定するプロキシ サーバーは、Anthos clusters on VMware クラスタで使用されます。また、管理ワークステーションで HTTPS_PROXY
環境変数を設定しない限り、管理ワークステーションはこの同じプロキシ サーバーを使用するように自動的に構成されます。
proxy.url
を指定する場合は、proxy.noProxy
も指定する必要があります。
管理クラスタのプロキシ構成を設定した後は、クラスタを再ビルドしない限り、構成の変更や削除はできません。
proxy.noProxy
文字列。プロキシ サーバーを経由しない IP アドレス、IP アドレス範囲、ホスト名、ドメイン名のカンマ区切りのリスト。Anthos clusters on VMware がこれらのアドレス、ホスト、ドメインのいずれかにリクエストを送信する場合、そのリクエストは直接送信されます。次に例を示します。
proxy: noProxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"
privateRegistry
非公開の Docker レジストリがある場合は、このセクションに入力します。それ以外の場合は、このセクションを削除します。privateregistry
セクションで選択した設定は、管理クラスタだけでなく、ユーザー クラスタにも反映されます。
privateRegistry.address
文字列。非公開の Docker レジストリを実行するマシンの IP アドレスまたは FQDN(完全修飾ドメイン名)。例:
privateRegistry: address: "203.0.113.10"
privateRegistry: address: "fqdn.example.com"
privateRegistry.credentials.fileRef.path
文字列。Anthos clusters on VMware が非公開 Docker レジストリへのアクセスに使用できるアカウントのユーザー名とパスワードを保持する認証情報構成ファイルのパス。次に例を示します。
privateRegistry: credentials: fileRef: path: "my-config-folder/admin-creds.yaml"
privateRegistry.credentials.fileRef.entry
文字列。非公開 Docker レジストリのアカウントのユーザー名とパスワードを保持する認証情報構成ファイルにある認証情報ブロックの名前。
privateRegistry: credentials: fileRef: entry: "private-registry-creds"
privateRegistry.caCertPath
文字列。Docker が非公開レジストリからイメージを pull する場合、レジストリは証明書を提示して自身の ID を証明する必要があります。レジストリの証明書は、認証局(CA)によって署名されます。Docker は、CA 証明書を使用してレジストリの証明書を検証します。
このフィールドを CA 証明書のパスに設定します。次に例を示します。
privateRegistry: caCertPath: "my-cert-folder/registry-ca.crt"
componentAccessServiceAccountKeyPath
文字列。コンポーネント アクセス サービス アカウントの JSON キーファイルのパス。次に例を示します。
componentAccessServiceAccountKeyPath: "my-key-folder/access-key.json"
stackdriver
このセクションでは、ログと指標の保存に使用するプロジェクトとサービス アカウントに関する情報について説明します。
stackdriver.projectID
文字列。ログを表示する Google Cloud プロジェクトのプロジェクト ID。次に例を示します。
stackdriver: projectID: "my-logs-project"
stackdriver.clusterLocation
文字列。ログを保存する Google Cloud リージョン。お使いのオンプレミス データセンターの近くのリージョンを選択することをおすすめします。次に例を示します。
stackdriver: clusterLocation: "us-central1"
stackdriver.enableVPC
ブール値。クラスタのネットワークが VPC によって管理されている場合は、このフィールドを true
に設定します。これにより、すべてのテレメトリーが Google の制限された IP アドレスを通過するようになります。それ以外の場合は、このフィールドに false
を設定します。例:
stackdriver: enableVPC: false
stackdriver.serviceAccountKeyPath
文字列。ロギング モニタリング サービス アカウントの JSON 鍵ファイルのパス。次に例を示します。
stackdriver: serviceAccountKeyPath: "my-key-folder/log-mon-key.json"
stackdriver.disableVsphereResourceMetrics
ブール値。これを true
に設定すると、vSphere からの指標の収集が無効になります。それ以外の場合は、false
に設定します。次に例を示します。
stackdriver: disableVsphereResourceMetrics: true
stackdriver.disableVsphereResourceMetrics
の値の更新
管理クラスタ構成ファイルの stackdriver.disableVsphereResourceMetrics
の値を変更した場合、このコマンドを実行して構成を更新します。
gkectl update admin --kubeconfig ADMIN_KUBECONFIG --config ADMIN_CONFIG_FILE
cloudAuditLogging
クラスタの Kubernetes API サーバーの監査ログを Cloud Audit Logs と統合する場合は、このセクションに入力します。それ以外の場合は、このセクションを削除します。
cloudAuditLogging.projectID
文字列。監査ログを表示する Google Cloud プロジェクトのプロジェクト ID。次に例を示します。
cloudAuditLogging: projectID: "my-audit-project"
cloudAuditLogging.clusterLocation
文字列。監査ログを保存する Google Cloud のリージョン。お使いのオンプレミス データセンターの近くのリージョンを選択することをおすすめします。例:
cloudAuditLogging: clusterLocation: "us-central1"
cloudAuditLogging.serviceAccountKeyPath
文字列。監査ログ サービス アカウントの JSON 鍵ファイルのパス。次に例を示します。
cloudAuditLogging: serviceAccountKeyPath: "my-key-folder/audit-log-key.json"
autoRepair.enabled
ブール値。ノードの自動修復を有効にするには、これを true
に設定します。それ以外の場合は false
に設定します。次に例を示します。
autoRepair: enabled: true
実行中のクラスタで autoRepair を有効または無効にする
管理クラスタの構成ファイルで autoRepair.enabled
の値を変更し、このコマンドを実行して変更をデプロイできます。
gkectl update admin --kubeconfig ADMIN_KUBECONFIG --config ADMIN_CONFIG_FILE