ホームページ > バックエンド開発 > Python チュートリアル > たった 1 つのコマンドでマルチパス上の KUBESPRAY を使用して本番グレードのマルチノード Kubernetes を自動化する

たった 1 つのコマンドでマルチパス上の KUBESPRAY を使用して本番グレードのマルチノード Kubernetes を自動化する

Susan Sarandon
リリース: 2025-01-03 04:02:40
オリジナル
451 人が閲覧しました

はじめに
実稼働グレードのマルチノード Kubernetes クラスターのデプロイの複雑さに圧倒されていませんか? ?無数の構成、手動セットアップ、避けられないエラーなど、それだけで誰もが諦めたくなります。しかし、たった 1 つのコマンドでプロセス全体を自動化する方法があると言ったらどうなるでしょうか? ? terraform apply -auto-approve と terraform destroy -auto-approve を実行する方法と同じです。

簡単なスクリプトを実行するのと同じくらい簡単に、堅牢でスケーラブルで本番環境に対応した Kubernetes クラスターをデプロイできることを想像してみてください。 ✨ Kubespray と Multipass の力を利用して、まさにそれを行う自動化ソリューションを開発しました。 ?

その仕組みは次のとおりです:

クラスターのデプロイメント: 単一のコマンド python3 terranes.py cluster init は、Multipass で Kubespray を使用してマルチノード Kubernetes クラスターをプロビジョニングします。手動介入は必要ありません。 ?️

クラスターの破棄: 完了したら、単に python3 terranes.py cluster terminate を実行するだけで、クラスターが正常に破棄され、リソースがクリーンアップされ、さらに Multipass インスタンスもパージされます。 ?✨

新たなスタート、DHCP からの新しい IP を使用した新しい展開が必要ですか?問題ない!コマンドを再度実行すると、新しい Kubernetes クラスターがデプロイされ、使用できるようになります。新しい展開ごとに、DHCP から新しい IP が動的に割り当てられるため、競合がなく、シームレスなエクスペリエンスが保証されます。 ?

このアプローチは、Kubespray の柔軟性と信頼性と、Multipass の軽量な利便性という、両方の長所を組み合わせたものです。自宅ラボをセットアップしている場合でも、学習のためにマルチノード クラスターを実験している場合でも、このソリューションはプロセスの苦痛を取り除き、DevOps の楽しみを取り戻します。 ?

魔法が実際に動作する様子を見てみる準備はできましたか?飛び込んでみましょう! ?

前提条件

Multipass ?: これは、ローカル マシン上で軽量の仮想マシンを作成および管理するために不可欠です。導入と削除は簡単です。メモリ - 4GB、ディスク - 20GB。

Python3 ?: Python は自動化スクリプトのバックボーンです。 Python3 がインストールされていることを確認してください。

Ansible ?: Kubespray は、ノード全体で Kubernetes セットアップを調整するために Ansible に依存しています。

Kubespray ?: Kubespray は、Kubernetes クラスターを自動化するために最適なツールです。

Bash Script ?: このスクリプトは、Kubespray と Multipass を使用して Kubernetes クラスターをデプロイおよび破棄するためのコマンドを自動化します。

なぜマルチパスなのか? ?

Automating Production-grade multi-node Kubernetes with KUBESPRAY on multipass with Just a single command

Kubernetes ノードを実行するための仮想化環境を選択する場合、VirtualBox、VMware、Lima、Colima、Vagrant などのいくつかのオプションが利用可能です。それぞれに独自の機能がありますが、Multipass はローカル開発におけるシンプルさと効率性で際立っています。このプロジェクトでマルチパスを選択した理由は次のとおりです:
1.軽量かつ高速 ⚡
マルチパスは、軽量かつ高速な仮想マシンの作成と管理のために最適化されています。

迅速な導入: 最小限の構成で VM を数秒で起動します。これは、仮想マシンの迅速なスピンアップと破棄に最適です。

この効率は、時間が非常に重要な開発およびテスト環境にとって非常に重要です。 ⚡

低オーバーヘッド: マルチパス VM は、VMware や VirtualBox などの従来のハイパーバイザーと比較して、消費するリソースが少なくなります。

  1. シームレスな統合 ? Multipass は Ubuntu と緊密に統合されているため、Ubuntu ベースのイメージで Kubernetes クラスターを実行する場合に最適です。

事前構築済み Ubuntu イメージ: 公式 Ubuntu LTS イメージが付属しているため、カスタム ISO をダウンロードしたり管理したりする必要がなくなります。

Cloud-Init との統合: Multipass は Cloud-Init をサポートしており、インスタンスの初期構成を自動化できます。この機能は、タスクを自動化し、展開全体で一貫性を確保する場合に特に役立ちます。 ?

