Kubernetes クラスターオートスケーラー (オプション) - Wickr エンタープライズ

このガイドでは、Wickr Enterprise のドキュメントを提供します。AWS Wickr を使用している場合は、「AWS Wickr 管理ガイド」または「AWS Wickr ユーザーガイド」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Kubernetes クラスターオートスケーラー (オプション)

Kubernetes Cluster Autoscaler は、Wickr Enterprise インストールのオプション設定値です。これにより、トラフィックの増加やその他のリソース制限によりパフォーマンスが低下する可能性がある場合に、Kubernetes ノードグループのスケーリングに役立ちます。

Wickr Enterprise のインストールでは、、Google Cloud AWS、Azure の 3 つのクラウドプロバイダー統合がサポートされています。この統合には、クラウドプロバイダーごとに異なる要件があります。この機能を有効にするには、以下の特定のクラウドプロバイダーの指示に従ってください。

AWS

WickrEnterpriseCDK を使用して Wickr 環境をインストールしなかった場合は AWS、Cluster Autoscaler を有効にするための追加のステップを実行する必要があります。

  1. ノードグループに次のタグを追加します。これにより、Cluster Autoscaler は適切なノードを自動検出できます。

    1. k8s.io/cluster-autoscaler/clusterName = owned ここで、clusterName は Kubernetes クラスターの名前です。

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

  2. Kubernetes サービスアカウントを kube-system 名前空間に追加し、自動スケーリングと ec2 アクションを許可する IAM ポリシーに関連付けます。詳細と詳細な手順については、「Amazon EKS ユーザーガイド」の「IAM ロールを引き受けるように Kubernetes サービスアカウントを設定する」を参照してください。

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

クラスターオートスケーラーを設定するときにレプリケートされた UI で、クラウドプロバイダーAWSとして を選択し、上記で作成したサービスアカウントの名前を指定して、そのサービスアカウントを使用するようにクラスターオートスケーラーに指示します。

Google クラウド

Autopilot クラスターと標準クラスターの両方で、GKE の組み込み Autoscaling 機能を使用することを強くお勧めします。ただし、この統合を続行する場合は、続行する前に次の要件を満たす必要があります。

要件:

  1. マネージドインスタンスグループ (MIG) は、コンピューティングエンジンリソースに対する少なくとも「読み取り/書き込み」を含むセキュリティスコープで作成する必要があります。これは、後で MIG に追加することはできません。

  2. クラスターでは、ワークロード ID フェデレーションが有効になっている必要があります。これを既存のクラスターで有効にするには、以下を実行します。 gcloud container clusters update ${CLUSTER_NAME} --workload-pool=${PROJECT_ID}.svc.id.goog

  3. ロール「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 Service (AKS) では、ほとんどのデプロイでクラスターの自動スケーリングが統合されているため、これらのメソッドをクラスターの自動スケーリングに使用することを強くお勧めします。ただし、これらのメソッドが機能しないような要件がある場合は、Azure Kubernetes Service 用の Kubernetes クラスターオートスケーラー統合を提供しています。この統合を利用するには、クラウドプロバイダーとして Azure を選択した後、次の情報を収集し、Cluster Autoscaler の下の KOTS 管理パネルの設定に配置する必要があります。

Azure 認証

サブスクリプション ID: サブスクリプション ID は、公式ドキュメントに従って Azure ポータルから取得できます。詳細については、Azure ポータルの「サブスクリプションとテナント IDs」を参照してください。

次のパラメータは、az コマンドラインユーティリティを使用して AD サービスプリンシパルを作成することで取得できます。

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ノードプール VMSS 名 (オプション): これは、呼び出し元ノードプールに関連付けられている VMSS がある場合はその VMSS の名前です。この値を取得するには、呼び出し元のノードプールのノードプールの名前の CLUSTER_NODEPOOL_NAME 値を切り替えて、Application Node Pool VMSS Name の コマンドの修正バージョンを実行できます。