本番環境でKubernetesの大規模な管理を自動化する7つの方法

本番環境でKubernetesの大規模な管理を自動化する7つの方法

[51CTO.com クイック翻訳] Kubernetes オープンソース コンテナ オーケストレーション エンジンは管理プラットフォームではないので、管理プラットフォームと間違えないようにしてください。オーケストレーションのポイントは、自動化されたシステムを確実に有効にして、あらゆるステップで人間の介入を必要とせずに、大規模なアプリケーションの展開と管理を容易にすることです。 Kubernetes に使用するツールが自動化をサポートしていない場合、オーケストレーションのメリットを十分に活用できていません。

[[218766]]

そのために、本番環境の Kubernetes クラスターの管理を自動化する 7 つの方法を紹介します。

1. ログ

Kubernetes の本番環境は、ログに大きく依存します。 Kenzan では、通常、プラットフォーム ログとアプリケーション ログを分離するように努めています。これは、さまざまなツールやアプリケーションを通じて実行することも、ログ自体のフィルタリングやタグ付けを通じて実行することもできます。他の分散システムと同様に、ログは、異なるマイクロサービスを対象としている場合でも、特定の呼び出しを正確に追跡するための重要な証拠を提供し、根本原因を特定できるようにします。

2. 自己治癒

私たちは、自己修復機能がなければ、特に分散環境において、システムの高稼働率を達成することはほぼ不可能だと考えています。 Kubernetes は、ポッドとコンテナの状態を定期的に監視し、発生した問題を解決するために即座にアクションを実行できます。 Kubernetes が直接認識する 2 つのオブジェクト タイプは、ポッド ステータスとコンテナ ステータスです。

コンテナ プローブ (livenessProbe および readinessProbe) を使用すると、コンテナが稼働中であり準備ができているかどうかを Kubernetes で監視する方法を定義できます。準備プローブは、プローブが失敗した場合にポッドは実際に実行され続けるものの、トラフィックは渡されないため、特に便利です。

ただし、30 分ごとに再起動するなどの自己修復機能は便利ですが、アプリケーションの問題を隠す可能性もあることに注意してください。発生した問題を検出できるほど堅牢な監視およびログ記録機能が必要です。

3. 弾性テスト

アプリケーションの要件 (例: 99.999% の稼働時間) に応じて、耐障害性テストをプラットフォームの一部にする必要があります。アプリケーションのどのレベルでも障害が発生しても、ダウンタイムが発生しないように回復可能である必要があります。私たちの経験では、開発チームが開発作業に広範な耐性テストが行​​われることを事前に知っていれば、信頼性の高いアプリケーションを開発できる可能性が高くなります。

データベースを手動でシャットダウンしたり、ポッドをランダムに強制終了するなど、最も単純な手動の方法で回復力テストを実行することもできますが、私たちの経験では、これらの方法は自動化するとはるかに効果的であることがわかっています。 Netflix の Chaos Monkey は、Amazon Web Services で実行される非常に強力で非常に便利な回復力テスト ツールですが、Kubernetes 用に構築されたものではありません。幸いなことに、Kubernetes 分野では回復力テスト フレームワークが登場しており、そのうちの 2 つは fabric8 Chaos Monkey (fabric8 IDE の一部) と kube-monkey です。

4. 定期監査

チェックとバランスをいくつ導入したとしても、Kubernetes の運用環境は定期的なメンテナンスと監査の恩恵を受けることができます。定期的な監査では、通常の監視ではカバーされない領域もカバーされます。監査は従来、手作業で行われてきましたが、この分野の自動化ツールは急速かつ劇的に改善されています。

5. 自動スケーリング

Kubernetes の場合、スケーリングとは通常、次の 2 つのいずれかを意味します。

  • ポッドのスケーリング
  • クラスター内のノードのスケーリング

ポッドのスケーリングは、間違いなく最も一般的なスケーリング形式です。これにより、サービス インスタンスが追加され、トラフィックの受け入れを開始する準備が整います。通常、ポッドレベルのスケーリングは、Heapster メトリックを使用して実行され、新しいインスタンスを作成する必要があるかどうかが判断されます。私たちは通常、ポッドの最小数をかなり低く設定し、Kubernetes Horizo​​ntal Pod Autoscaler にレプリカの最小数を正しく設定させます。単一障害点のシナリオを回避するために、クラスターあたりのレプリカの最小数を常に 1 つより大きく設定します。

ノードのスケーリングは比較的まれなケースですが、回復力の高いアプリケーションにとっては非常に便利なスケーリング メカニズムです。ノードを拡張するには、基盤となる IaaS (AWS、GCP など) を拡張して Kubernetes クラスターに登録する必要があります。このプロセスは手動で実行できますが、推奨されません。通常、単一のノードを自動的にスケーリングできるツールを使用します。ノード レベルのオートスケーラーは、主に 2 つのアクションを実行します。1 つ目は、必要に応じてノードを追加すること、2 つ目は、十分に活用されていないノードを削除することです。

