REST Resource: projects.locations.azureClusters

資源:AzureCluster

在 Azure 上執行的 Anthos 叢集。

JSON 表示法
{
  "name": string,
  "description": string,
  "azureRegion": string,
  "resourceGroupId": string,
  "azureClient": string,
  "networking": {
    object (AzureClusterNetworking)
  },
  "controlPlane": {
    object (AzureControlPlane)
  },
  "authorization": {
    object (AzureAuthorization)
  },
  "azureServicesAuthentication": {
    object (AzureServicesAuthentication)
  },
  "state": enum (State),
  "endpoint": string,
  "uid": string,
  "reconciling": boolean,
  "createTime": string,
  "updateTime": string,
  "etag": string,
  "annotations": {
    string: string,
    ...
  },
  "workloadIdentityConfig": {
    object (WorkloadIdentityConfig)
  },
  "clusterCaCertificate": string,
  "fleet": {
    object (Fleet)
  },
  "managedResources": {
    object (AzureClusterResources)
  },
  "loggingConfig": {
    object (LoggingConfig)
  },
  "errors": [
    {
      object (AzureClusterError)
    }
  ],
  "monitoringConfig": {
    object (MonitoringConfig)
  }
}
欄位
name

string

這個資源的名稱。

叢集名稱的格式為 projects/<project-number>/locations/<region>/azureClusters/<cluster-id>

如要進一步瞭解 Google Cloud Platform 資源名稱,請參閱「資源名稱」。

description

string

(選用步驟) 這個叢集的說明 (使用者可理解)。長度不得超過 255 個 UTF-8 編碼位元組。

azureRegion

string

這是必要旗標,叢集執行的 Azure 區域。

每個 Google Cloud 區域都支援一部分鄰近的 Azure 區域。您可以呼叫 locations.getAzureServerConfig,列出指定 Google Cloud 區域內的所有支援 Azure 區域。

resourceGroupId

string

這是必要旗標,叢集資源部署所在的資源群組 ARM ID。例如:/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>

azureClient

string

(選用步驟) AzureClient 的名稱,其中包含 Anthos Multi-Cloud API 如何連線至 Azure API 的驗證設定。

請提供 azureClient 或 azureServicesAuthentication。

AzureClient 資源必須與 AzureCluster 位於相同的 Google Cloud Platform 專案和區域。

AzureClient 名稱的格式為 projects/<project-number>/locations/<region>/azureClients/<client-id>

如要進一步瞭解 Google Cloud 資源名稱,請參閱「資源名稱」。

networking

object (AzureClusterNetworking)

這是必要旗標,全叢集網路設定。

controlPlane

object (AzureControlPlane)

這是必要旗標,與叢集控制層相關的設定。

authorization

object (AzureAuthorization)

這是必要旗標,與叢集 RBAC 設定相關的設定。

azureServicesAuthentication

object (AzureServicesAuthentication)

(選用步驟) 管理 Azure 資源的驗證設定。

請提供 azureClient 或 azureServicesAuthentication。

state

enum (State)

僅供輸出。叢集的目前狀態。

endpoint

string

僅供輸出。叢集 API 伺服器的端點。

uid

string

僅供輸出。叢集的全域專屬 ID。

reconciling

boolean

僅供輸出。如果已設定,叢集目前有變更正在進行中。

createTime

string (Timestamp format)

僅供輸出。這個叢集的建立時間。

使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數位數。系統也接受「Z」以外的偏移量。例如:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

updateTime

string (Timestamp format)

僅供輸出。這個叢集上次更新的時間。

使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數位數。系統也接受「Z」以外的偏移量。例如:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

etag

string

允許用戶端透過開放式並行控制執行一致的讀取-修改-寫入作業。

可在更新和刪除要求中傳送,確保用戶端在繼續操作前擁有最新值。

annotations

map (key: string, value: string)

(選用步驟) 叢集註解。

這個欄位與 Kubernetes 註解具有相同的限制。所有鍵值組合的總大小不得超過 256k。索引鍵可包含 2 個部分:前置字串 (選填) 和名稱 (必填),兩者須以正斜線 (/) 分隔。前置字串必須是 DNS 子網域。名稱長度不得超過 63 個字元,開頭和結尾須為英數字元,中間須包含連字號 (-)、底線 (_)、點號 (.) 和英數字元。

包含 "key": value 組合清單的物件。範例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

workloadIdentityConfig

object (WorkloadIdentityConfig)

僅供輸出。Workload Identity 設定。

clusterCaCertificate

string

僅供輸出。叢集信任根的 PEM 編碼 x509 憑證。

fleet

object (Fleet)

這是必要旗標,機群設定。

managedResources

object (AzureClusterResources)

僅供輸出。這個叢集的受管理 Azure 資源。

loggingConfig

object (LoggingConfig)

(選用步驟) 這個叢集的記錄設定。

errors[]

object (AzureClusterError)

僅供輸出。叢集中發現的一組錯誤。

monitoringConfig

object (MonitoringConfig)

(選用步驟) 這個叢集的監控設定。

AzureClusterNetworking

