次の方法で共有


(非推奨)Kubernetes ポッドと Kubernetes インフラストラクチャのスケーリング

ヒント

Azure Kubernetes Service を使用するこのチュートリアルの更新バージョンについては、「 チュートリアル: Azure Kubernetes Service (AKS) でアプリケーションをスケーリングする」を参照してください。

警告

Azure Container Service (ACS) は非推奨です。 ACS に新しい機能が追加されることはありません。 すべての API、ポータル エクスペリエンス、CLI コマンド、およびドキュメントは非推奨としてマークされます。

2017 年には、Kubernetes の管理、デプロイ、および操作を簡略化するための Azure Kubernetes Service (AKS) が導入されました。 Kubernetes オーケストレーターを使用する場合は、2020 年 1 月 31 日までに AKS に移行してください。 まずは、Azure Kubernetes Service への移行に関するページを参照してください。

詳細については、Azure.com で Azure Container Service の非推奨化に関するお知らせを参照してください。

チュートリアルに従っている場合は、Azure Container Service に動作する Kubernetes クラスターがあり、Azure Voting アプリをデプロイしました。

このチュートリアルでは、7 つのパート 5 で、アプリでポッドをスケールアウトし、ポッドの自動スケールを試します。 また、Azure VM エージェント ノードの数をスケーリングして、ワークロードをホストするためのクラスターの容量を変更する方法についても説明します。 完了したタスクは次のとおりです。

  • Kubernetes ポッドの手動スケーリング
  • アプリケーションのフロントエンドを実行するオートスケールポッドの設定
  • Kubernetes Azure エージェント ノードをスケーリングする

以降のチュートリアルでは、Azure Vote アプリケーションが更新され、Kubernetes クラスターを監視するように Log Analytics が構成されます。

開始する前に

前のチュートリアルでは、アプリケーションがコンテナー イメージにパッケージ化され、このイメージが Azure Container Registry にアップロードされ、Kubernetes クラスターが作成されました。 その後、アプリケーションは Kubernetes クラスターで実行されました。

これらの手順を実行していない場合は、「 チュートリアル 1 – コンテナー イメージを作成する」に戻ります。

ポッドを手動でスケーリングする

ここまで、Azure Vote フロントエンドと Redis インスタンスは、それぞれ 1 つのレプリカでデプロイされています。 確認するには、 kubectl get コマンドを実行します。

https://shell.azure.com にアクセスし、お使いのブラウザーで Cloud Shell を開きます。

kubectl get pods

アウトプット:

NAME                               READY     STATUS    RESTARTS   AGE
azure-vote-back-2549686872-4d2r5   1/1       Running   0          31m
azure-vote-front-848767080-tf34m   1/1       Running   0          31m

azure-vote-front コマンドを使用して、 デプロイ内のポッドの数を手動で変更します。 この例では、数値を 5 に増やします。

kubectl scale --replicas=5 deployment/azure-vote-front

kubectl get ポッドを実行して、Kubernetes がポッドを作成していることを確認します。 1分ほど経つと、追加のポッドが稼働します。

kubectl get pods

アウトプット:

NAME                                READY     STATUS    RESTARTS   AGE
azure-vote-back-2606967446-nmpcf    1/1       Running   0          15m
azure-vote-front-3309479140-2hfh0   1/1       Running   0          3m
azure-vote-front-3309479140-bzt05   1/1       Running   0          3m
azure-vote-front-3309479140-fvcvm   1/1       Running   0          3m
azure-vote-front-3309479140-hrbf2   1/1       Running   0          15m
azure-vote-front-3309479140-qphz8   1/1       Running   0          3m

ポッドの自動スケーリング

Kubernetes では、 ポッドの水平自動スケーリングが サポートされ、CPU 使用率やその他の選択メトリックに応じてデプロイ内のポッドの数が調整されます。

自動スケーラーを使用するには、ポッドに CPU 要求と制限が定義されている必要があります。 azure-vote-frontデプロイでは、フロントエンド コンテナーは 0.25 CPU を要求します。CPU の上限は 0.5 です。 設定は次のようになります。

resources:
  requests:
     cpu: 250m
  limits:
     cpu: 500m

次の例では、 kubectl autoscale コマンドを使用して、 azure-vote-front デプロイ内のポッドの数を自動スケールします。 ここで、CPU 使用率が 50%を超える場合、自動スケーラーはポッドを最大 10 に増やします。

kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10

自動スケーラーの状態を確認するには、次のコマンドを実行します。

kubectl get hpa

アウトプット:

NAME               REFERENCE                     TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
azure-vote-front   Deployment/azure-vote-front   0% / 50%   3         10        3          2m

数分後、Azure Vote アプリの負荷が最小限に抑えられます。ポッド レプリカの数は自動的に 3 に減少します。

エージェントをスケーリングする

前のチュートリアルで既定のコマンドを使用して Kubernetes クラスターを作成した場合は、3 つのエージェント ノードがあります。 クラスターでコンテナー ワークロードを増減する計画を立てる場合は、エージェントの数を手動で調整できます。 az acs scale コマンドを使用し、--new-agent-count パラメーターを使用してエージェントの数を指定します。

次の例では、 myK8sCluster という名前の Kubernetes クラスター内のエージェント ノードの数を 4 に増やします。 コマンドの完了には数分かかります。

az acs scale --resource-group=myResourceGroup --name=myK8SCluster --new-agent-count 4

コマンド出力には、 agentPoolProfiles:countの値に含まれるエージェント ノードの数が表示されます。

{
  "agentPoolProfiles": [
    {
      "count": 4,
      "dnsPrefix": "myK8SCluster-myK8SCluster-e44f25-k8s-agents",
      "fqdn": "",
      "name": "agentpools",
      "vmSize": "Standard_D2_v2"
    }
  ],
...

次のステップ

このチュートリアルでは、Kubernetes クラスターのさまざまなスケーリング機能を使用しました。 対象となるタスクは次のとおりです。

  • Kubernetes ポッドの手動スケーリング
  • アプリケーションのフロントエンドを実行するオートスケールポッドの設定
  • Kubernetes Azure エージェント ノードをスケーリングする

次のチュートリアルに進み、Kubernetes でのアプリケーションの更新について学習します。