Kubernetes 集群自动扩缩器(可选) - Wickr Enterprise

本指南提供了 Wickr Enterprise 的文档。如果您使用的是 AWS Wickr,请参阅 AWS Wickr 管理指南或 AW S Wickr 用户指南。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Kubernetes 集群自动扩缩器(可选)

Kubernetes 集群自动扩缩器是 Wickr Enterprise 安装的可选配置值。如果流量增加或其他资源限制可能导致性能不佳,它将有助于扩展 Kubernetes 节点组。

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

AWS

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

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

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

    2. k8s.io/cluster-autoscaler-enabled = true

  2. 在 kube-system 命名空间中添加一个 Kubernetes 服务账户,并将其与允许自动扩展和 ec2 操作的 IAM 策略相关联。有关更多信息和详细说明,请参阅 A mazon E KS 用户指南中的配置 Kubernetes 服务账户以担任 IAM 角色

    1. 在设置服务账号时,你需要使用 “kube-system” 命名空间

    2. 以下政策可用于服务帐号:

      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您的云提供商并提供您在上面创建的服务帐户的名称,以指示集群自动扩缩程序使用该服务帐户。

谷歌云

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

要求:

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

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

  3. 一个谷歌云平台 (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

Azure Kubernetes 服务 (AKS) 为大多数部署提供集成的集群自动缩放,强烈建议使用这些方法进行集群自动缩放。但是,如果您的要求导致这些方法不起作用,我们为 Azure Kubernetes 服务提供了 Kubernetes 集群自动扩缩程序集成。要使用此集成,你需要收集以下信息,并在选择 Azure 作为云提供商后,将其放入 KOTS 管理面板的 Cluster Autoscaler 下的配置中。

天蓝色身份验证

订阅 ID:订阅 ID 可以通过官方文档通过 Azure 门户获取。有关更多信息,请参阅在 Azure 门户 IDs 中获取订阅和租户

以下参数可以通过使用 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 值移除。