ClusterNetworking 包含叢集範圍的網路設定。

JSON 表示法
{
  "virtualNetworkId": string,
  "podAddressCidrBlocks": [
    string
  ],
  "serviceAddressCidrBlocks": [
    string
  ],
  "serviceLoadBalancerSubnetId": string
}
欄位
virtualNetworkId

string

這是必要旗標,與叢集相關聯的 VNet Azure 資源管理工具 (ARM) ID。

叢集中的所有元件 (即控制層和節點集區) 都會在單一 VNet 上執行。

範例:/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.Network/virtualNetworks/<vnet-id>

建立後即無法變更這個欄位。

podAddressCidrBlocks[]

string

這是必要旗標,這個叢集中 Pod 的 IP 位址範圍,以 CIDR 標記法表示 (例如 10.96.0.0/14)。

系統會從這些範圍為叢集中的所有 Pod 指派專屬的 IPv4 位址。僅支援單一範圍。

建立後即無法變更這個欄位。

serviceAddressCidrBlocks[]

string

這是必要旗標,這個叢集中服務的 IP 位址範圍,以 CIDR 標記法表示 (例如 10.96.0.0/14)。

系統會從這些範圍為叢集中的所有服務指派專屬 IPv4 位址。僅支援單一範圍。

叢集建立後即無法變更這個欄位。

serviceLoadBalancerSubnetId

string

(選用步驟) Kubernetes 私有服務類型負載平衡器部署所在的子網路 ARM ID。如未指定,則預設為 AzureControlPlane.subnet_id。

範例:"/subscriptions/d00494d6-6f3c-4280-bbb2-899e163d1d30/resourceGroups/anthos_cluster_gkeust4/providers/Microsoft.Network/virtualNetworks/gke-vnet-gkeust4/subnets/subnetid456"

AzureControlPlane

AzureControlPlane 代表控制層設定。

JSON 表示法
{
  "version": string,
  "subnetId": string,
  "vmSize": string,
  "sshConfig": {
    object (AzureSshConfig)
  },
  "rootVolume": {
    object (AzureDiskTemplate)
  },
  "mainVolume": {
    object (AzureDiskTemplate)
  },
  "databaseEncryption": {
    object (AzureDatabaseEncryption)
  },
  "proxyConfig": {
    object (AzureProxyConfig)
  },
  "configEncryption": {
    object (AzureConfigEncryption)
  },
  "tags": {
    string: string,
    ...
  },
  "replicaPlacements": [
    {
      object (ReplicaPlacement)
    }
  ],
  "endpointSubnetId": string
}
欄位
version

string

這是必要旗標,要在控制層副本上執行的 Kubernetes 版本 (例如 1.19.10-gke.1000)。

您可以呼叫 locations.getAzureServerConfig,列出指定 Google Cloud 區域支援的所有版本。

subnetId

string

(選用步驟) 控制層預設子網路的 ARM ID。除非指定 AzureControlPlane.replica_placements,否則控制層 VM 會部署在這個子網路中。如果未指定 AzureControlPlane.endpoint_subnet_id,這個子網路也會做為 AzureControlPlane.endpoint_subnet_id 的預設值。同樣地,這也會做為 AzureClusterNetworking.service_load_balancer_subnet_id 的預設值。

範例:/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.Network/virtualNetworks/<vnet-id>/subnets/default

vmSize

string

(選用步驟) Azure VM 大小名稱。範例:Standard_DS2_v2

如要瞭解可用的 VM 大小,請參閱 https://docs.microsoft.com/en-us/azure/virtual-machines/vm-naming-conventions

如未指定,則預設為 Standard_DS2_v2

sshConfig

object (AzureSshConfig)

這是必要旗標,SSH 設定,說明如何存取基礎控制層機器。

rootVolume

object (AzureDiskTemplate)

(選用步驟) 與為每個控制層副本佈建的根磁碟區相關的設定。

如未指定,則預設為 32 GiB 的 Azure 磁碟。

mainVolume

object (AzureDiskTemplate)

(選用步驟) 與每個控制層副本佈建的主要磁碟區相關的設定。主要磁碟區負責儲存叢集的所有 etcd 狀態。

如未指定,則預設為 8 GiB 的 Azure 磁碟。

databaseEncryption

object (AzureDatabaseEncryption)

(選用步驟) 與應用程式層 Secret 加密相關的設定。

proxyConfig

object (AzureProxyConfig)

(選用步驟) 用於輸出 HTTP(S) 流量的 Proxy 設定。

configEncryption

object (AzureConfigEncryption)

(選用步驟) 與 VM 設定加密相關的設定。

tags

map (key: string, value: string)

(選用步驟) 一組標記,可套用至所有基礎控制層 Azure 資源。

包含 "key": value 組合清單的物件。範例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

replicaPlacements[]

object (ReplicaPlacement)

(選用步驟) 控制層副本的放置位置設定。

最多可指定三個副本放置執行個體。如果已設定 replicaPlacements,系統會盡可能平均地將副本放置執行個體套用至三個控制層副本。

endpointSubnetId

string

