本指南提供 Wickr Enterprise 的文件。如果您使用的是 AWS Wickr,請參閱 AWS Wickr 管理指南或 AWS Wickr 使用者指南。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Kubernetes 叢集自動擴展器 (選用)
Kubernetes Cluster Autoscaler 是 Wickr Enterprise 安裝的選用組態值。如果流量增加或其他資源限制可能導致效能不佳,這將有助於擴展 Kubernetes 節點群組。
Wickr Enterprise 安裝支援 3 個雲端提供者整合: AWS、Google Cloud 和 Azure。每個雲端供應商對此整合都有不同的要求。請遵循以下特定雲端供應商的說明來啟用此功能。
AWS
如果您未使用 WickrEnterpriseCDK 在 上安裝 Wickr 環境 AWS,則需要採取一些額外步驟來啟用 Cluster Autoscaler。
-
將下列標籤新增至節點群組。這可讓 Cluster Autoscaler 自動探索適當的節點。
-
k8s.io/cluster-autoscaler/clusterName = owned
其中 clusterName 是您 Kubernetes 叢集的名稱 -
k8s.io/cluster-autoscaler-enabled = true
-
-
在 kube-system 命名空間中新增 Kubernetes Service 帳戶,並將其與允許自動擴展和 ec2 動作的 IAM 政策建立關聯。如需詳細資訊和詳細說明,請參閱《Amazon EKS 使用者指南》中的設定 Kubernetes 服務帳戶以擔任 IAM 角色。
-
設定服務帳戶時,您將需要使用「kube-system」命名空間
-
下列政策可用於服務帳戶:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeLaunchConfigurations", "autoscaling:DescribeTags", "autoscaling:SetDesiredCapacity", "autoscaling:TerminateInstanceInAutoScalingGroup", "ec2:DescribeInstanceTypes", "ec2:DescribeInstances", "ec2:DescribeLaunchTemplateVersions" ], "Resource": "*", "Effect": "Allow" } ] }
-
在設定 Cluster Autoscaler 時的複寫 UI 中,選取 AWS做為您的雲端提供者,並提供您在上面建立的服務帳戶名稱,指示 Cluster Autoscaler 使用該服務帳戶。
Google 雲端
對於 Autopilot 和標準叢集,強烈建議使用 GKE 內建的 Autoscaling 功能。不過,如果您想要繼續此整合,在繼續之前必須符合下列要求。
使用要求:
-
受管執行個體群組 (MIG) 必須使用安全範圍建立,包括至少運算引擎資源的「讀取/寫入」。這目前無法在稍後新增至 MIG。
-
叢集必須啟用工作負載身分聯合。您可以執行下列動作,在現有叢集上啟用此功能:
gcloud container clusters update ${CLUSTER_NAME} --workload-pool=${PROJECT_ID}.svc.id.goog
-
可存取角色 `roles/compute.instanceAdmin.v1`. 您可以使用下列指示來建立:
# Create GCP Service Account gcloud iam service-accounts create k8s-cluster-autoscaler # Add role to GCP Service Account gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member "serviceAccount:k8s-cluster-autoscaler@${PROJECT_ID}.iam.gserviceaccount.com" \ --role "roles/compute.instanceAdmin.v1" # Link GCP Service Account to Kubernetes Service Account gcloud iam service-accounts add-iam-policy-binding k8s-cluster-autoscaler@${PROJECT_ID}.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:${PROJECT_ID}.svc.id.goog[kube-system/cluster-autoscaler-gce-cluster-autoscaler]"
Azure
Azure Kubernetes Service (AKS) 為大多數部署提供整合式叢集自動擴展,強烈建議使用這些方法來進行叢集自動擴展。不過,如果您的需求使得這些方法無法運作,我們已為 Azure Kubernetes Service 提供 Kubernetes Cluster Autoscaler 整合。若要利用此整合,您需要收集以下資訊,並在選取 Azure 做為雲端提供者之後,將其放入 Cluster Autoscaler 下的 KOTS 管理面板組態中。
Azure 身分驗證
訂閱 ID:訂閱 ID 可透過 Azure 入口網站取得,方法是遵循官方文件。如需詳細資訊,請參閱 Azure 入口網站中的取得訂閱和租戶 IDs
您可以使用 az 命令列公用程式建立 AD Service Principal,以取得下列參數。
az ad sp create-for-rbac —role="Contributor" —scopes="/subscriptions/subscription-id" —output json
應用程式 ID:
用戶端密碼:
租戶 ID:
Azure Cluster Autoscaler 組態
除了身分驗證要求之外,下列欄位是叢集自動擴展器正常運作的必要欄位。為方便起見提供了用於取得此資訊的命令,但根據您的特定 AKS 組態,可能需要一些修改。
Azure Managed Node Resource Group:此值是當您建立 AKS 叢集時由 Azure 建立的 Managed Resource Group,而不是您定義的資源群組。若要取得此值,您需要在建立叢集時從 取得 CLUSTER_NAME 和 RESOURCE_GROUP。取得這些值後,您可以執行下列動作來取得:
az aks show —resource-group ${RESOURCE_GROUP} —name ${CLUSTER_NAME} —query nodeResourceGroup -o tsv
應用程式節點集區 VMSS 名稱:這是與 Wickr 應用程式之 AKS Nodepool 相關聯的虛擬機器擴展集 (VMSS) 名稱。這是將根據您的叢集需求向上或向下擴展的資源。若要取得此值,您可以執行下列 az 命令:
CLUSTER_NODEPOOL_NAME="(Your-NodePool-Name)" CLUSTER_RESOURCE_GROUP="(Your-Managed-Node-Resource-Group-As-Defined-Above>)" az vmss list -g ${CLUSTER_RESOURCE_GROUP} --query '[?tags."aks-managed-poolName"==`'''${CLUSTER_NODEPOOL_NAME}'''`].{VMSS_name:name}' -o tsv
ACalling Node Pool VMSS 名稱 (選用):如果有 VMSS,這是與呼叫 Nodepool 相關聯的 VMSS 名稱。若要取得此值,您可以執行應用程式節點集區 VMSS 名稱的修改版本命令,將呼叫節點集區的節點集區名稱的 CLUSTER_NODEPOOL_NAME 值切換掉。