簡単なアップデート: 画像を自動的にダウンロードし、最新バージョンに保ちます。

3.コマンドラインのシンプルさ ?️
Multipass は開発者を念頭に置いて設計されており、クリーンで直感的なコマンドライン インターフェイスを備えています。

単一コマンド操作: 簡単なコマンドで VM を作成、削除、管理します。

スクリプトフレンドリー: 自動化ワークフローに最適で、Ansible や Kubespray などのツールと簡単に統合できます。

4.クロスプラットフォームのサポート ?
Multipass は、Linux、macOS、Windows などの主要なプラットフォームと互換性があり、柔軟性と移植性を保証します。

統合エクスペリエンス: すべてのプラットフォームにわたる一貫した CLI。

クロスプラットフォーム互換性: Multipass は Windows、macOS、Linux 上で実行され、異なるオペレーティング システム間で一貫したエクスペリエンスを提供します。このクロスプラットフォーム互換性は、多様な環境で作業するチームにとって有益です。 ?

依存関係なし: VirtualBox のようなハイパーバイザーを必要とする Vagrant とは異なり、Multipass はバックエンドですぐに使用できます。

5.雲のような体験 ☁️
マルチパスは、クラウドでのインスタンスのプロビジョニングのシンプルさを模倣し、そのエクスペリエンスをローカル マシンにもたらします。

ネットワークの容易さ: マルチパスによりネットワークのセットアップが簡素化され、仮想マシンのネットワーク インターフェイスと IP アドレスの構成と管理が容易になります。この使いやすさは、Kubernetes クラスターのセットアップと管理に役立ちます。 ?

**自動化に優しい: **Multipass は自動化スクリプトや CI/CD パイプラインに簡単に統合できるため、自動化されたデプロイメントやワークフローのテストに最適です。 ?️

動的 IP 割り当て: DHCP を利用して動的 IP 割り当てを行い、ネットワークをシームレスにします。

最小限の構成: VM ネットワーキングとリソース管理の複雑さを抽象化します。

6.効率的なリソースの使用 ?️
マルチパスは開発環境向けに最適化されており、システム リソースを効率的に使用します。

マルチパスはリソース効率が高く、つまり、VMware や VirtualBox などのより重い代替手段と比較して、使用するシステム リソースが少なくなります。この効率は、パフォーマンスを大幅に低下させることなく複数の仮想マシンを同時に実行するために非常に重要です。 ?

カスタマイズ可能なリソース: 各 VM に特定の CPU、メモリ、ディスク リソースを割り当てます。

ホストへの影響が低い: Linux および macOS のバックエンドとして軽量の QEMU を使用し、ホスト システムのパフォーマンスを維持します。

Automating Production-grade multi-node Kubernetes with KUBESPRAY on multipass with Just a single command

プロジェクトにマルチパスを選択する理由? ?
このプロジェクトの目標は、最小限の労力でマルチノード Kubernetes クラスターをローカルにデプロイおよび管理することでした。マルチパスはすべてのボックスをチェックしました:

シンプルさ: ハイパーバイザーの複雑さに対処することなく、VM を簡単にプロビジョニングできます。

速度: VM の迅速なセットアップと破棄。

統合: Ubuntu とシームレスに動作し、Kubespray の要件と完全に一致します。

自動化: クラスターのハンズフリー展開と破棄のためのスクリプトフレンドリーな CLI。

なぜ Kubespray なのか?

Automating Production-grade multi-node Kubernetes with KUBESPRAY on multipass with Just a single command

*Kubernetes クラスターのデプロイに関しては、Kind、Minikube、k3s、MicroK8s、kubeadm など、多数のツールから選択できます。それぞれに強みがあり、特定のユースケースに対応します。では、実稼働グレードのマルチノード Kubernetes クラスターのセットアップに Kubespray を選択するのはなぜでしょうか?探検してみよう! *?

  1. プロダクショングレードのセットアップ? Kubespray は、可用性が高く、本番環境に対応した Kubernetes クラスターを作成するように設計されています。

マルチノード クラスターのサポート: Minikube や Kind などのツールは単一ノードまたは小規模環境に優れていますが、Kubespray は堅牢なマルチノード構成のセットアップに最適です。

組み込み HA: すぐに使える高可用性 (HA) により回復力が保証され、実稼働ワークロードに最適です。

Kubespray を使用すると、必要に応じてノードを追加または削除することでクラスターを簡単に拡張できます。この柔軟性により、動的な環境に最適な選択肢となります。

2.高度にカスタマイズ可能?
Kubespray は、クラスターのあらゆる側面をカスタマイズする柔軟性を提供します。

