クラスタ リソース
必須
変更可
authentication
このセクションでは、OpenID Connect(OIDC)の使用に必要な設定について説明します。
OIDC では、既存の ID プロバイダを使用して、ベアメタル版 Anthos クラスタでのユーザーとグループの認証を管理できます。
クラスタ リソース
—
—
authentication.oidc.certificateAuthorityData
省略可。base64
でエンコードされた OIDC プロバイダの PEM エンコード証明書 。文字列を作成するには、ヘッダーを含めた証明書を base64
でエンコードします。結果の文字列は certificateAuthorityData
に 1 行で含めます。
例(サンプルはテーブルに合わせて折り返されています):
certificateAuthorityData:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC
...k1JSUN2RENDQWFT==
クラスタ リソース
任意
不変
authentication.oidc.clientID
省略可。文字列。OpenID プロバイダへの認証リクエストを行うクライアント アプリケーションの ID。
クラスタ リソース
任意
不変
authentication.oidc.clientSecret
省略可。文字列。OIDC クライアント アプリケーションと OIDC プロバイダ間の共有シークレット。
クラスタ リソース
任意
不変
authentication.oidc.deployCloudConsoleProxy
省略可。ブール値(true
|false
)。インターネット経由でアクセスできないオンプレミスの ID プロバイダに Google Cloud Console を接続するため、クラスタにリバース プロキシをデプロイするかどうかを指定します。ID プロバイダに公共のインターネット経由でアクセスできない場合は、このフィールドを true
に設定して Google Cloud Console で認証します。デフォルトでは false
に設定されます。
クラスタ リソース
任意
不変
省略可。カンマ区切りのリスト。OpenID プロバイダに送信する追加の Key-Value パラメータ。
クラスタ リソース
任意
不変
authentication.oidc.groupPrefix
省略可。文字列。既存の名前と競合しないように、グループ クレームの先頭に付加される接頭辞。たとえば、グループ dev
と接頭辞 oidc:
が指定されている場合、oidc:dev
となります。
クラスタ リソース
任意
不変
authentication.oidc.group
省略可。文字列。
プロバイダがセキュリティ グループを返すために使用する JWT クレーム。
クラスタ リソース
任意
不変
authentication.oidc.issuerURL
省略可。URL 文字列。認可リクエストが OpenID に送信される URL(https://example.com/adfs
など)。Kubernetes API サーバーは、この URL を使用してトークン検証用の公開鍵を検出します。URL は HTTPS を使用する必要があります。
クラスタ リソース
任意
不変
authentication.oidc.kubectlRedirectURL
省略可。URL 文字列。kubectl
が認証に使用するリダイレクト URL。OIDC を有効にする場合は、kubectlRedirectURL
値を指定する必要があります。
クラスタ リソース
任意
不変
authentication.oidc.proxy
省略可。URL 文字列。クラスタが OIDC プロバイダに接続するために使用するプロキシ サーバー(該当する場合)。この値には、ホスト名 / IP アドレスと、必要に応じてポート、ユーザー名、パスワードを含める必要があります。例: http://user:password@10.10.10.10:8888
。
クラスタ リソース
任意
不変
authentication.oidc.scopes
省略可。カンマ区切りのリスト。OpenID プロバイダに送信する追加のスコープ。Microsoft Azure と Okta には offline_access
スコープが必要です。
クラスタ リソース
任意
不変
authentication.oidc.usernamePrefix
省略可。文字列。ユーザー名のクレームの先頭に付加される接頭辞。
クラスタ リソース
任意
不変
authentication.oidc.username
省略可。文字列。
ユーザー名として使用する JWT クレーム。指定しない場合、デフォルトで sub
になります。
クラスタ リソース
任意
不変
bypassPreflightCheck
省略可。ブール値(true
|false
)。true
に設定すると、既存のクラスタにリソースを適用するときに内部プリフライト チェックが無視されます。デフォルトは false
です。
変更可否: 既存クラスタのこの値は、bmctl update
コマンドで変更できます。
クラスタ リソース
任意
変更可
clusterNetwork
このセクションには、クラスタのネットワーク設定が含まれます。
クラスタ リソース
—
—
clusterNetwork.advancedNetworking
ブール値。高度なネットワーク機能(BGP とバンドルされたロード バランシングや下り(外向き)NAT ゲートウェイなど)を有効にするには、このフィールドを true
に設定します。どちらの機能も Anthos Network Gateway を使用します。Anthos Network Gateway は、Anthos と Google Kubernetes Engine(GKE)で高度なネットワーク機能を実現するための重要な要素です。Anthos Network Gateway の主なメリットの 1 つは、NetworkGatewayGroup カスタム リソースで指定した一連のアドレスから、フローティング IP アドレスを動的に割り当てることができることです。
Anthos ネットワーク ゲートウェイと、それに関連する高度なネットワーク機能の詳細については、下り(外向き)NAT ゲートウェイを構成する と BGP を使用してバンドルされたロードバランサを構成する をご覧ください。
クラスタ リソース
任意
不変
clusterNetwork.flatIPv4
ブール値。フラットモードのクラスタ ネットワーク モデルを有効にするには、このフィールドを true
に設定します。フラットモードでは、各 Pod のそれぞれに一意の IP アドレスがあります。Pod は、中間ゲートウェイやネットワーク アドレス変換(NAT)を必要とせず、互いに直接通信できます。flatIPv4
のデフォルトは、false
です。フラットモードは、クラスタの作成時にのみ有効にできます。クラスタでフラットモードを有効にすると、無効にはできません。クラスタの作成時に、クラスタ構成で指定された Pod CIDR がデフォルトの「ClusterCIDRConfig」カスタム リソースに変換され、クラスタ全体の Pod CIDR として使用されます。
クラスタ リソース
任意
不変
clusterNetwork.multipleNetworkInterfaces
省略可。ブール値。Pod の複数のネットワーク インターフェースを有効にするには、このフィールドを true
に設定します。
複数のネットワーク インターフェースの設定と使用方法の詳細については、Pod 用の複数のネットワーク インターフェースの構成 プレビュー ドキュメントをご覧ください。
クラスタ リソース
任意
不変
clusterNetwork.pods.cidrBlocks
必須。IPv4 アドレスの範囲(CIDR ブロック形式)。pods には、Pod ネットワークが割り振られる IP 範囲を指定します。
次のような例になります。
pods:
cidrBlocks:
- 192.168.0.0/16
クラスタ リソース
必須
不変
clusterNetwork.sriovOperator
省略可。ブール値。クラスタで SR-IOV ネットワークを有効にするには、このフィールドを true
に設定します。
SR-IOV ネットワークの構成と使用方法については、SR-IOV ネットワークの設定 のドキュメントをご覧ください。
クラスタ リソース
任意
変更可
clusterNetwork.services.cidrBlocks
必須。IPv4 アドレスの範囲(CIDR ブロック形式)。Service の仮想 IP(VIP)アドレスが割り振られる IP アドレスの範囲を指定します。この範囲は、ネットワークから到達可能なサブネットと重複してはなりません。プライベート インターネットのアドレスの割り振りについては、RFC 1918 をご覧ください。
次のような例になります。
services:
cidrBlocks:
- 10.96.0.0/12
クラスタ リソース
必須
不変
clusterOperations
このセクションでは、Cloud Logging と Cloud Monitoring の情報について説明します。
クラスタ リソース
—
—
clusterOperations.enableApplication
ブール値。true
に設定して、Kubernetes コントロール プレーンやクラスタ管理エージェントなどのシステム コンポーネントに対応するシステムログ/指標のコレクションに加えて、アプリケーション ログ/指標を収集します。この値は、いつでも変更できます。
クラスタ リソース
任意
変更可
clusterOperations.disableCloudAuditLogging
ブール値。Cloud Audit Logs は、不審な API リクエストの調査や統計情報の収集を行う際に有効です。Cloud Audit Logs は、デフォルトで有効(disableCloudAuditLogging: false
)になっています。Cloud Audit Logs を無効にするには、true
に設定します。
詳細については、監査ロギングの使用 をご覧ください。
クラスタ リソース
任意
変更可
clusterOperations.location
文字列。Logging のログと Monitoring の指標を保存する Google Cloud リージョン。オンプレミスのデータセンターに近いリージョンを選択することをおすすめします。詳細については、グローバル ロケーション をご覧ください。
次のような例になります。
location: us-central1
クラスタ リソース
必須
不変
clusterOperations.projectID
文字列。ログと指標を表示する Google Cloud プロジェクトのプロジェクト ID。
クラスタ リソース
必須
不変
controlPlane
このセクションには、コントロール プレーンとそのコンポーネントに関する情報が含まれます。
クラスタ リソース
—
—
controlPlane.nodePoolSpec
このセクションでは、コントロール プレーンとそのコンポーネントで使用されるノードプールの IP アドレスを指定します。コントロール プレーンのノードプールの仕様(ロードバランサ ノードプールの仕様 など)は特別なものです。この仕様では、重要なクラスタ リソースを宣言し、制御します。このリソースの正規ソースは、クラスタ構成ファイル内のこのセクションです。最上位のコントロール プレーン ノードプール リソースを直接変更しないでください。代わりに、クラスタ構成ファイル内の関連するセクションを変更してください。
クラスタ リソース
—
—
controlPlane.nodePoolSpec.nodes
必須。IP アドレスの配列。通常、この配列は 1 台のマシンの IP アドレスか、高可用性(HA)デプロイメント用の 3 台のマシンの IP アドレスです。
次のような例になります。
controlPlane:
nodePoolSpec:
nodes:
- address: 192.168.1.212
- address: 192.168.1.213
- address: 192.168.1.214
このフィールドは、クラスタを更新またはアップグレードするたびに変更できます。
クラスタ リソース
必須
変更可
gkeConnect
このセクションでは、クラスタを Google Cloud に接続するために使用する Google Cloud プロジェクトに関する情報について説明します。
クラスタ リソース
—
—
gkeConnect.projectID
必須: 文字列。クラスタを Google Cloud に接続するために使用する Google Cloud プロジェクトの ID。
次のような例になります。
spec:
...
gkeConnect:
projectID: "my-connect-project-123"
既存のクラスタでは、この値は変更できません。
クラスタ リソース
必須
不変
kubevirt.useEmulation
ブール値。仮想マシンの実行にソフトウェア エミュレーションを使用するかどうかを指定します。ノードがハードウェア仮想化をサポートしている場合は、パフォーマンスを向上させるために useEmulation
を false
に設定します。ハードウェア仮想化がサポートされていない、またはサポートされているかどうか不明な場合は、true
に設定します。
この項目は使用されなくなりました。useEmulation
の設定やその他の VM 設定は、VMRuntime
カスタム リソースで構成されます。詳細については、Anthos VM ランタイムを有効にする をご覧ください。
クラスタ リソース
任意
変更可
loadBalancer
このセクションでは、クラスタ ロード バランシングの設定について説明します。
クラスタ リソース
—
—
loadBalancer.addressPools
オブジェクト。クラスタ ロードバランサ プールの名前と IP アドレスの配列。アドレスプールの構成は、非管理クラスタの bundled
LB モードでのみ有効です。新しいアドレスプールはいつでも追加できますが、既存のアドレスプールの変更や削除はできません。
クラスタ リソース
任意
不変
loadBalancer.addressPools.addresses
IP アドレス範囲の配列。データプレーン ロードバランサの重複しない IP 範囲のリストを指定します。すべてのアドレスが、ロードバランサ ノードと同じサブネット内になくてはなりません。
次のような例になります。
addressPools:
- name: pool1
addresses:
- 192.168.1.0-192.168.1.4
- 192.168.1.240/28
クラスタ リソース
任意
不変
loadBalancer.addressPools.name
文字列。クラスタ ロードバランサ プールに付ける名前。
クラスタ リソース
必須
不変
loadBalancer.addressPools.avoidBuggyIPs
省略可。ブール値(true
| false
)。true
の場合、.0
と .255
で終わる IP アドレスは除外されます。一部のネットワーク ハードウェアは、これらの特別なアドレスへのトラフィックをドロップします。このフィールドは省略できます。デフォルト値は false
です。
クラスタ リソース
任意
不変
loadBalancer.addressPools.manualAssign
省略可。ブール値(true
| false
)。true
の場合、このプール内のアドレスは Kubernetes Services に自動的に割り当てられません。true
の場合、このプール内の IP アドレスは、サービスによって明示的に指定された場合にのみ使用されます。このフィールドは省略できます。デフォルト値は false
です。
クラスタ リソース
任意
変更可
loadBalancer.mode
必須。文字列。負荷分散モードを指定します。bundled
モードでは、ベアメタル版 Anthos クラスタがクラスタ作成中にロードバランサ ノードにロードバランサをインストールします。manual
モードでは、クラスタは手動で構成された外部ロードバランサに依存します。詳細については、ロードバランサの概要 をご覧ください。
使用できる値: bundled
| manual
クラスタ リソース
必須
不変
loadBalancer.type
省略可。文字列。使用するバンドル負荷分散のタイプ、レイヤ 2 または境界ゲートウェイ プロトコル(BGP)を指定します。標準のバンドル型ロード バランシング を使用している場合は、type
を layer2
に設定します。BGP によるバンドル型ロード バランシング を使用している場合は、type
を bgp
に設定します。type
を設定しない場合、デフォルトで layer2
になります。
使用できる値: layer2
| bgp
クラスタ リソース
任意
不変
loadBalancer.nodePoolSpec
省略可。このセクションは、ロードバランサのノードプールを構成するために使用します。指定するノードは Kubernetes クラスタの一部であり、通常のワークロードとロードバランサを実行します。ノードプールを指定しない場合は、コントロール プレーン ノードがロード バランシングに使用されます。このセクションは、ロード バランシング モードが bundled
に設定されている場合にのみ適用されます。
クラスタ リソース
—
—
loadBalancer.nodePoolSpec.nodes
このセクションには、ロードバランサ ノードプール内のノードの IP アドレスの配列が含まれます。
クラスタ リソース
任意
変更可
loadBalancer.nodePoolSpec.nodes.address
省略可。文字列(IPv4 アドレス)。ノードの IP アドレス。
クラスタ リソース
任意
変更可
loadBalancer.ports.controlPlaneLBPort
番号。Kubernetes コントロール プレーン(Kubernetes API サーバー)に送信されるトラフィックに使用される宛先ポート。
クラスタ リソース
必須
不変
クラスタ リソース
必須
不変
loadBalancer.vips.ingressVIP
省略可。文字列(IPv4 アドレス)。上り(内向き)トラフィックのロードバランサに構成するよう選択した IP アドレス。
クラスタ リソース
任意
不変
loadBalancer.localASN
省略可。文字列。作成するクラスタの自律システム番号(ASN)を指定します。このフィールドは、境界ゲートウェイ プロトコル(BGP)を使用するバンドル型ロード バランシング ソリューションを設定するときに使用されます。詳細については、BGP を使用してバンドルされたロードバランサを構成する をご覧ください。
クラスタ リソース
任意
変更可
loadBalancer.bgpPeers
省略可。オブジェクト(マッピングのリスト)。このセクションでは、(クラスタの外部にある)ローカル ネットワークから 1 つ以上の Border Gateway Protocol(BGP)ピアを指定します。BGP ピアは、BGP を使用するバンドル型ロード バランシング ソリューションのコントロール プレーンのロード バランシング部分を設定するときに指定します。各ピアは、IP アドレス、自律システム番号(ASN)、および必要に応じてコントロール プレーン ノードの 1 つ以上の IP アドレスのリストで構成されるマッピングで指定されます。コントロール プレーン ロード バランシングの BGP ピアリング構成は、クラスタの作成後に更新できません。
次のような例になります。
loadBalancer:
mode: bundled
type: bgp
localASN: 65001
bgpPeers:
- ip: 10.0.1.254
asn: 65002
controlPlaneNodes:
- 10.0.1.10
- 10.0.1.11
- ip: 10.0.2.254
asn: 65002
controlPlaneNodes:
- 10.0.2.10
詳細については、BGP を使用してバンドルされたロードバランサを構成する をご覧ください。
クラスタ リソース
任意
変更可
クラスタ リソース
任意
変更可
loadBalancer.bgpPeers.asn
省略可。文字列。外部ピアデバイスを含むネットワークの自律システム番号(ASN)。BGP を使用するバンドル型ロード バランシング ソリューションを設定するときに、コントロール プレーン ロード バランシング用に設定したすべての BGP ピアに ASN を指定します。詳細については、BGP を使用してバンドルされたロードバランサを構成する をご覧ください。
クラスタ リソース
任意
変更可
loadBalancer.bgpPeers.controlPlaneNodes
省略可。IP(IPv4)アドレスの配列。BGP を使用するバンドル型ロード バランシング ソリューションを設定するときに、外部 BGP ピアに接続するコントロール プレーン ノードの IP アドレス。コントロール プレーン ノードを指定しない場合、すべてのコントロール プレーン ノードが外部ピアに接続します。1 つ以上の IP アドレスを指定すると、指定したノードのみがピアリング セッションに参加します。詳細については、BGP を使用してバンドルされたロードバランサを構成する をご覧ください。
クラスタ リソース
任意
変更可
maintenanceBlocks.cidrBlocks
省略可。単一の IPv4 アドレスまたは IPv4 アドレスの範囲。メンテナンス モードにするノードマシンの IP アドレスを指定します。詳細については、ノードをメンテナンス モードにする をご覧ください。
次のような例になります。
maintenanceBlocks:
cidrBlocks:
- 192.168.1.200 # Single machine
- 192.168.1.100-192.168.1.109 # Ten machines
クラスタ リソース
任意
変更可
nodeAccess.loginUser
省略可。文字列。クラスタ内のノードマシンへのパスワードなしの SUDO 機能アクセスに使用する root 以外のユーザー名を指定します。SSH 認証鍵 sshPrivateKeyPath
は、指定したユーザーに対して機能する必要があります。クラスタの作成および更新オペレーションでは、指定されたユーザーと SSH 認証鍵を使用してノードマシンにアクセスできることを確認します。
クラスタ リソース
任意
変更可
osEnvironmentConfig.addPackageRepo
省略可。ブール値(true
|false
)。ベアメタル マシンの初期化時にパッケージ リポジトリを追加するかどうかを指定します。
クラスタ リソース
任意
不変
nodeConfig.containerRuntime
省略可。文字列。ノード上でのコンテナのスケジューリングに使用するコンテナ ランタイム(docker
または containerd
)を指定します。コンテナ ランタイムを指定しない場合、デフォルトで docker
が使用されます。コンテナ ランタイムの設定の詳細については、コンテナ ランタイムの変更 をご覧ください。
使用できる値: containerd
| docker
クラスタ リソース
省略可
変更可(アップグレードのみ)
nodeConfig.podDensity
このセクションでは、Pod の密度の構成を指定します。
クラスタ リソース
—
—
nodeConfig.podDensity.maxPodsPerNode
省略可。整数。単一ノードで実行できる Pod の最大数を指定します。セルフマネージド クラスタの場合、maxPodsPerNode
で使用できる値は、高可用性(HA)クラスタの場合は 32
~250
、HA 以外のクラスタの場合は 64
~250
です。ユーザー クラスタの場合、maxPodsPerNode
で使用できる値は 32
~250
です。指定しない場合のデフォルト値は 110
です。クラスタが作成されたら、この値を更新することはできません。
Kubernetes は、各 Pod に一意の IP アドレスが指定されるように、クラスレス ドメイン間ルーティング(CIDR)ブロック を各ノードに割り当てます。CIDR ブロックのサイズは、ノードあたりの最大 Pod 数に対応します。
ノードあたりの最大ポッド数の設定の詳細については、ポッド ネットワーキング をご覧ください。
クラスタ リソース
任意
不変
profile
省略可。文字列。スタンドアロン クラスタの profile
が edge
に設定されている場合、クラスタのリソース消費は最小限に抑えられます。Edge プロファイルはスタンドアロン クラスタでのみ使用できます。Edge プロファイルはシステム リソースの要件が軽減されているため、リソースの制約が厳しい Edge デバイスにおすすめします。Edge プロファイルに関連するハードウェア要件については、Edge プロファイルを使用するスタンドアロン クラスタのリソース要件 をご覧ください。
クラスタ リソース
任意
不変
proxy
ネットワークがプロキシ サーバーの背後にある場合は、このセクションに入力します。
それ以外の場合は、このセクションを削除します。
クラスタ リソース
—
—
proxy.noProxy
文字列。プロキシ サーバーを経由しない IP アドレス、IP アドレス範囲、ホスト名、ドメイン名のカンマ区切りのリスト。ベアメタル版 Anthos クラスタが、これらのアドレス、ホスト、ドメインのいずれかにリクエストを送信する場合、そのリクエストは直接送信されます。
クラスタ リソース
任意
不変
proxy.url
文字列。プロキシ サーバーの HTTP アドレス。スキームのデフォルト ポートと同じ場合でも、ポート番号を含めます。
次のような例になります。
proxy:
url: "http://my-proxy.example.local:80"
noProxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"
クラスタ リソース
任意
不変
clusterSecurity
このセクションでは、クラスタのセキュリティ関連の設定を指定します。
クラスタ リソース
—
—
clusterSecurity.enableSeccomp
(プレビュー )
省略可。ブール値(true
|false
)。クラスタ全体の「seccomp」を有効または無効にします。このフィールドを無効にすると、クラスタ構成ファイルに「seccomp」プロファイルのないコンテナが未制限で実行されます。このフィールドを有効にすると、同じコンテナがコンテナ ランタイムのデフォルトの「seccomp」プロファイルを使用して保護されます。この機能はデフォルトで有効になっています。クラスタの作成後、このフィールドを切り替えることができるのはアップグレード中のみです。詳細については、seccomp
を使用してコンテナを制限する をご覧ください。
クラスタ リソース
省略可
変更可(アップグレードのみ)
clusterSecurity.enableRootlessContainers
省略可。ブール値(true
|false
)。ルートレス ベアメタル システム コンテナを有効または無効にします。このフィールドが有効になっている場合、ベアメタル システム コンテナは、2000~5000 の範囲のユーザー ID を持つ root 以外のユーザーとして実行されます。無効にすると、root ユーザーとしてベアメタル システム コンテナが実行されます。この機能はデフォルトで有効になっています。root ユーザーとしてコンテナを実行すると、セキュリティ リスクが生じるため、この機能をオフにしないことを強くおすすめします。クラスタの作成後、このフィールドを切り替えることができるのはアップグレード中のみです。詳細については、コンテナを root ユーザーとして実行しない をご覧ください。
クラスタ リソース
省略可
変更可(アップグレードのみ)
clusterSecurity.authorization
省略可。認可により、クラスタへのユーザー アクセスが構成されます。
クラスタ リソース
—
—
clusterSecurity.authorization.clusterAdmin
省略可。このクラスタのクラスタ管理者を指定します。
クラスタ リソース
—
—
clusterSecurity.authorization.clusterAdmin.gcpAccounts
省略可。GCPAccounts
フィールドには、Google Cloud からワークロードを管理できるアカウントのリストを指定します。このフィールドには、アカウント名のカンマ区切りのリストを文字列として指定します。ユーザー アカウントとサービス アカウントがサポートされています。このフィールドは、ワークロードを実行できるクラスタにのみ適用されます。たとえば、管理クラスタに GCPAccounts
を指定することはできません。
クラスタ リソース
任意
変更可
storage.lvpNodeMounts.path
必須。文字列。path
フィールドは、マウントされたディスクを検出できるホストマシンのパスを指定するために使用します。それぞれのマウントに対してローカル PersistentVolume(PV)が作成されます。デフォルトのパスは /mnt/localpv-share
です。ノードマウントを構成する手順については、LVP ノードマウントの構成 をご覧ください。
クラスタ リソース
必須
不変
storage.lvpNodeMounts
このセクションでは、マウントされたディスクで使用するローカル永続ボリュームの構成(パス)を指定します。これらのディスクは、自身でフォーマットしてマウントする必要があります。このタスクは、クラスタの作成前でも作成後でも行えます。詳細については、LVP ノードのマウント をご覧ください。
クラスタ リソース
必須
不変
storage.lvpShare
このセクションでは、共有ファイル システムのサブディレクトリで使用するローカル永続ボリュームの構成を指定します。これらのサブディレクトリは、クラスタの作成時に自動的に作成されます。
詳細については、LVP 共有 をご覧ください。
クラスタ リソース
必須
不変
storage.lvpShare.path
必須。文字列。path
フィールドは、サブディレクトリを作成できるホストマシンのパスを指定するために使用します。サブディレクトリごとにローカル PersistentVolume(PV)が作成されます。LVP 共有を構成する手順については、LVP 共有の構成 をご覧ください。
クラスタ リソース
必須
不変
storage.lvpShare.numPVUnderSharedPath
必須。文字列。lvpShare.path
内に作成するサブディレクトリの数を指定します。デフォルト値は 5
です。LVP 共有を構成する手順については、LVP 共有の構成 をご覧ください。
クラスタ リソース
必須
不変
storage.lvpShare.storageClassName
必須。文字列。永続ボリュームの作成に使用する StorageClass を指定します。StorageClass はクラスタの作成時に作成されます。デフォルト値は local-shared
です。LVP 共有を構成する手順については、LVP 共有の構成 をご覧ください。
クラスタ リソース
任意
不変
type
必須。文字列。クラスタのタイプを指定します。標準デプロイモデルは、単一の管理クラスタと、管理クラスタが管理する 1 つ以上のユーザー クラスタで構成されます。ベアメタル版 Anthos クラスタは、次のタイプのクラスタをサポートしています。
管理 - ユーザー クラスタの管理に使用されるクラスタ
ユーザー - ワークロードの実行に使用されるクラスタ。
ハイブリッド - 管理とワークロード両方のための単一クラスタで、ユーザー クラスタを管理することも可能
スタンドアロン - 自身を管理でき、ワークロードを実行できるが、他のユーザー クラスタの作成または管理はできない単一クラスタ。
クラスタタイプはクラスタの作成時に指定され、更新やアップグレードのために変更できません。クラスタの作成方法については、クラスタの作成: 概要 をご覧ください。
使用できる値: admin
| user
| hybrid
| standalone
既存のクラスタでは、この値は変更できません。
クラスタ リソース
必須
不変
name
必須。文字列。通常、名前空間名は cluster-CLUSTER_NAME
のパターンを使用しますが、ベアメタル リリース 1.7.2 版 Anthos クラスタでは cluster-
接頭辞は厳密に必要ありません。
既存のクラスタでは、この値は変更できません。
名前空間リソース
必須
不変
clusterName
文字列。必須。ノードプールを追加するクラスタの名前。関連付けられたクラスタと同じ名前空間にノードプール リソースを作成し、このフィールドでクラスタ名を参照します。詳細については、クラスタ内のノードプールの追加と削除 をご覧ください。
次のような例になります。
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: node-pool-new
namespace: cluster-my-cluster
spec:
clusterName: my-cluster
nodes:
- address: 10.200.0.10
- address: 10.200.0.11
- address: 10.200.0.12
NodePool リソース
必須
不変
nodes
省略可。IP(IPv4)アドレスの配列。これにより、ワーカーノードのノードプールが定義されます。
NodePool リソース
任意
変更可
nodes.address
省略可。文字列(IPv4 アドレス)。ワーカーノードのプールを構成するノードの 1 つ以上の IP アドレス。
NodePool リソース
任意
変更可
taints
省略可。オブジェクト。ノード taint を使用してノードをマークすると、スケジューラは特定の Pod でのそのノードの使用を回避または禁止します。taint は、Key-Value ペアと関連付けられた効果で構成されます。key
と value
の値は taint を識別するために使用する文字列であり、effect
の値はノードに対する Pod の処理方法を指定します。taints
オブジェクトには複数の taint を含めることができます。
effect
ラベルには、次のいずれかの値が設定されます。
NoSchedule
- 一致する容認機能を持たない Pod はノードにスケジュールできません。
PreferNoSchedule
- ノードへの taint を容認しない Pod の配置は回避されますが、必須ではありません。
NoExecute
- taint を容認しないポッドは直ちに強制排除され、taint を容認するポッドは強制排除されません。
ベアメタル版 Anthos クラスタの場合、baremetal.cluster.gke.io/label-taint-no-sync
アノテーションがクラスタに適用されていない限り、taint はノードプールのノードに整合されます。taint の詳細については、taint と容認 をご覧ください。
次のような例になります。
taints:
- key: status
value: testpool
effect: NoSchedule
NodePool リソース
任意
変更可
labels
省略可。マッピング(Key-Value ペア)。baremetal.cluster.gke.io/label-taint-no-sync
アノテーションがクラスタに適用されていない限り、ラベルはノードプールのノードに対して整合されます。ラベルの詳細については、ラベルとセレクタ をご覧ください。
NodePool リソース
任意
変更可
registryMirrors
省略可。このセクションを使用して、Container Registry(gcr.io
)の代わりにクラスタのインストールに使用するレジストリ ミラーを指定します。レジストリ ミラーの使用の詳細については、レジストリ ミラーを使用したベアメタル版 Anthos クラスタのインストール をご覧ください。
便宜上、bmctl
は、クラスタ仕様外の registryMirrors
フィールド(認証情報 Key-Value ペアなど)を受け入れます。例については、レジストリ ミラーの設定手順 をご覧ください。
次のような例になります。
registryMirrors:
- endpoint: https://172.18.0.20:5000
caCertPath: /root/ca.crt
pullCredentialConfigPath: /root/.docker/config.json
hosts:
- somehost.io
- otherhost.io
レジストリ ミラー
省略可
変更可
registryMirrors.endpoint
文字列。ミラーのエンドポイント。レジストリ サーバーの IP アドレスとポート番号で構成されます。必要に応じて、レジストリ サーバーで、ルート名前空間ではなく独自の名前空間を使用できます。名前空間を使用しない場合、エンドポイントの形式は REGISTRY_IP :PORT
です。名前空間を使用する場合、エンドポイントの形式は REGISTRY_IP :PORT /v2/NAMESPACE
です。名前空間を指定するときは、/v2
が必要です。
レジストリ ミラーを指定する場合、endpoint
フィールドは必須です。複数のミラー / エンドポイントを指定できます。
次のような例になります。
- endpoint: https://172.18.0.20:5000/v2/test-namespace
レジストリ ミラー
省略可
変更可
registryMirrors.caCertPath
省略可。文字列。CA 証明書ファイルのパス(レジストリ サーバーがプライベート TLS 証明書を使用している場合)。ローカル レジストリでプライベート TLS 証明書が不要な場合、このフィールドは省略できます。
レジストリ ミラー
省略可
変更可
registryMirrors.pullCredentialConfigPath
省略可。文字列。Docker CLI 構成ファイル (config.json
)へのパス。Docker では、認証設定が構成ファイルに保存されます。このフィールドはレジストリ ミラーの使用にのみ適用されます。レジストリ サーバーで認証に Docker 構成ファイルが必要ない場合は、このフィールドを省略できます。
次のような例になります。
registryMirrors:
- endpoint: https://172.18.0.20:5000
caCertPath: /root/ca.crt
pullCredentialConfigPath: /root/.docker/config.json
レジストリ ミラー
省略可
変更可
registryMirrors.hosts
省略できます。特定のレジストリ ミラー(endpoint
)でローカルにミラーリングされたホストのドメイン名の配列。コンテナ ランタイムは、指定されたホストからのイメージの pull リクエストを検出すると、まずローカル レジストリ ミラーを確認します。詳細については、レジストリ ミラーからクラスタを作成する をご覧ください。
次のような例になります。
registryMirrors:
- endpoint: https://172.18.0.20:5000
caCertPath: /root/ca.crt
pullCredentialConfigPath: /root/.docker/config.json
hosts:
- somehost.io
- otherhost.io
レジストリ ミラー
省略可
変更可
認証情報
ベアメタル版 Anthos クラスタの bmctl
によって生成されるクラスタ構成ファイルには、ローカル ファイル システム内の認証情報と鍵ファイルへのパスを指定するためのフィールドが含まれています。クラスタを相互に、および Google Cloud プロジェクトに接続するために必要な認証情報と鍵。
これらの Key-Value ペア フィールドは、Kubernetes クラスタのカスタム リソースの有効な要素ではありません。この形式は bmctl
でのみ認識され、標準の Kubernetes ツールでは認識されません。kubectl
を使用してクラスタに変更を適用する場合は、認証情報と鍵フィールドを削除します。
次のような例になります。
gcrKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-gcr.json
sshPrivateKeyPath: /home/root-user/.ssh/id_rsa
gkeConnectAgentServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-connect.json
gkeConnectRegisterServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-register.json
cloudOperationsServiceAccountKeyPath: bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-cloud-ops.json
認証情報
—
—
gcrKeyPath
文字列。Container Registry サービス アカウント キーへのパス。Container Registry サービス アカウント は、Google Cloud サービスを操作するときに Container Registry の代理として動作する Google マネージド サービス アカウントです。
認証情報
任意
変更可
sshPrivateKeyPath
文字列。SSH 秘密鍵へのパス。Node へのアクセスには SSH が必要です。
認証情報
任意
変更可
gkeConnectAgentServiceAccountKeyPath
文字列。エージェントのサービス アカウント キーへのパス。
ベアメタル版 Anthos クラスタは、このサービス アカウントを使用して、ベアメタル版 Anthos クラスタと Google Cloud の間の接続を維持します。
このサービス アカウントを構成する手順については、Connect で使用するサービス アカウントの構成 をご覧ください。
認証情報
任意
変更可
gkeConnectRegisterServiceAccountKeyPath
文字列。登録サービス アカウント キーのパス。
ベアメタル版 Anthos クラスタは、このサービス アカウントを使用してユーザー クラスタを Google Cloud に登録します。
このサービス アカウントを構成する手順については、Connect で使用するサービス アカウントの構成 をご覧ください。
認証情報
任意
変更可
cloudOperationsServiceAccountKeyPath
文字列。オペレーション サービス アカウント キーへのパス。
ベアメタル版 Anthos クラスタは、オペレーション サービス アカウントを使用して、Google Cloud のオペレーション スイートで認証を行い、Logging API と Monitoring API にアクセスします。
このサービス アカウントを構成する手順については、Logging と Monitoring で使用するサービス アカウントの構成 をご覧ください。
認証情報
任意
変更可
ipv4
IPv4 CIDR 範囲の構成を定義します。ClusterCidrConfig
リソースには、ipv4
フィールドまたは ipv6
フィールドのうち少なくとも 1 つを指定する必要があります。
ClusterCIDRConfig リソース
省略可
不変
ipv4.cidr
文字列。IPv4 ノードの CIDR ブロックを設定します。ノードに設定できるのは、各ファミリーの 1 つの範囲のみです。この CIDR ブロックは、Cluster
リソースに記載されている Pod CIDR と一致する必要があります。
次のような例になります。
ipv4:
cidr: "10.1.0.0/16"
ClusterCIDRConfig リソース
必須
変更不可
ipv4.perNodeMaskSize
データ型は int です。ノードの IPv4 CIDR ブロックのマスクサイズを定義します。たとえば、値 24
はネットマスク /24
に変換されます。ノードの CIDR ブロック ネットマスクが、kubelet がスケジュール設定できる Pod の最大量より多いことを確認します。これは、kubelet の --max-pods
フラグで定義されています。
ClusterCIDRConfig リソース
必須
変更不可
ipv6
IPv6 CIDR 範囲の構成を定義します。ClusterCidrConfig
リソースには、ipv4
フィールドまたは ipv6
フィールドのうち少なくとも 1 つを指定する必要があります。
ClusterCIDRConfig リソース
省略可
不変
ipv6.cidr
文字列。IPv6 ノードの CIDR ブロックを設定します。ノードに設定できるのは、各ファミリーの 1 つの範囲のみです。
次のような例になります。
ipv6:
cidr: "2620:0:1000:2631:3:10:3:0/112"
ClusterCIDRConfig リソース
必須
変更不可
ipv6.perNodeMaskSize
データ型は int です。ノードの IPv6 CIDR ブロックのマスクサイズを定義します。たとえば、値 120
はネットマスク /120
に変換されます。ノードの CIDR ブロック ネットマスクが、kubelet がスケジュール設定できる Pod の最大量より多いことを確認します。これは、kubelet の --max-pods
フラグで定義されています。
ClusterCIDRConfig リソース
必須
変更不可
nodeSelector.matchLabels
CIDR 構成を適用するノードを定義します。空のノードセレクタは、すべてのノードに適用されるデフォルトとして機能します。
次のような例になります。
nodeSelector:
matchLabels:
baremetal.cluster.gke.io/node-pool: "workers"
ClusterCIDRConfig リソース
省略可
変更可