【クラウドネイティブ】K8s PodスケジュールドエラスティックスケーリングCronhpaの導入と実践運用

【クラウドネイティブ】K8s PodスケジュールドエラスティックスケーリングCronhpaの導入と実践運用

1. 概要

実際、ネイティブ HPA は時間ポイントに基づくスケーリングをサポートしていません。リソースに基づくスケーリングは正確に制御できないため、時間ポイントに基づくスケーリングは、いくつかのシナリオでは非常に実用的です。たとえば、ビッグデータの分野では、タスクを実行する期間は一般的に明確です。このように、タスクの実行期間に基づいてポッドをスケーリングできるため、リソースの使用量を非常に正確に制御できます。この記事では主にAlibabaのオープンソース製品であるkubernetes-cronhpa-controllerについて紹介します。 kubernetes-cronhpa-controller は、crontab のようなソリューションを使用する Kubernetes cron 水平 Pod 自動スケーリング コントローラーです。 CronHorizo​​ntalPodAutoscaler は、スケール サブリソース (Deployment や StatefulSet など) をサポートする Kubernetes で定義されたあらゆる種類のオブジェクトで使用できます。

GitHub アドレス: https://github.com/AliyunContainerService/kubernetes-cronhpa-controller

k8s 環境のデプロイメントについては、「クラウドネイティブ」Kubernetes (k8s) 環境デプロイメントの最も完全なバージョン (V1.24.1) を参照してください。

ネイティブ HPA とその使用方法の概要については、次の記事を参照してください: [クラウド ネイティブ] K8s ポッドの動的弾性拡張と収縮 HPA (metrics-server)

2. cronhpaのインストール

 # ダウンロード
https://github.com/AliyunContainerService/kubernetes-cronhpa-controller.gitをクローンします

# 1. CRDをインストールする
# k8s < v1.22
#kubectl apply -f config / crds / autoscaling .alibabacloud .com_cronhorizo ​​ntalpodautoscalers .yaml
# k8s >= v1.22
kubectl apply -f config / crds / autoscaling .alibabacloud .com_cronhorizo​​ntalpodautoscalers .v1 .22 .yaml

# 2. RBAC設定をインストールする
kubectl apply -f config / rbac / rbac_role.yaml
kubectl apply -f config / rbac / rbac_role_binding.yaml

# 3. Kubernetes - cronhpa -コントローラーをデプロイする
kubectl apply -f config /デプロイ/ deploy.yaml

# 4 、インストールの確認
kubectl get deploy kubernetes - cronhpa -コントローラー- n kube -システム- o ワイド

3. テスト検証

 ---
apiVersion : apps / v1 # 1.8.0より前のバージョンの場合は、apps / v1beta1 を使用します
種類:デプロイメント
メタデータ:
名前: nginx -デプロイメント-基本
ラベル:
アプリ: nginx
仕様:
レプリカ 2
セレクター:
マッチラベル:
アプリ: nginx
テンプレート
メタデータ:
ラベル:
アプリ: nginx
仕様:
コンテナ:
-名前: nginx
image : nginx : 1.7 .9 # 正確に< image_name : tags >に置き換えてください
ポート:
-コンテナポート: 80
---
apiバージョン: autoscaling .alibabacloud .com / v1beta1
種類: Cronhorizo​​ntalPodAutoscaler
メタデータ:
ラベル:
コントローラーツール.k8s.io : " 1.0 "
名前: cronhpa -サンプル
仕様:
スケールターゲット参照:
apiバージョン:アプリ/ v1
種類:デプロイメント
名前: nginx -デプロイメント-基本
求人:
-名前 「スケールダウン」
schedule : "30 */1 * * * *" # 秒、分、時間、日、月、週。Linux crontab よりも細かく、秒単位まで指定できます。容量は30秒ごとに減少します。
targetSize : 1 # 容量を1ポッドに減らす
-名前 「スケールアップ」
スケジュール: "01 */1 * * * *" # 毎分最初の1秒に1回容量を拡張します
targetSize : 3 # 3つのポッドに拡張

埋め込む

 kubectl apply -f/ deploy_cronhpa.yaml
kubectl ポッドを取得しデプロイする

# cronhpa を表示
kubectl describe cronhpa cronhpa -サンプル

導入と使用は非常に簡単で、理解するのも非常に簡単です。実際、実装するのは難しくありません。 crontab を自分で書くこともできますが、それほど良くはありません。機能はシンプルですが、非常に実用的です。

<<:  ガートナー分析: 2023 年の IT インフラストラクチャのトレンド

>>:  優れたクラウド戦略に関してCIOが犯しがちな間違い

推薦する

tmhhost: フィリピンサーバー、1456元/e3-1230v3/8gメモリ/1Tハードディスク/20M帯域幅

tmhhost はフィリピンで独立したサーバー サービスを提供しています。サーバーはフィリピンの P...

SEO最適化におけるキーワードとフレンドリーリンクの柔軟な使用

1:自己評価。ウェブサイトを構築してから 3 年以上経ちますが、私たちはローカルのオンサイト プロモ...

分散データベースの OpenHarmony ソースコード分析

[[440154]]詳細については、以下をご覧ください。 51CTOとHuaweiが共同で構築したH...

A5ウェブマスターネットワーク第1期地域ウェブサイト運営基礎研修コース受講生募集

トレーニング序文:ウェブマスターはあと何回迂回しなければならないのでしょうか?中国のインターネットで...

最適なSEO会社を選ぶ方法

SEO 初心者の友人の多くは、一定期間ウェブサイトの SEO に取り組んできましたが、どれだけ努力し...

virpus-25% オフ/$5.25/Xen/1G メモリ/30g SSD/3T トラフィック/シアトル/Windows

wowrack が所有する Virpus は、サイトの Linux [XEN PV] および Win...

出典を遡って百度体験が伝説的な高品質の外部リンクであるかどうかを分析する

百度百科事典は、百度が2010年に立ち上げた新しいプラットフォームで、主に生活、仕事、勉強で遭遇した...

テンセントRhino-Birdオープンソース人材育成プログラムがリリースされ、国内オープンソースエコシステムの発展に貢献

テンセントは5月30日、2022年Rhino-Birdオープンソース人材育成プログラムを正式に開始し...

Google への不安定な掲載の原因分析

Fuqing SEO は、皆様のお役に立てればと願って、Google の包含の不安定性について 5 ...

budgetvm-22% 割引コード/すべての VPS および専用サーバー/新しい中国語ウェブサイト

Budgetvmのカスタマーサービスから、中国の顧客向けに特別なウェブサイトを開発し、2つの特別割引...

Python で Apache Kafka を使いこなすために知っておくべき 3 つのライブラリ

データは世界に力を与えます。私たちは毎秒大量の情報を取得し、それを整理して分析し、ログ ファイル、ユ...

Kubernetes でのコンテナ検出について理解していますか?

1. 概要コンテナ検出は、コンテナ内のアプリケーション インスタンスが適切に動作しているかどうかを検...

Baiduのスナップショット苦情が効果的かどうかについての簡単な議論

今日は、Baidu スナップショットに対する苦情が効果的かどうかについて議論しましょう。多くのウェブ...