api_fingerprint (必要)
|
您上傳之 API 簽章金鑰的指紋。 |
api_private_key_path (必要)
|
包含您私密 API 簽署金鑰之檔案的完整路徑與名稱。 |
compartment_id (必要)
|
要在其中建立資源之區間的 OCID。 |
tenancy_id (必要)
|
您租用戶的 OCID。 |
user_id (必要)
|
您要使用 Terraform 向Oracle Cloud Infrastructure進行認證的使用者 OCID。 |
ssh_private_key_path |
包含私密 SSH 金鑰的檔案完整路徑與名稱,該私密 SSH 金鑰對應至要提供給消費主機的公用金鑰。
這個值會用來建構可用來存取 bastion 主機的 ssh 命令。當您套用 Terraform 組態時,ssh 命令會顯示在輸出中。請注意,Terraform 無法讀取或複製私密金鑰。
|
ssh_public_key_path |
包含您要為基礎主機提供之公用 SSH 金鑰的檔案的完整路徑與名稱。 |
label_prefix |
一個短 Id,用來作為資源名稱的前置碼。
使用可協助您查看資源名稱以識別資源用途或性質的字串。例如,如果您想要使用 Terraform 組態來設定測試或暫存環境,請考慮使用前置碼 test 或 staging 。
|
region - 區域 |
要建立資源的區域 ID。 例如,US East (Ashburn) 區域的 ID 是 us-ashburn-1 。
|
nat_gateway_enabled |
指定 true 為 VCN 建立 NAT 閘道。
若任何專用運算執行處理 (例如管理主機或 Kubernetes 工作節點) 需要存取公用網際網路上的主機,則需要 NAT 閘道。
|
newbits 與 netnum |
套用組態時,Terraform 會將 newbits 與 netnum 的值作為引數傳送至 Terraform 函數 cidrsubnet() 。此函數會計算基礎主機、管理主機、負載平衡器節點以及 Kubernetes 工作者節點之子網路的 CIDR 前置碼。
newbits 可用來決定子網路的大小。它是 VCN 的網路遮罩和基礎子網路所需的網路遮罩之間的差異。
例如,若要在 /16 VCN 中以網路遮罩 /29 建立子網路,請指定 13 作為 newbits 值 (即 29 減 16 )。
較低的 newbits 值會產生位址空間較大的子網路。
netnum 可用來決定子網路的界限。當網路以 newbits 遮罩時,這是以零為基礎的子網路索引。
如果您指定 newbits=13 和 netnum=0 ,則 cidrsubnet() 函數會傳回子網路 CIDR 前置碼 10.0.0.0/29 ,這是 10.0.0.0/16 VCN 內的第一個 /29 位址空間。
預設值: netnum = {
admin = 33
bastion = 32
int_lb = 16
pub_lb = 17
workers = 1
}
newbits = {
admin = 13
bastion = 13
lb = 11
workers = 2
}
如果您將這些變數保留在預設值並指定 10.0.0.0/16 作為 VCN 的 CIDR 範圍,則 Terraform 函數 cidrsubnet() 會計算子網路的下列 CIDR 前置碼。可用的地址會以括號顯示。請注意,網路服務會保留前兩個位址和子網路中的最後一個位址。
- 基本子網路:
10.0.1.0/29 (可用的位址:10.0.1.2 到 10.0.1.6 ;亦即 5 部主機)
- 管理子網路:
10.0.1.8/29 (10.0.1.10 到 10.0.1.14 ;5 個主機)
- 內部負載平衡器子網路:
10.0.2.0/27 (10.0.2.2 至 10.0.2.30 ;29 個節點)
- 公用負載平衡器子網路:
10.0.2.32/27 (10.0.2.34 至 10.0.2.62 ;29 個節點)
- Kubernetes 工作節點子網路:
10.0.64.0/18 (10.0.64.2 至 10.0.127.254 ;16381 個節點)
如果您需要的子網路具有與預設設定不同的位址或大小,您應該決定 newbits 和 netnum 的適當值。若要這樣做,您必須具備無類別 IP 位址的基本知識。另請參閱 cidrsubnet() 函數的 Terraform 文件。
請確定您在此處指定的 CIDR 區塊未與您為 Kubernetes pods (pods_cidr ) 指定的 CIDR 區塊重疊。
|
service_gateway_enabled |
指定 true 為 VCN 建立服務閘道。
如果 VCN 中的運算執行處理需要存取其他 Oracle 服務 (例如Oracle Cloud Infrastructure Object Storage),就必須提供服務閘道。
|
vcn_cidr |
您為 VCN 選擇的 IPv4 CIDR 區塊。
預設值為 10.0.0.0/16 。允許的範圍為 /16 到 /30
請確定您在此處指定的 CIDR 區塊未與您為 Kubernetes 服務指定的 CIDR 區塊 (services_cidr ) 重疊。
|
vcn_dns_label |
VCN 內部 DNS 名稱的名稱前置碼。
您在此處指定的名稱前面會加上 oraclevcn.com ,以形成 VCN 的 DNS 網域名稱。例如,如果您指定 oke 作為前置碼,VCN 的 DNS 網域名稱就會是 oke.oraclevcn.com
|
vcn_name |
VCN 資源的名稱。 |
bastion_access |
必須允許 SSH 存取此種子的 IP 位址範圍 (以 CIDR 表示法表示)。
若要允許從任何主機 (亦即 0.0.0.0/0 ) 存取 SSH,請將變數保留為其預設值 ANYWHERE 。
|
bastion_enabled |
指定 true 以建立種子主機。
|
bastion_image_id |
要用來建立基礎主機之影像的 OCID。
如果您將此變數保留為預設值 NONE ,則會使用 Oracle 自治式 Linux 影像。
|
bastion_notification_enabled |
您可以使用「Oracle Cloud Infrastructure 通知」服務在套用更新或 Oracle Ksplice 偵測到已知的展開嘗試時,接收來自消耗主機的狀態訊息。
指定 true 以啟用種子主機的傳送通知。
注意: 此解決方案中的 Terraform 程式碼僅會在您使用預設的 Oracle Autonomous Linux 影像時設定基礎架構主機的通知。
|
bastion_notification_endpoint |
要接收通知的電子郵件地址。如果您將 bastion_notification_enabled 設為 true ,則需要此變數。
|
bastion_notification_protocol |
將此變數設為 EMAIL 。
|
bastion_notification_topic |
要建立之通知主題的名稱。如果您將 bastion_notification_enabled 設為 true ,則需要此變數。
|
bastion_package_upgrade |
如果您希望這些基礎主機的安全套裝程式在第一次啟動主機時升級,請指定 true 。
請注意,當此變數設為 true 時,在啟動設定 basis 主機之後,就無法在升級安全套裝程式的期間內使用它。但可讓這項升級將基礎主機的漏洞降到最低。
|
bastion_shape |
要用於消費主機的運算型態。 |
bastion_timezone |
以 IANA 時區格式為巴斯主機設定的時區 (例如,America/Los_Angeles )。
|
admin_enabled |
指定 true 以建立管理主機。
|
admin_image_id |
要用來建立基礎主機之影像的 OCID。
如果您將此變數留在預設值 NONE ,則會使用 Oracle 提供的 Linux 影像。
|
admin_instance_principal |
若要讓管理主機管理您指定之區間中的所有資源,請指定 true 。
若您想從管理主機執行 CLI 命令或進行 API 呼叫來管理拓樸中的資源,請使用此功能。
注意: 任何可使用 SSH 連線計算執行處理的使用者,都會繼承授與執行處理的執行處理主要項目權限。決定是否將管理主機指定為執行處理主要項目時,請考慮此選項。您可以在不影響管理主機的情況下,隨時關閉或開啟此功能。
如果您將此變數設為 true ,則會將管理主機設為動態群組的成員,並建立原則敘述句以允許動態群組管理區間中的所有資源。
|
admin_notification_enabled
admin_notification_endpoint
admin_notification_protocol
admin_notification_topic
|
將這些變數留在預設值。目前不支援啟用此 Terraform 程式碼中管理主機的通知。 |
admin_package_upgrade |
如果您要在第一次啟動主機時升級管理主機的安全套裝程式,請指定 true 。
請注意,當此變數設為 true 時,在管理主機啟動設定之後,安全套裝程式升級期間將無法使用短期的變數。但可讓這項升級將管理主機的漏洞降到最低。
|
admin_shape |
要用於管理主機的運算型態。 |
admin_timezone |
以 IANA 時區格式設定管理主機的時區 (例如,America/Los_Angeles )。
|
availability_domains |
您要佈建管理主機與基礎主機的可用性網域。
例如,若要在第二個可用性網域中佈建防止主機,請設定 bastion = 2 。
如果您指定的區域只包含一個可用性網域,請將此變數保留為預設值 1 。
|
tagging |
指定您要指定給運算和網路資源的標記。 |
allow_node_port_access |
若要允許在公用模式下建置 TCP 流量至 Kubernetes 工作者節點,請指定 true 。
|
allow_worker_ssh_access |
若要允許透過 Based 主機連線至 Kubernetes 工作者節點,請指定 true 。
請注意,即使在公用模式下建置工作節點,SSH 連線仍必須通過基礎主機。
如果您將此變數設為 true ,則必須同時設定 bastion_enabled = true 。
|
cluster_name |
Kubernetes 叢集的名稱。 |
dashboard_enabled |
若要建立預設 Kubernetes 儀表板,請指定 true 。
|
kubernetes_version |
用於工作節點的 Kubernetes 版本。
如果您將此變數保留為其預設值 LATEST ,則會選取最新支援的版本。若要使用特定版本,請指定該版本。
|
node_pools |
要建立的節點集區數目、每個集區的大小,以及用於工作節點的運算型態 (格式如下):node_pools = {
"np1" = ["computeShape", numberOfNodes]
"np2" = ["computeShape", numberOfNodes]
"np3" = ["computeShape", numberOfNodes]
...
}
np1 、np2 以及 np3 是代表個別節點集區的任意名稱。
computeShape 是集區中工作節點所要使用的運算型態。
numberOfNodes 是要在人才庫中建立的 Kubernetes 職工節點數。系統會在每個集區中建立最少三個節點,即使您指定較低的值也是如此。
以下是由兩個集區組成的叢集範例,每個集區都使用不同的運算型態,並包含不同數目的 Kubernetes 工作節點: node_pools = {
"np1" = ["VM.Standard2.1", 3]
"np2" = ["VM.Standard2.2", 5]
}
|
node_pool_name_prefix |
節點集區的名稱前置碼。
節點集區的名稱是透過串接 label_prefix 、node_pool_name_prefix 以及節點集區編號的值來產生的。例如,如果指定 label_prefix = "prod" 和 node_pool_name_prefix = "np" ,則節點集區產生的名稱會是 prod-np-1 、prod-np-2 、prod-np-3 等等。
|
node_pool_image_id |
Kubernetes 工作節點所要使用的映像檔 OCID。
如果您將此變數保留為預設值 NONE ,則會使用與您為 node_pool_os 和 node_pool_os_version 指定之值相符的影像。
|
node_pool_os |
應用於 Kubernetes 工作者節點的作業系統 (例如,"Oracle Linux" )。
此設定值只有在您設定 node_pool_image_id = "NONE" 時才會被視為
|
node_pool_os_version |
應用於 Kubernetes 工作者節點的作業系統版本 (例如,"7.7" )。
此設定值只有在您設定 node_pool_image_id = "NONE" 時才會被視為
|
pods_cidr |
您選擇用於 Kubernetes pods 的 IPv4 CIDR 區塊。
請確定您在此指定的 CIDR 區塊未與您為 VCN (vcn_cidr ) 指定的 CIDR 區塊重疊。
|
services_cidr |
您選擇用於 Kubernetes pods 的 IPv4 CIDR 區塊。
請確定您在此指定的 CIDR 區塊未與您為 VCN (vcn_cidr ) 指定的 CIDR 區塊重疊。
|
worker_mode |
若必須能夠從公用網際網路存取工作節點,請指定 public 。否則,請將此變數設為 private 。
如果您設定 worker_mode = "private" ,請設定 nat_gateway_enabled = true
|
lb_subnet_type 與 preferred_lb_subnets |
您為 lb_subnet_type 和 preferred_lb_subnets 指定的值會決定子網路類型,此類型必須用於使用 LoadBalancer 類型的 Kubernetes 服務建置的任何負載平衡器節點。
公用負載平衡器有公用 IP 位址。內部負載平衡器只有專用 IP 位址,無法從公用網際網路存取。
|
secret_id |
Oracle Cloud Infrastructure Vault 服務中機密的 ID,用於儲存 Oracle Cloud Infrastructure Registry 提取應用程式影像的認證記號。
您也必須設定下列項目: bastion_enabled = true
admin_enabled = true
admin_instance_principal = true
|
email_address |
產生 Docker 密碼時所使用的電子郵件地址。需有電子郵件地址,但不管您的指定內容為何。
如果指定 secret_id ,則需要此變數。
|
tenancy_name |
包含登錄檔的租用戶之Oracle Cloud Infrastructure Object Storage 命名空間,應從其中將影像提取以供部署到您的 Kubernetes 叢集。
如果指定 secret_id ,則需要此變數。
|
username |
您產生認證記號的使用者名稱 (儲存在 secret_id 中)。
如果指定 secret_id ,則需要此變數。
|
install_helm |
若要安裝 Helm,請指定 true 。
Helm 是 Kubernetes 的套裝軟體管理員。
若要安裝 Helm,您也必須設定 admin_instance_principal = true 。
|
helm_version |
要安裝的 Helm 從屬端版本。
波狀符號 (Helm 伺服器端的反應器端) 會自動升級。
|
install_calico |
若要安裝 Calico,請指定 true 。
您可以使用 Calico 來為建置到 Kubernetes 叢集的容器工作負載實行網路原則。
如果您設定 install_calico = true ,則還必須設定下列項目: bastion_enabled = true
admin_enabled = true
admin_instance_principal = true
|
calico_version |
要安裝的 Calico 版本。 |
install_metricserver |
若要安裝 Kubernetes Metrics Server,請指定 true 。
預設情況下,最新版本會安裝在 kube-system 命名空間中。「Kubernetes 測量結果伺服器」會聚總叢集的資源使用狀況資料。
如果您設定 install_metricserver = true ,則還必須設定下列項目: bastion_enabled = true
admin_enabled = true
admin_instance_principal = true
|
use_encryption |
若要使用 Oracle Cloud Infrastructure Vault 服務來加密 Kubernetes 密碼,請將此變數設為 true 。
如果您設定 use_encryption = true ,則還必須設定下列項目: bastion_enabled = true
admin_enabled = true
admin_instance_principal = true
|
existing_key_id |
Oracle Cloud Infrastructure Vault 服務中建立之現有金鑰的 OCID。
如果您將 use_encryption 設為 true ,則需要此變數。
|
create_service_account |
如果您要外部處理作業和工具 (例如CI/CD管線) 存取叢集,請將此變數設為 true 。服務帳號是以其本身的認證記號所建立。
如果您設定 create_service_account = true ,則還必須設定下列項目: bastion_enabled = true
admin_enabled = true
admin_instance_principal = true
|
service_account_name |
要建立之服務帳號的名稱。 |
service_account_namespace |
應在其中建立帳戶的 Kubernetes 命名空間。 |
service_account_cluster_role_binding |
服務帳號之叢集角色連結的名稱。 |