微調整された構成: コンテナー ランタイム、ネットワーク プラグイン、クラウド プロバイダーなどのパラメーターを変更します。

詳細オプション: ネットワーク ポリシー、クラスター監視、ログ記録などの追加機能がデフォルトで含まれています。

さまざまな CNI のサポート: ネットワークのニーズに基づいて、Calico、Cilium、Flannel などから選択します。

Kubespray には広範な構成オプションが用意されており、Kubernetes セットアップを特定の要件に合わせて調整できます。このレベルのカスタマイズは、MicroK8s のような単純なツールでは利用できないことがよくあります。

3.冪等性と信頼性?
Kubespray はオーケストレーションに Ansible を活用し、冪等性と信頼性を確保します。

Ansible 統合: Kubespray は構成管理に Ansible を活用し、複雑なタスクを自動化する強力かつ柔軟な方法を提供します。この統合により、全体的な自動化機能と管理機能が強化されます。

エラー回復: オペレーションが失敗した場合、プレイブックを再実行すると、クラスターを破壊することなく中断したところから再開されます。

スケーラビリティ: ノードを追加または削除することで、クラスターを簡単に拡張できます。

4.クロスプラットフォームのサポート ?
特定の環境に関連付けられている他のツールとは異なり、Kubespray はさまざまなプラットフォーム間でシームレスに動作します。

クラウド プロバイダーに依存しない: Kubespray は、さまざまなクラウド プロバイダーやオンプレミス環境にクラスターをデプロイでき、他のツールにはない汎用性を提供します。

オンプレミスとクラウド: オンプレミスのベアメタル、クラウド VM、またはハイブリッド セットアップでの展開をサポートします。

マルチプロバイダーの柔軟性: AWS、GCP、Azure、OpenStack などと互換性があります。

5. Kubernetes コンプライアンス ✅
Kubespray はアップストリームの Kubernetes 標準に準拠し、最新バージョンとの互換性を保証します。

コミュニティとサポート: Kubespray には強力で活発なコミュニティがあり、トラブルシューティングと最適化のためのリソース、ドキュメント、サポートが豊富に提供されています。

セキュリティ機能: Kubespray にはセキュリティ機能とベスト プラクティスが組み込まれており、クラスターが最初から安全であることが保証されます。 ?

ベンダー ロックインなし: Kubernetes API に完全に準拠しているため、独自のソリューションにロックインされることはありません。

コミュニティ主導: Kubernetes SIG (Special Interest Group) によってサポートされており、定期的な更新と強力なコミュニティ サポートが保証されます。

Automating Production-grade multi-node Kubernetes with KUBESPRAY on multipass with Just a single command

プロジェクトに Kubespray を選んだ理由? ?
このプロジェクトの目標は、運用グレードの高可用性のマルチノード Kubernetes クラスターのローカル環境での展開を自動化し、カスタマイズ可能にすることでした。

Kubespray は、柔軟性、信頼性、自動化の容易さの間の完璧なバランスを提供しました。

Multipass と組み合わせることで、プロセスが軽量になり、リソースのオーバーヘッドを最小限に抑えながら繰り返し可能になりました。

Kubespray ではなく TerraNetes を使用する理由?

Automating Production-grade multi-node Kubernetes with KUBESPRAY on multipass with Just a single command

Kubespray は実稼働グレードの Kubernetes クラスターをデプロイするための素晴らしいツールですが、大規模なセットアップと構成が必要です。一方、TerraNetes は、1 つのコマンドだけですべてを自動化することでプロセス全体を簡素化します。詳細な比較と、TerraNetes が優れている理由を以下に示します:

1.ノードのプロビジョニングが簡単になりました ?️
Kubespray: Kubernetes をデプロイする前にノードを手動でプロビジョニングする必要があります。

仮想マシンまたは物理サーバーをセットアップし、SSH アクセスを構成し、ノードが Kubernetes の前提条件を満たしていることを確認する必要があります。

カスタマイズには時間がかかり、エラーが発生しやすくなります。

TerraNetes: すぐに使えるノードのプロビジョニングを処理します。

マルチパスを使用して仮想マシンを自動的に起動し、構成します。

ノードの作成または管理に手動介入は必要ありません。

2.すぐに使える構成?
**Kubespray: **以下を含むノードの詳細な構成が必要です:

ファイアウォール ルール: Kubernetes コンポーネントに対して必要なポートが開いていることを確認します。

ホスト名: すべてのノードに一意で解決可能なホスト名を設定します。

スワップオフ: Kubernetes の安定性を確保するために、スワップを手動で無効にします。

カーネル モジュール: modprobe を使用して br_netfilter などの必要なモジュールを有効にします。

TerraNetes: これらすべての構成は自動的に処理されます。

すべてのノードが必要な設定で事前に構成されていることを確認します。

ノードのセットアップにおける重要な手順を忘れることを心配する必要はありません。

3. Ansible 接続の簡素化 ?
Kubespray: コントロール ノードとワーカー ノード間の接続を確立するには、SSH アクセスとキー管理が必要です。

これには、SSH キーの作成、ノードへの配布、適切な権限の確保が含まれます。
TerraNetes: 手動による SSH セットアップの必要がなくなります。

プロビジョニング プロセス中に Ansible 接続を自動的に構成します。

セキュリティ上の理由から、新しい ssh キーは展開ごとに作成され、終了ごとに削除されます。

新しいノード名とノード IP で Ansible インベントリ ファイルを自動的に更新します。

手動でのキー配布やホスト構成は必要ありません。

4.単一コマンドのデプロイメント ?
Kubespray: 導入には複数の手順が必要です:

ノードをプロビジョニングし、準備し、Ansible インベントリーを構成し、プレイブックを実行します。

エラーを避けるために、各ステップでは細部まで細心の注意を払う必要があります。

TerraNetes: 1 つのコマンドで展開を簡素化します。

ノードの作成、構成、Kubernetes のインストールを 1 回の実行で処理します。

時間を節約し、すべての環境で一貫性を確保します。

5.自動化とユーザー エクスペリエンス ?
Kubespray: 強力ですが、経験豊富なユーザー向けに設計されています。

詳細なカスタマイズが必要な高度なシナリオに適しています。

ただし、学習には時間がかかり、セットアップには多大な労力が必要です。

TerraNetes: 自動化と使いやすさに重点を置いて構築されています。

基礎となる複雑さに対処することなく、Kubernetes クラスターを迅速に起動して実行したいユーザーに最適です。

エラーを最小限に抑え、Kubernetes 導入の参入障壁を軽減するように設計されています。

6.時間節約の利点 ⏳
Kubespray: 専門知識や環境に​​よっては、構成と展開に数時間、場合によっては数日かかる場合があります。

TerraNetes: 合理化されたアプローチにより、完全に機能する Kubernetes クラスターを数分で入手できます。

Automating Production-grade multi-node Kubernetes with KUBESPRAY on multipass with Just a single command

TerraNetes を選択するのはどのような場合ですか?
ラピッド プロトタイピング: 基盤となるインフラストラクチャを気にせずにクラスターを迅速に必要とします。
シンプルさ: Kubernetes のセットアップではなく、使用に重点を置きたいと考えています。
自動化: 手動介入を最小限に抑えたエンドツーエンドの自動化ソリューションを好みます。

Kubespray は高度にカスタマイズ可能な運用グレードのセットアップで威力を発揮しますが、TerraNetes は比類のないレベルのシンプルさとスピードを提供します。たった 1 つのコマンドで、ノードのプロビジョニング、構成、展開といった面倒な作業をすべて実行してくれるので、アプリケーションの構築と展開に集中できます。 ?

Terranetes プロジェクトのテスト

デモビデオ

結論?
TerraNetes プロジェクトは、そのシンプルさ、自動化、効率性によって Kubernetes 導入エクスペリエンスを再定義します。これは、実稼働グレードのマルチノード Kubernetes クラスターのデプロイと管理の方法に革命をもたらします。たった 1 つのコマンドでプロセス全体を自動化すると、ノードのプロビジョニング、SSH 構成、ノードのホスト名の更新、ファイアウォールのセットアップなどの複雑さが簡素化されます。このすぐに使えるソリューションにより、時間が節約され、エラーが減り、自宅ラボをセットアップしている場合でも、学習のためにマルチノード クラスターを実験している場合でも、誰でも Kubernetes デプロイメントにアクセスできるようになります。

Terranetes を使用すると、クラスター管理の重労働を自動化スクリプトに任せながら、本当に重要なこと、つまりアプリケーションの構築とスケーリングに集中できます。 Kubespray と Multipass を組み合わせ、Terranetes の合理化されたアプローチと組み合わせることで、堅牢でスケーラブルで手間のかからない Kubernetes エクスペリエンスが保証されます。 ?✨

DevOps プロフェッショナル、開発者、Kubernetes 愛好家を問わず、TerraNetes を使用すると、最速かつ簡単な方法で Kubernetes の可能性を最大限に活用できます。 ?

リンクトイン

以上がたった 1 つのコマンドでマルチパス上の KUBESPRAY を使用して本番グレードのマルチノード Kubernetes を自動化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート