

本指南提供了 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 集群自动扩缩器是 Wickr Enterprise 安装的可选配置值。如果流量增加或其他资源限制可能导致性能不佳，它将有助于扩展 Kubernetes 节点组。

Wickr Enterprise 安装支持 3 种云提供商集成： AWS、谷歌云和 Azure。**每个云提供商对这种集成都有不同的要求。**请按照以下针对您的特定云提供商的说明启用此功能。

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

如果您没有使用 WickrEnterprise CDK 安装 Wickr 环境 AWS，则需要采取一些额外的步骤来启用集群自动扩缩程序。

1. 将以下标签添加到您的节点组。这允许集群自动扩缩程序自动发现相应的节点。

   1. `k8s.io/cluster-autoscaler/clusterName = owned`其中 **clusterName** 是你的 Kubernetes 集群的名称

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

1. 在 kube-system 命名空间中添加一个 Kubernetes 服务账户，并将其与允许自动扩展和 ec2 操作的 IAM 策略相关联。有关更多信息和详细说明，请参阅 A *mazon E [KS 用户指南中的配置 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"
              }
          ]
      }
      ```

------

在配置集群自动扩缩器时，在 Replicated UI 中，选择**AWS**您的云提供商并提供您在上面创建的服务帐户的名称，以指示集群自动扩缩程序使用该服务帐户。

## 谷歌云
<a name="google-cloud"></a>

强烈建议将 GKE 的内置自动缩放功能用于自动驾驶和标准集群。但是，如果您想继续进行此集成，则必须满足以下要求才能继续。

**要求：**

1. 托管实例组 (MIG) 必须使用安全范围创建，包括至少 “读/写” Compute Engine 资源。以后无法将其添加到 MIG 中。

1. 集群必须启用工作负载身份联合。您可以通过运行以下命令在现有集群上启用此功能：`gcloud container clusters update ${CLUSTER_NAME} --workload-pool=${PROJECT_ID}.svc.id.goog`

1.  一个谷歌云平台 (GCP) 服务账户，可以访问 “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 服务 (AKS) 为大多数部署提供集成的集群自动缩放，强烈建议使用这些方法进行集群自动缩放。但是，如果您的要求导致这些方法不起作用，我们为 Azure Kubernetes 服务提供了 Kubernetes 集群自动扩缩程序集成。要使用此集成，你需要收集以下信息，并在选择 **Azure** 作为云提供**商后，将其放入 KOTS 管理面板的 Cluster Autoscaler** 下的配置中。

**天蓝色身份验证**

**订阅 ID**：订阅 ID 可以通过官方文档通过 Azure 门户获取。有关更多信息，请参阅在 [Azure 门户 IDs 中获取订阅和租户](https://learn.microsoft.com/en-us/azure/azure-portal/get-subscription-tenant-id)。

以下参数可以通过使用 az 命令行实用程序创建 AD 服务主体来获得。

```
az ad sp create-for-rbac —role="Contributor" —scopes="/subscriptions/subscription-id" —output json
```

应用程序 ID：

客户密码：

租户编号：

**Azure 集群自动扩缩程序配置**

除了身份验证要求外，群集自动扩缩器正常运行还需要以下字段。为方便起见，提供了获取此信息的命令，但是，根据您的特定 AKS 配置，可能需要对其进行一些修改。

**Azure 托管节点资源组**：此值是 AZure 在建立 AKS 集群时创建的托管资源组，而不是你定义的资源组。要获得此值，您需要创建集群时的 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 节点池 VMSS 名称（可选）**：这是与您的调用节点池关联的 VMSS 的名称（如果有）。要获得此值，您可以运行应用程序节点池 VMSS 名称命令的修改版本，将调用节点池的节点池名称的 CLUSTER\_NODEPOOL\_NAME 值移除。