6. リソース割り当て

リソース クォータを使用すると、Kubernetes プラットフォーム内の名前空間を制限して、1 つのアプリケーションがすべてのリソースを占有して他のアプリケーションに影響を与えないようにすることができます。リソースクォータの設定は少し難しい場合があります。私たちの経験では、名前空間を予想される負荷で分割し、比率を使用してクラスターの割合を計算するのが最も安全です。 Heapster が実行中になったら、 kubectl top {node | を使用できます。 pod} コマンドは、現在のノードまたはポッドのリソース使用量を表示し、クォータの管理に役立つ場合があります。その後、監視と監査を使用して、パーティショニングが正しいかどうかを確認します。

7. コンテナリソースの制約

単一のコンテナまたはポッドに必要なリソースの数を把握することは、ある種の芸術になっています。これまで、開発チームは実際に必要なリソースよりもはるかに多くのリソースを見積もっていました。私たちは、ある程度の負荷テストを実行し、フェイルオーバーがどのように機能するかを観察し、リソースを適切に割り当てようとしています。 Netflix はこの方法を「スクイーズ テスト」と呼んでいます。

本番環境でKubernetesを大規模に自動化する7つの方法

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  クラスターとは何ですか?何が配布されますか? SOAとは何ですか?

>>:  中国SaaSアプリケーションカンファレンス、企業のデジタル変革への新たな道の開拓を支援

推薦する

#11.11# vpsms: US cn2 gia vps、32% オフ、Netflix のロックを解除するネイティブ IP、月額 48 元から、512M メモリ/1 コア/15g SSD/1T トラフィック

vpsmsは2周年を迎え、来たるダブル11に合わせて、vpsmsチームは米国ロサンゼルスのAncha...

#11.11# Yecao Cloud: 香港 VPS は年間 83 元から、香港専用サーバーは月額 199 元から (e3/16g/240gssd/30M 帯域幅)

Yecao Cloud は今年特別な Double Eleven プロモーションを開始しました。香港...

通話回数は2億回を突破!テンセントクラウドの公式音楽ライブラリへの直接アクセスが単一の製品を発売

1月22日、テンセントクラウドの「本物の音楽ライブラリへの直接アクセス」が単一製品の発売を発表した。...

alpharacks、VPS 年額 4 ドルからの支払い、x-tool、ロサンゼルス データ センター

Alpharacks から、特別年間 KVM VPS の最新バージョンと openvz ベースの安価...

有名なウイルス対策ソフトAvastがキーワードでブロックされた

有名な無料ウイルス対策ソフトウェア Avast のドメイン名が中国語のキーワードによってブロックされ...

高品質なユーザーエクスペリエンスは、ユーザーと仲良くなることを学ぶべきである

ユーザーエクスペリエンスに関して、多くの友人は、高品質のユーザーエクスペリエンスをどのように構築する...

コンテンツを充実させることで、eコマースサイトの売上が急上昇する可能性がある

eLongのような垂直型Eコマースサイトでも、TmallやJD.comのような総合型Eコマースサイト...

雲清未来智能信頼世界2023モバイルクラウドカンファレンスが盛大に開幕

4月25日から26日にかけて、2023モバイルクラウドカンファレンスが蘇州で盛大に開幕しました。 「...

クラウドネイティブコンピューティングは技術的負債を排除できますか?

[[415169]] [51CTO.com クイック翻訳]クラウド ネイティブ コンピューティングは...

JVMの構造を理解して、面接で自慢できるようにしましょう

[[286442]] JVM には、基本型と参照型の 2 種類のデータ型が含まれています。基本的な型...

オリジナル記事だけがランキングの基準ではない

最近、「自分のオリジナル記事は1位にならないのに、転載された自分の記事は1位になる」という声が増えて...

ウェブマスターがウェブサイトのトラフィック増加を効果的に維持する方法について簡単に説明します。

ウェブサイトにトラフィックがあるからといって、それが成功を意味するわけではなく、それは成功の始まりに...

マルチクラウドの世界におけるプライベートクラウドの役割

クラウド ファーストは現在、アプリケーションの近代化と移行の指針となっており、クラウド ネイティブは...

インテリジェントトランスフォーメーション·革新的な変化 l 専門家が集まりデジタルトランスフォーメーションについて議論

[51CTO.comより引用] 2020年は、新型コロナウイルス感染症の突然の流行だけでなく、それが...

ポストパンデミック時代、オラクルは技術革新を活用して人材管理をリードする

[51CTO.com からのオリジナル記事] 人材は企業の主要なリソースです。今日、人材は企業の戦略...