

本指南提供 Wickr Enterprise 的文件。如果您使用的是 AWS Wickr，請參閱 [AWS Wickr 管理指南](https://docs.aws.amazon.com/wickr/latest/adminguide/what-is-wickr.html)或 [AWS Wickr 使用者指南](https://docs.aws.amazon.com/wickr/latest/userguide/what-is-wickr.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Kubernetes 叢集自動擴展器 （選用）
<a name="kubernetes-cluster-autoscaler"></a>

Kubernetes Cluster Autoscaler 是 Wickr Enterprise 安裝的選用組態值。如果流量增加或其他資源限制可能導致效能不佳，這將有助於擴展 Kubernetes 節點群組。

Wickr Enterprise 安裝支援 3 個雲端提供者整合： AWS、Google Cloud 和 Azure。**每個雲端供應商對此整合都有不同的需求。**請遵循以下特定雲端供應商的說明來啟用此功能。

## AWS
<a name="aws"></a>

如果您未使用 WickrEnterpriseCDK 在 上安裝 Wickr 環境 AWS，則需要採取一些額外的步驟來啟用 Cluster Autoscaler。

1. 將下列標籤新增至節點群組。這可讓 Cluster Autoscaler 自動探索適當的節點。

   1. `k8s.io/cluster-autoscaler/clusterName = owned` 其中 **clusterName** 是您 Kubernetes 叢集的名稱

   1. `k8s.io/cluster-autoscaler-enabled = true`

1. 在 kube-system 命名空間中新增 Kubernetes 服務帳戶，並將其與允許自動擴展和 ec2 動作的 IAM 政策建立關聯。如需詳細資訊和詳細說明，請參閱《*Amazon EKS 使用者指南*》中的[設定 Kubernetes 服務帳戶以擔任 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html)。

   1. 設定服務帳戶時，您將需要使用「kube-system」命名空間

   1. 下列政策可用於 服務帳戶：

------
#### [ JSON ]

****  

      ```
      {
          "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 雲端
<a name="google-cloud"></a>

強烈建議對 Autopilot 和標準叢集使用 GKE 內建的 Autoscaling 功能。不過，如果您想要繼續此整合，在繼續之前必須符合下列要求。

**使用要求：**

1. 必須使用安全範圍建立受管執行個體群組 (MIG)，包括至少運算引擎資源的「讀取/寫入」。這目前無法新增至 MIG。

1. 叢集必須啟用工作負載聯合身分。您可以執行下列動作，在現有叢集上啟用此功能： `gcloud container clusters update ${CLUSTER_NAME} --workload-pool=${PROJECT_ID}.svc.id.goog`

1.  可存取角色 `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
<a name="azure"></a>

Azure Kubernetes Service (AKS) 為大多數部署提供整合式叢集自動擴展，強烈建議將這些方法用於叢集自動擴展。不過，如果您的需求使得這些方法無法運作，我們已為 Azure Kubernetes Service 提供 Kubernetes Cluster Autoscaler 整合。若要利用此整合，您需要收集下列資訊，並在選取 **Azure** 做為雲端提供者之後，將其放入 **Cluster Autoscaler** 下的 KOTS 管理員面板組態中。

**Azure 身分驗證**

**訂閱 ID**：訂閱 ID 可透過 Azure 入口網站，依照官方文件取得。如需詳細資訊，請參閱 [Azure 入口網站中的取得訂閱和租戶 IDs](https://learn.microsoft.com/en-us/azure/azure-portal/get-subscription-tenant-id)。

您可以使用 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 受管節點資源群組**：此值是您建立 AKS 叢集時由 Azure 建立的受管資源群組，而不是您定義的資源群組。若要取得此值，您需要在建立叢集時從 取得 CLUSTER\_NAME 和 RESOURCE\_GROUP。取得這些值後，您可以執行下列動作來取得此值：

```
az aks show —resource-group ${RESOURCE_GROUP} —name ${CLUSTER_NAME} —query nodeResourceGroup -o tsv
```

**應用程式節點集區 VMSS 名稱**：這是與 Wickr 應用程式之 AKS 節點集區相關聯的虛擬機器擴展集 (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 值。