Kubectl オートスケールとは何ですか?
自動スケーリングは Kubernetes クラスターの主な機能であり、手動で行う手間をかけずにリソースを自動的に更新します。要求の厳しいリソースを手動で更新するのは、非常に時間とリソースを浪費するプロセスです。 Kubernetes 自動スケーリングは、リソースを最適化するための自動機能を提供します。
オートスケーラーは、要件に応じてノードの数を作成および破棄できます。自動スケールにより、リソースの無駄が削減されます。 Kubectl 自動スケールは、Kubernetes クラスター内で現在実行されているポッドを自動的に選択します。
スケーリングには、(1) 水平スケーラーと (2) 垂直スケーラーの 2 種類があります。水平スケーラーは垂直スケーラーとは異なります。 horizontalPodScaler は、必要に応じてポッドを増減するのに役立ちます。一方、垂直スケーラーは CPU やメモリなどのリソースを使用します。
ここでは、システムで実行できるすべての手順を示し、出力を確認して理解を深めます。
ステップ 1: Minikube クラスターの開始
最初のステップでは、minikube ツールを起動して Kubernetes クラスターを実行し、「kubectl autoscale」コマンドを実行できるようにします。 minikube クラスターを使用して、Kubernetes 環境でノード、ポッド、さらにはクラスターをセットアップできます。これを行うには、次のコマンドを使用して minikube をアクティブ モードに保ちます。
~$ ミニキューブを開始する
次の出力スクリーンショットでわかるように、このコマンドは minikube クラスターを有効にし、Kubernetes 環境を使用できるようにします。
ステップ 2: ポッドの詳細を取得する
このステップでは、Kubernetes クラスターは正常に実行されています。ここで、クラスター内のポッドの詳細を取得します。 Kubernetes のポッドは、リソースを共有するユニットの集合です。 minikube クラスターで次のコマンドを実行すると、次のスクリプトが実行されます。
~$ kubectl ポッドを取得する前述のコマンド「kubectl get pods」を使用すると、Kubernetes クラスターで実行されているすべてのポッドのリストを取得できます。
「get pods」コマンドを実行すると、次の出力が得られます。
ステップ 3: ポッドのデプロイメントを取得する
前の「kubectl get pods」コマンドでは、ポッドの詳細を取得しました。次に、「getdeployment」コマンドを使用して、作成されたデプロイメントのリストを取得します。この目的のために次のスクリプトが実行されます。
~$ kubectl のデプロイメントの取得コマンドを実行した後の、次のスクリーンショットは出力を示しています。
ステップ 4: 自動スケール展開
autoscale コマンドは、クラスター内で実行されるポッドの自動選択を行うために使用されます。クラスターに自動スケールをデプロイすることにより、いくつかのノードが自動的に挿入および終了されます。次のスクリプトは minikube クラスターで実行され、ファイル名、最小ポッド数、最大ポッド数 (ポッドは 2 ~ 10 の間である必要がある) を表示します。
~$ kubectl 自動スケーリング デプロイメント nginx1-deployment1 --分 = 2 --最大 = 10コマンドを実行すると、次の出力が生成されます。
ステップ 5: Kubernetes YAML ファイルを作成する
このステップでは、クラスター内に YAML ファイルを作成する方法を学習します。 YAML ファイルは、デプロイメントとアプリケーションのテストに役立ちます。 Kubernetes には、ファイルを作成および編集するためのさまざまな種類があります。
この記事では、「nano」コマンドを使用して YAML ファイルを作成します。これが最も簡単な方法であり、初心者にとって最適な方法であるためです。
ここで指定された手順に従って、nano を使用して YAML ファイルを作成します。
- 新しいファイルを作成するか、既存のファイルを変更するには、目的のディレクトリの場所に移動します。
- 「ナノ」と入力します。その後、ファイル名を書きます。たとえば、新しいファイル名を作成する場合は、「deploo.yaml」という名前を書き留めます。
次のスクリプトを実行し、プロジェクト ディレクトリに YAML ファイルを作成します。
~$ nano deploo.yaml「deploo.yaml」ファイルを作成したら、次のステップは YAML ファイルを構成することです。次のステップで説明します。
ステップ 6: YAML ファイルの内容
このステップでは、Apache サーバーと PHP ファイルを簡単に構成できます。 horizontalPodScaler を使用する前に、ワークロード モニターを構成する必要があります。次のコードに kind:deployment が示されているように、Web ブラウザのポートは 90、CPU 制限は 200m です。
「deploo.yaml」ファイルの完全な情報はここで確認できます。
APIバージョン : アプリ/v1親切 : 導入
metadata :
名前 : php
スペック :
セレクタ :
マッチラベル :
走る : php-apache
レンプレート :
metadata :
ラベル :
走る : php-apache
スペック :
コンテナ :
- 名前 : php
画像 : registry.k8s.io/hpa-example
ポート :
- コンテナポート : 90
資力 :
限界 :
CPU : 200m
リクエスト :
CPU : 100メートル
---
APIバージョン : v1
親切 : サービス
metadata :
名前 : php
ラベル :
走る : php-apache
スペック :
ポート :
- ポート : 70
セレクタ :
走る : php-apache
ステップ 7: デプロイメントを作成する
このステップでは、「deploo.yaml」という名前の YAML ファイルを作成しましょう。次のスクリプトは minikube クラスターで実行されます。
~$ kubectl create -f deploo.yaml実行した前述のコマンドの出力は、次のスクリーンショットで確認できます。出力は、YAML ファイルが作成されたことを示します。
ステップ 8: horizontalPodScaler を作成する
このステップでは、horizontalPodAutoscaler を作成するコマンドを示します。ポッドは、要求に応じて自動的に挿入および終了されます。これは、CPU とメモリのリソースが自動スケールによって割り当てられる垂直スケーリングとは異なります。次のスクリプトは minikube クラスターで実行されます。
~$ kubectl 自動スケーリング デプロイメント php -- CPU - パーセント = 50 -- 分 = 10 –最大 = 二十ここでは、最小値と最大値の値を 10 と 20 に設定していることがわかります。
前のコマンドの出力を添付します。
ステップ 9: horizontalPodScaler を確認する
このステップでは、新しく作成した horizontalPodAutoscaler の現在の状態を確認します。次のコマンドが実行されます。
~$ kubectl は HPA を取得します結論
Kubernetes の最も便利な機能の 1 つは、Kubernetes クラスター内のリソースの自動更新を提供する「kubectl autoscale」です。オートスケーラーは、クラスターでポッドを増やす必要がある場合、またはポッドを減らす必要がある場合に役立ちます。この記事では、2 つの自動スケール方法について学びました。1 つはデフォルトのオートスケーラーで、もう 1 つは horizontalPodScaler です。
まず、ポッドをデプロイして宣言しました。次に、オートスケーラーを作成し、horizontalPodScaler の前にワークロード モニターをデプロイするように Apache サーバーを構成しました。その後、YAML ファイルと horizontalPodScaler を作成しました。この記事では、自動スケール Kubernetes の作成、構成、デプロイの詳細な手順に焦点を当てました。