Kubernetes、パートIV、自動スケーリングを学んでください
10158 ワード
私に従って、トピックや改善についてのご提案を取るに満足
この部分では、Kubernetes、いくつかの歴史と展開、ノード、ポッドのような基本的な概念の理由を説明します.
この部分では、ポッドとノードの知識を深める.また,ラベルを用いたサービスやラベルを紹介し,アーティファクトを問い合わせる.
この部分では、所望の状態を用いてスケーリングを見る.私たちはどのように多くのポッドを指定し、Kubernetesはあなたのポッドは、所望の数にスケールアップされていることを確保するための重荷を行うことができますが、また、それを維持することを指定して何かを使用して自己治癒と呼ばれる. Part IV -オートスケーリング この記事では、次のように説明します
オートスケーリングについては、望ましい状態で静的に定義するよりもオートスケーリングに依存するように、異なるシナリオを議論します
どのように、我々は弾力的な方法でスケールすることができます概念/機能を水平方向の自動スケーリングについて話すことができます.
Let -レッツスケール、我々は実際にどのようにこれを設定する方法を見て
資源
Horizontal Pod Auto scale これは、すべてがどのように働くかについて詳細に説明します.フローとAPIレベル
Free Azure Account あなたがAK、Azure Kubernetesサービスを試してみたいならば、あなたは無料のAzure口座を必要とします
Kubernetes.io
Kubernetesについて学ぶ最良のリソースの一つは、Googleによる公式公式Kubernetesサイトです.
Kubernetes overview Kubernetesのすべての部分とその仕組みの概観
Kubernetes in the Cloud あなたはKubernetesについてのすべてを知っていると感じるだけで管理サービスを使用する方法を学びたいですか?次に、このリンクはあなたのためです
Documentation on AKS, Azure Kubernetes Service
Azure Kubernetesサービス,管理されたKubernetes
Best practices on AKS あなたはすでにAKを知っているし、どのようにそれを使用する方法を学びたいですか?
なぜでしょう
それで、我々の最後の部分で、我々は望ましい状態について話しました.何か予期せぬ出来事が起こるまで、それはOK戦略です、そして、突然、あなたは交通の大きな流入を得ました.これは、人気のイベントにチケットをリリースするときに大きな販売やチケットベンダーの周りの電子商取引などのビジネスに発生する可能性があります.
これらのようなイベントは、すぐにスケールアップすることを強制異常です.コインの反対側は、しかし、いくつかの時点でスケールダウンする必要がありますか、突然あなたが支払う必要があります大容量を持っている.あなたが本当に望むものはスケーリングのために弾力的な方法で行動するので、それがあなたがそれを必要とするときスケールアップして、より少ない交通があるとき、縮小します.
ハウ
水平自動スケーリング、それは何を意味しますか?
それは、我々が必要とするポッドの数を縮めることができるKubernetesの概念です.それはそうすることができます
それは2つの部分から成ります
複製の数を決定する基礎となるアルゴリズムは次のようになります.
レット・スケール
OK、まず最初に必要なのは、展開した展開を希望の状態以外のものを使うようにすることです.
オートスケーリングを行うときには、二つのことを指定する必要があります.
min/max ,我々はどのように多くのポッドに関して最小と最大を定義する
CPUは、このバージョンでは、特定のCPUの利用率を設定します.それが上に行くとき、それは必要に応じて拡大します.これを考える
設定する
スケーリング実験を試みる前に、正しいアドオンが有効になっていることを確認する必要があります.簡単に入力を有効にすることができます.
それが上記のように見えるならば、我々はすべて良いです.なぜ私はそれを言っていますか?さて、我々が必要とするものは、自動スケールができるために、それです
Hapsterはコンテナクラスタ監視と性能解析を可能にする
メトリクスサーバーは、リソースメトリクスAPI経由でメトリクスを提供します.水平のポッドAutoscalerは、メトリックを集めるために、このAPIを使用します
以下のコマンドを簡単に有効にすることができます(正しいデータを表示するオートスケーリングを行う必要があります).
実験の実行
我々は実験を実行するために以下を行う必要がある
展開の作成
自動スケーリング
着信要求で配備を破棄する
オートスケーリングを見る
num展開を作成する
オートスケーリング
次にコマンドを使います
要求による爆撃
次のステップは、展開に対する要求のトンを送信し、その作業を行う私たちの自動スケーリングを参照してくださいです.では、どうやってそれを行うのですか?
まず最初に、私たちの水平方向のポッドオートスケーラーまたは
以上が2つの情報を示している.第一は
次のトリックは、別のターミナルのタブを開きます.我々は、我々は要求のトンを送信できるように物事を設定することです.
次に、このコマンドを使用してコンテナを作成します.
これは、あなたがヒットするまでに行く
これは、2010年に要求にトンを投げる
しかし、自動スケーリングが起こることができるように、我々はほんの少しの間それを実行するだけです.はい、CPUはたくさん聞こえますが、心配しないでください.
次のコマンドを最初の端末のタブに入力してください.
上記のコラムからわかるように
今すぐ2番目の端末に行くとヒット
それは実際にクールにオフにKubernetesの数分かかるし、正常に戻って値を取得します.ポッド状況の最初の観察は、我々に以下を示します
見ることができるように、我々は7つのポッドを持っていて、まだ走っています、しかし、1分か2分を待ちましょう、そして、それはこれのように見えなければなりません:
を、今は正常に戻っています.
概要
今この記事ではいくつかの素晴らしいものをしました.私たちは、自動スケーリングを設定し、リクエストでそれを爆撃しました.
私たちはまた、いくつかの新しいKubernetesコマンドを学ぶことができたし、私たちの仕様に基づいて新しいポッドを与える仕事で自動スケーリングを見て得た.
This fourth part aims to show you how you can utilize auto-scaling as your scaling strategy. We've shown you scaling with a desired state but this is probably even more powerful
この部分では、Kubernetes、いくつかの歴史と展開、ノード、ポッドのような基本的な概念の理由を説明します.
この部分では、ポッドとノードの知識を深める.また,ラベルを用いたサービスやラベルを紹介し,アーティファクトを問い合わせる.
この部分では、所望の状態を用いてスケーリングを見る.私たちはどのように多くのポッドを指定し、Kubernetesはあなたのポッドは、所望の数にスケールアップされていることを確保するための重荷を行うことができますが、また、それを維持することを指定して何かを使用して自己治癒と呼ばれる.
オートスケーリングについては、望ましい状態で静的に定義するよりもオートスケーリングに依存するように、異なるシナリオを議論します
どのように、我々は弾力的な方法でスケールすることができます概念/機能を水平方向の自動スケーリングについて話すことができます.
Let -レッツスケール、我々は実際にどのようにこれを設定する方法を見て
kubectl
そして、着信リクエストのトンをシミュレートします.その後、結果を検証し、Kubernetesは我々が考える方法を行うことを参照してください資源
Horizontal Pod Auto scale これは、すべてがどのように働くかについて詳細に説明します.フローとAPIレベル
Free Azure Account あなたがAK、Azure Kubernetesサービスを試してみたいならば、あなたは無料のAzure口座を必要とします
Kubernetes.io
Kubernetesについて学ぶ最良のリソースの一つは、Googleによる公式公式Kubernetesサイトです.
Kubernetes overview Kubernetesのすべての部分とその仕組みの概観
Kubernetes in the Cloud あなたはKubernetesについてのすべてを知っていると感じるだけで管理サービスを使用する方法を学びたいですか?次に、このリンクはあなたのためです
Documentation on AKS, Azure Kubernetes Service
Azure Kubernetesサービス,管理されたKubernetes
Best practices on AKS あなたはすでにAKを知っているし、どのようにそれを使用する方法を学びたいですか?
なぜでしょう
それで、我々の最後の部分で、我々は望ましい状態について話しました.何か予期せぬ出来事が起こるまで、それはOK戦略です、そして、突然、あなたは交通の大きな流入を得ました.これは、人気のイベントにチケットをリリースするときに大きな販売やチケットベンダーの周りの電子商取引などのビジネスに発生する可能性があります.
これらのようなイベントは、すぐにスケールアップすることを強制異常です.コインの反対側は、しかし、いくつかの時点でスケールダウンする必要がありますか、突然あなたが支払う必要があります大容量を持っている.あなたが本当に望むものはスケーリングのために弾力的な方法で行動するので、それがあなたがそれを必要とするときスケールアップして、より少ない交通があるとき、縮小します.
ハウ
水平自動スケーリング、それは何を意味しますか?
それは、我々が必要とするポッドの数を縮めることができるKubernetesの概念です.それはそうすることができます
replication controller
, deployment
or replica set
. 通常はCPU利用を見るが、何かを使用して他のものを見るために作ることができるcustom metrics support
, それで、それはカスタマイズ可能です.それは2つの部分から成ります
resource
とcontroller
. The controller
レプリカの数があなたの仕様に合っていることを確認するために、あなたが決めたメトリックをチェックします.必要があればもっとポッドをスピンしたり、削除します.デフォルトは15
秒が、フラグを見て変更することができますと呼ばれる--horizontal-pod-autoscaler-sync-period
. 複製の数を決定する基礎となるアルゴリズムは次のようになります.
desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]
レット・スケール
OK、まず最初に必要なのは、展開した展開を希望の状態以外のものを使うようにすることです.
オートスケーリングを行うときには、二つのことを指定する必要があります.
min/max ,我々はどのように多くのポッドに関して最小と最大を定義する
CPUは、このバージョンでは、特定のCPUの利用率を設定します.それが上に行くとき、それは必要に応じて拡大します.これを考える
IF
節の値より大きい場合、設定する
スケーリング実験を試みる前に、正しいアドオンが有効になっていることを確認する必要があります.簡単に入力を有効にすることができます.
minikube addons list
それが上記のように見えるならば、我々はすべて良いです.なぜ私はそれを言っていますか?さて、我々が必要とするものは、自動スケールができるために、それです
heapster
and metrics-server
アドオンが有効になります.Hapsterはコンテナクラスタ監視と性能解析を可能にする
メトリクスサーバーは、リソースメトリクスAPI経由でメトリクスを提供します.水平のポッドAutoscalerは、メトリックを集めるために、このAPIを使用します
以下のコマンドを簡単に有効にすることができます(正しいデータを表示するオートスケーリングを行う必要があります).
minikube addons enable heapster
andminikube addons enable metrics-server
もう一つのことをする必要があるenable
カスタムメトリックを開始することによってminikube
このようなフラグでminikube start --extra-config kubelet.EnableCustomMetrics=true
OK、今私たちは行くのが良いです.実験の実行
我々は実験を実行するために以下を行う必要がある
展開の作成
自動スケーリング
着信要求で配備を破棄する
オートスケーリングを見る
num展開を作成する
kubectl run php-apache --image=k8s.gcr.io/hpa-example --requests=cpu=200m --expose --port=80
上記の展開を作成しますphp-apache
ポートのサービスとして公開する80
. 我々は、我々がイメージを使っているのを見ることができますk8s.gcr.io/hpa-example
次のように教えてください.service/php-apache created
deployment.apps/php-apache created
オートスケーリング
次にコマンドを使います
autoscale
. 以下のように使います:kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
次のようにしてください.horizontalpodautoscaler.autoscaling/php-apache autoscaled
上記では、展開に自動スケーリングを適用していますphp-apache
そして、あなたが見ることができるようにmin-max
and cpu
自動スケーリングによって、オートスケーリングがどのように行われるかについての規則を与えます.If CPU load is
>= 50%
create a new Pod, but only maximum 10 Pods. If the load is low go back gradually to one Pod
要求による爆撃
次のステップは、展開に対する要求のトンを送信し、その作業を行う私たちの自動スケーリングを参照してくださいです.では、どうやってそれを行うのですか?
まず最初に、私たちの水平方向のポッドオートスケーラーまたは
hpa
以下のように入力します.kubectl get hpa
これは以下のようになります.以上が2つの情報を示している.第一は
TARGETS
我々のCPU利用を示すコラム.actual usage/trigger value
. 次のビットはカラムですREPLICAS
それはコピー数を示しています1
現時点で.次のトリックは、別のターミナルのタブを開きます.我々は、我々は要求のトンを送信できるように物事を設定することです.
次に、このコマンドを使用してコンテナを作成します.
kubectl run -i --tty load-generator --image=busybox /bin/sh
これは、コンテナ内のプロンプトに私たちを取る必要があります.これに続いてwhile true; do wget -q -O- http://php-apache.default.svc.cluster.local; done
上記のコマンドは、このように見えます.これは、あなたがヒットするまでに行く
CTRL+C
, しかし、それは現在のままにします.これは、2010年に要求にトンを投げる
while true
ループ.I thought
while true
loops were bad?
しかし、自動スケーリングが起こることができるように、我々はほんの少しの間それを実行するだけです.はい、CPUはたくさん聞こえますが、心配しないでください.
次のコマンドを最初の端末のタブに入力してください.
kubectl get hpa
次のように表示します.上記のコラムからわかるように
TARGETS
ルックス別と今言う339%/50%
これはCPU上の現在の負荷とREPLICAS
is 7
それは1から7のレプリカに行ったことを意味します.あなたが見ることができるように、我々はそれをとても激しく爆撃していました.今すぐ2番目の端末に行くとヒット
CTRL+C
または、このような状況になります.それは実際にクールにオフにKubernetesの数分かかるし、正常に戻って値を取得します.ポッド状況の最初の観察は、我々に以下を示します
kubectl get pods
見ることができるように、我々は7つのポッドを持っていて、まだ走っています、しかし、1分か2分を待ちましょう、そして、それはこれのように見えなければなりません:
を、今は正常に戻っています.
概要
今この記事ではいくつかの素晴らしいものをしました.私たちは、自動スケーリングを設定し、リクエストでそれを爆撃しました.
私たちはまた、いくつかの新しいKubernetesコマンドを学ぶことができたし、私たちの仕様に基づいて新しいポッドを与える仕事で自動スケーリングを見て得た.
Reference
この問題について(Kubernetes、パートIV、自動スケーリングを学んでください), 我々は、より多くの情報をここで見つけました https://dev.to/azure/kubernetes-from-the-beginning-part-iv-autoscaling-54l6テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol