Kubernetes-Cluster-Autoscaler (optional) - Wickr Enterprise

Dieses Handbuch enthält Dokumentation für Wickr Enterprise. Wenn Sie AWS Wickr verwenden, finden Sie weitere Informationen im AWS Wickr Administration Guide oder im AWS Wickr User Guide.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Kubernetes-Cluster-Autoscaler (optional)

Kubernetes Cluster Autoscaler ist ein optionaler Konfigurationswert für die Wickr Enterprise-Installation. Er hilft Ihnen bei der Skalierung Ihrer Kubernetes-Knotengruppen im Falle eines erhöhten Datenverkehrs oder anderer Ressourceneinschränkungen, die zu einer schlechten Leistung führen könnten.

Die Wickr Enterprise-Installation unterstützt 3 Cloud-Provider-Integrationen: AWS, Google Cloud und Azure. Jeder Cloud-Anbieter hat unterschiedliche Anforderungen für diese Integration. Bitte folgen Sie den Anweisungen für Ihren spezifischen Cloud-Anbieter unten, um diese Funktion zu aktivieren.

AWS

Wenn Sie das nicht verwendet haben WickrEnterpriseCDK, um Ihre Wickr-Umgebung zu installieren AWS, müssen Sie einige zusätzliche Schritte ausführen, um den Cluster Autoscaler zu aktivieren.

  1. Fügen Sie die folgenden Tags zu Ihren Knotengruppen hinzu. Dadurch kann der Cluster Autoscaler die entsprechenden Knoten automatisch erkennen.

    1. k8s.io/cluster-autoscaler/clusterName = ownedwo clusterNameist der Name Ihres Kubernetes-Clusters

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

  2. Fügen Sie ein Kubernetes-Dienstkonto im Kube-System-Namespace hinzu und verknüpfen Sie es mit einer IAM Richtlinie, die Autoscaling- und EC2-Aktionen ermöglicht. Weitere Informationen und detaillierte Anweisungen finden Sie unter Konfiguration eines Kubernetes-Servicekontos für die Übernahme einer IAM Rolle im EKSAmazon-Benutzerhandbuch.

    1. Bei der Einrichtung des Servicekontos müssen Sie den Namespace „kube-system“ verwenden

    2. Die folgende Richtlinie kann für das Dienstkonto verwendet werden:

      { "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" } ] }

Wählen Sie in der replizierten Benutzeroberfläche bei der Konfiguration des Cluster-Autoscalers AWSals Ihr Cloud-Anbieter und geben Sie den Namen des Dienstkontos an, das Sie oben erstellt haben, um den Cluster Autoscaler anzuweisen, dieses Dienstkonto zu verwenden.

Google Cloud

Es wird dringend empfohlen, die integrierten Autoscaling-Funktionen sowohl GKE für Autopilot- als auch für Standard-Cluster zu verwenden. Wenn Sie jedoch mit dieser Integration fortfahren möchten, müssen die folgenden Anforderungen erfüllt sein, bevor Sie fortfahren können.

Voraussetzungen:

  1. Die verwalteten Instanzgruppen (MIG) müssen mit einem Sicherheitsbereich erstellt werden, der mindestens „Lesen/Schreiben“ für Compute Engine-Ressourcen umfasst. Dies kann derzeit nicht zu einem MIG späteren Zeitpunkt hinzugefügt werden.

  2. Für den Cluster muss Workload Identity Federation aktiviert sein. Sie können dies auf einem vorhandenen Cluster aktivieren, indem Sie Folgendes ausführen: gcloud container clusters update ${CLUSTER_NAME} --workload-pool=${PROJECT_ID}.svc.id.goog

  3. Ein Google Cloud Platform (GCP) -Dienstkonto mit Zugriff auf die Rolle `roles/compute. instanceAdmin.v1`. Dies kann mit diesen Anweisungen erstellt werden:

# 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) bietet integrierte Cluster-Autoskalierung für die meisten Bereitstellungen. Es wird dringend empfohlen, diese Methoden für die automatische Clusterskalierung zu verwenden. Wenn Ihre Anforderungen jedoch so sind, dass diese Methoden nicht funktionieren, haben wir eine Kubernetes Cluster Autoscaler-Integration für Azure Kubernetes Service bereitgestellt. Um diese Integration nutzen zu können, müssen Sie die folgenden Informationen sammeln und sie in der Konfiguration des KOTS Admin-Panels unter Cluster Autoscaler eingeben, nachdem Sie Azure als Ihren Cloud-Anbieter ausgewählt haben.

Azure-Authentifizierung

Abonnement-ID: Die Abonnement-ID kann über das Azure-Portal abgerufen werden, indem Sie der offiziellen Dokumentation folgen. Weitere Informationen finden Sie unter Abonnement und Mandant abrufen IDs im Azure-Portal.

Die folgenden Parameter können abgerufen werden, indem ein AD Service Principal mit dem az-Befehlszeilenprogramm erstellt wird.

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

App-ID:

Kunden-Passwort:

Mandanten-ID:

Konfiguration von Azure Cluster Autoscaler

Zusätzlich zu den Authentifizierungsanforderungen sind die folgenden Felder erforderlich, damit der Cluster-Autoscaler ordnungsgemäß funktioniert. Befehle zum Abrufen dieser Informationen wurden der Einfachheit halber bereitgestellt, sie können jedoch je nach Ihrer spezifischen AKS Konfiguration einige Änderungen erfordern.

Azure Managed Node Resource Group: Dieser Wert ist die verwaltete Ressourcengruppe, die von Azure erstellt wurde, als Sie den AKS Cluster eingerichtet haben, und nicht die Ressourcengruppe, die Sie definiert haben. Um diesen Wert zu erhalten, benötigen Sie CLUSTER _ NAME und RESOURCE _ GROUP aus dem Zeitpunkt, an dem Sie den Cluster erstellt haben. Sobald Sie diese Werte haben, können Sie sie abrufen, indem Sie Folgendes ausführen:

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

VMSSName des Anwendungsknotenpools: Dies ist der Name des Virtual Machine Scaling Sets (VMSS), das Ihrem AKS Nodepool für die Wickr-Anwendung zugeordnet ist. Dies ist die Ressource, die je nach den Anforderungen Ihres Clusters nach oben oder unten skaliert wird. Um diesen Wert zu erhalten, können Sie den folgenden az-Befehl ausführen:

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

ACallingVMSSName des Knotenpools (optional): Dies ist der Name des Nodepools, der mit Ihrem aufrufenden Nodepool VMSS verknüpft ist, falls Sie einen haben. Um diesen Wert zu erhalten, können Sie eine modifizierte Version des Befehls für den Namen des Anwendungsknotenpools ausführen und dabei den NAME Wert CLUSTER _ NODEPOOL _ als VMSS Namen des Nodepools für Ihren aufrufenden Nodepool ersetzen.