(選用步驟) 控制層負載平衡器部署所在的子網路 ARM ID。如未指定,則預設為 AzureControlPlane.subnet_id。

範例:"/subscriptions/d00494d6-6f3c-4280-bbb2-899e163d1d30/resourceGroups/anthos_cluster_gkeust4/providers/Microsoft.Network/virtualNetworks/gke-vnet-gkeust4/subnets/subnetid123"

AzureDatabaseEncryption

與應用程式層 Secret 加密相關的設定。

Azure 中的 Anthos 叢集會使用 Azure Key Vault,加密 etcd 中的 Kubernetes 靜態資料。

JSON 表示法
{
  "keyId": string
}
欄位
keyId

string

這是必要旗標,用來加密 / 解密資料的 Azure Key Vault 金鑰 ARM ID。

舉例來說:/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.KeyVault/vaults/<key-vault-id>/keys/<key-name>加密作業一律會採用最新版本的金鑰,因此不支援特定版本。

ReplicaPlacement

控制層副本的放置位置設定。

JSON 表示法
{
  "subnetId": string,
  "azureAvailabilityZone": string
}
欄位
subnetId

string

這是必要旗標,特定副本的子網路 ARM ID,控制層 VM 會部署至該子網路。請確認這是叢集設定中虛擬網路下的子網路。

azureAvailabilityZone

string

這是必要旗標,針對特定副本,要佈建控制層 VM 和 ETCD 磁碟的 Azure 可用區。

AzureAuthorization

與叢集 RBAC 設定相關的設定。

JSON 表示法
{
  "adminUsers": [
    {
      object (AzureClusterUser)
    }
  ],
  "adminGroups": [
    {
      object (AzureClusterGroup)
    }
  ]
}
欄位
adminUsers[]

object (AzureClusterUser)

(選用步驟) 能以叢集管理員身分執行作業的使用者。系統會建立受管理 ClusterRoleBinding,將 cluster-admin ClusterRole 授予使用者。最多可提供十位管理員使用者。

如要進一步瞭解 RBAC,請參閱 https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles

adminGroups[]

object (AzureClusterGroup)

(選用步驟) 能以叢集管理員身分執行作業的使用者群組。系統會建立代管 ClusterRoleBinding,將 cluster-admin ClusterRole 授予群組。最多可提供 10 個管理員群組。

如要進一步瞭解 RBAC,請參閱 https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles

AzureClusterUser

Azure 叢集的使用者類型主體身分。

JSON 表示法
{
  "username": string
}
欄位
username

string

這是必要旗標,使用者名稱,例如 my-gcp-id@gmail.com

AzureClusterGroup

Azure 叢集群組類型主體的 ID。

JSON 表示法
{
  "group": string
}
欄位
group

string

這是必要旗標,群組名稱,例如 my-group@domain.com

AzureServicesAuthentication

管理 Azure 資源的驗證設定。

JSON 表示法
{
  "tenantId": string,
  "applicationId": string
}
欄位
tenantId

string

這是必要旗標,Azure Active Directory 租戶 ID。

applicationId

string

這是必要旗標,Azure Active Directory 應用程式 ID。

狀態

叢集的生命週期狀態。

列舉
STATE_UNSPECIFIED 未設定。
PROVISIONING 「PROVISIONING」狀態表示叢集正在建立中。
RUNNING RUNNING 狀態表示叢集已建立完成,可完全使用。
RECONCILING 「RECONCILING」狀態表示叢集正在執行某些作業,例如升級控制層副本。
STOPPING 「STOPPING」狀態表示叢集正在刪除。
ERROR 「ERROR」狀態表示叢集已損毀,無法復原。
DEGRADED 「DEGRADED」狀態表示叢集需要使用者採取行動,才能恢復完整功能。

AzureClusterResources

叢集的受管理 Azure 資源。

這些值可能會因叢集狀態而異,也可能為空白。

JSON 表示法
{
  "networkSecurityGroupId": string,
  "controlPlaneApplicationSecurityGroupId": string
}
欄位
networkSecurityGroupId

string

僅供輸出。叢集網路安全性群組的 ARM ID。

controlPlaneApplicationSecurityGroupId

string

僅供輸出。控制層應用程式安全防護群組的 ARM ID。

AzureClusterError

AzureClusterError 會說明 Azure 叢集上發現的錯誤。

JSON 表示法
{
  "message": string
}
欄位
message

string

錯誤的易讀說明。

方法

create
(deprecated)

在指定的 Google Cloud Platform 專案和區域中建立新的 AzureCluster 資源。

delete
(deprecated)

刪除特定 AzureCluster 資源。

generateAzureAccessToken
(deprecated)

產生短期存取權杖,以驗證特定 AzureCluster 資源。

generateAzureClusterAgentToken
(deprecated)

為叢集代理程式產生存取權杖。

get
(deprecated)

說明特定 AzureCluster 資源。

getJwks
(deprecated)

以 JSON Web Key 格式取得叢集簽署金鑰的公開元件。

list
(deprecated)

列出指定 Google Cloud 專案和區域中的所有 AzureCluster 資源。

patch
(deprecated)

更新 AzureCluster