

Este guia fornece documentação para o Wickr Enterprise. Se você estiver usando o AWS Wickr, consulte o Guia de [Administração do AWS Wickr ou o Guia](https://docs.aws.amazon.com/wickr/latest/adminguide/what-is-wickr.html) do Usuário do [AWS Wickr.](https://docs.aws.amazon.com/wickr/latest/userguide/what-is-wickr.html)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Autoescalador de cluster Kubernetes (opcional)
<a name="kubernetes-cluster-autoscaler"></a>

O Kubernetes Cluster Autoscaler é um valor de configuração opcional para a instalação do Wickr Enterprise. Isso ajudará a escalar seus grupos de nós do Kubernetes no caso de aumento de tráfego ou outras restrições de recursos que possam levar a um desempenho ruim.

A instalação do Wickr Enterprise oferece suporte a três integrações de provedores de nuvem: AWS Google Cloud e Azure. **Cada provedor de nuvem tem requisitos diferentes para essa integração.** Siga as instruções abaixo para seu provedor de nuvem específico para ativar esse recurso.

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

Se você não usou o WickrEnterprise CDK para instalar seu ambiente Wickr AWS, precisará realizar algumas etapas adicionais para habilitar o autoescalador de cluster.

1. Adicione as seguintes tags aos seus grupos de nós. Isso permite que o autoescalador de cluster descubra automaticamente os nós apropriados.

   1. `k8s.io/cluster-autoscaler/clusterName = owned`onde **clusterName é o nome** do seu cluster Kubernetes

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

1. Adicione uma conta de serviço do Kubernetes no namespace kube-system e associe-a a uma política do IAM que permite escalonamento automático e ações ec2. Para obter mais informações e instruções detalhadas, consulte [Como configurar uma conta de serviço do Kubernetes para assumir uma função do IAM no](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) Guia do usuário do *Amazon* EKS.

   1. Você precisará usar o namespace 'kube-system' ao configurar a conta de serviço

   1. A política a seguir pode ser usada para a Conta de Serviço:

------
#### [ 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"
              }
          ]
      }
      ```

------

Na interface replicada, ao configurar o autoescalador de cluster, selecione **AWS**como seu provedor de nuvem e forneça o nome da conta de serviço que você criou acima para instruir o autoescalador de cluster a utilizar essa conta de serviço.

## Nuvem do Google
<a name="google-cloud"></a>

É altamente recomendável usar os recursos integrados de escalonamento automático do GKE tanto para o piloto automático quanto para os clusters padrão. No entanto, se você quiser continuar com essa integração, os seguintes requisitos devem ser atendidos antes de continuar.

**Requisitos:**

1. Os grupos de instâncias gerenciadas (MIG) devem ser criados com o escopo de segurança, incluindo no mínimo “leitura/gravação” nos recursos do Compute Engine. Atualmente, isso não pode ser adicionado ao MIG posteriormente.

1. O cluster deve ter a Federação de Identidade de Carga de Trabalho ativada. Você pode habilitar isso em um cluster existente executando: `gcloud container clusters update ${CLUSTER_NAME} --workload-pool=${PROJECT_ID}.svc.id.goog`

1.  Uma conta de serviço do Google Cloud Platform (GCP) com acesso à função `roles/compute.instanceAdmin.v1`. Isso pode ser criado usando estas instruções:

```
# 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>

O Azure Kubernetes Service (AKS) fornece escalonamento automático de cluster integrado para a maioria das implantações e é altamente recomendável utilizar esses métodos para escalonamento automático de clusters. No entanto, se seus requisitos forem tais que esses métodos não funcionem, fornecemos uma integração do Kubernetes Cluster Autoscaler para o Azure Kubernetes Service. Para utilizar essa integração, você precisará reunir as seguintes informações e colocá-las na configuração do painel de administração do KOTS em **Cluster Autoscaler** depois de selecionar o **Azure** como seu provedor de nuvem.

**Autenticação do**

**ID da assinatura**: A ID da assinatura pode ser obtida por meio do portal do Azure seguindo a documentação oficial. Para obter mais informações, consulte [Obter assinatura e inquilino IDs no portal do Azure](https://learn.microsoft.com/en-us/azure/azure-portal/get-subscription-tenant-id).

Os parâmetros a seguir podem ser obtidos criando um AD Service Principal usando o utilitário de linha de comando az.

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

ID do aplicativo:

Senha do cliente:

ID do inquilino:

**Configuração do escalonador automático de cluster do Azure**

Além dos requisitos de autenticação, os campos a seguir são necessários para o funcionamento adequado do autoescalador do cluster. Os comandos para obter essas informações foram fornecidos por conveniência, no entanto, eles podem exigir algumas modificações, dependendo da configuração específica do AKS.

**Grupo de Recursos de Nó Gerenciado do Azure**: Esse valor é o Grupo de Recursos Gerenciados criado pelo Azure quando você estabeleceu o Cluster AKS e não o Grupo de Recursos que você definiu. Para obter esse valor, você precisa do CLUSTER\_NAME e RESOURCE\_GROUP de quando você criou o cluster. Depois de ter esses valores, você pode obtê-los executando: 

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

**Nome do VMSS do Application Node Pool**: Esse é o nome do Virtual Machine Scaling Set (VMSS) associado ao seu AKS Nodepool para o aplicativo Wickr. Esse é o recurso que será ampliado ou reduzido com base nas necessidades do seu cluster. Para obter esse valor, você pode executar o seguinte comando **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 Nome do VMSS do Node Pool (opcional)**: Esse é o nome do VMSS associado à sua chamada Nodepool, se você tiver um. Para obter esse valor, você pode executar uma versão modificada do comando para Application Node Pool VMSS Name trocando o valor CLUSTER\_NODEPOOL\_NAME pelo nome do nodepool de sua chamada nodepool.