2021 年の優れたオープンソース Kubernetes ツール 11 選

2021 年の優れたオープンソース Kubernetes ツール 11 選

2021 年にクラウド インフラストラクチャに触れるほぼすべての人が、Kubernetes プロジェクトに精通しています。つまり、Kubernetes は非常に強力なコンテナ オーケストレーション プラットフォームです。しかし、私の意見では、Kubernetes は単なるものではなく、Raspberry Pi から最大の Fortune 500 インフラストラクチャまで拡張可能なシステムに組み込まれたベスト プラクティスのセットです。標準化された API と POD や CONFIGMAP などの意味のある抽象化を通じて、開発者とオペレーターが共同作業できるようになります。

[[404858]]

Kubernetes は、オープンソース標準 (ありがたいことにすべての主要クラウド ベンダーの標準) の助けを借りて組織が独自の「コンテナ戦略」を展開できるようにすることで、組織に何十年もの時間を節約します。とはいえ、Kubernetes のような巨大なモンスターを飼いならすのは難しい場合があり、その潜在能力を最大限に活用するには、追加のツールセットが必要になります。

Kubernetes を取り巻く素晴らしいコミュニティは、Kubernetes 開発者のエクスペリエンスを向上させるツールを継続的に共有しています。私が常に持ち歩いている 11 個の必須ツールのリストをご紹介します。私はそれらを重要なカテゴリーに分類しました。Kubernetes の実行、Kubernetes のテスト、そして最後に、IDE を楽しむのに役立つカテゴリーです。

カテゴリー 1: Kubernetes 環境の実行

Minikubeは相変わらず素晴らしい

ほぼすべての Kubernetes チュートリアルは「minikube をダウンロードする」で始まりますが、これは今でも当てはまります。本当にリスクの低い環境で Docker を使用して何かを組み立てたい場合は、適切にパッケージ化されメンテナンスされた Minikube プロジェクトを使用すると、約 23 秒でクラスターが実行されます。

Helmは繰り返し可能なデプロイメントの標準であり続ける

Kubernetes に特定の構成をデプロイするために 1 行か 2 行のコードを記述しましたが、繰り返し可能なデプロイを管理するための事実上の標準は Helm です。 Ubuntu や RHEL の RPM と同様に、Helm は Kubernetes 開発者にとって多くの機能を提供するパッケージ マネージャーです。開発者として、私はあまり手間をかけずに自分のアプリケーションを他のプロジェクトでテストしたいと考えています。独自の Jenkins セットアップを作成する代わりに、単に helm install jenkins/jenkins を実行してパスに含めることができます。このパッケージとその他の Kubernetes パッケージを見つけるには、Artifact Hub をご覧ください。

Rancher K3をどこでも実行

ほぼ完璧な Kubernetes サービスにコンテナをプッシュするのは簡単ですが、Raspberry Pi ファームで実際にコンテナを操作したい場合はどうすればよいでしょうか。 Rancher の K3S プロジェクトが役立ちます。メンテナーが README に記しているように、Kubernetes「クラスター」を使用したあらゆるエッジまたは IoT の取り組みに最適です。

K3S がローカル クラスターや軽量クラスターのオプションとなるのは、サポートされるデバイスの範囲が広いためです。 K3S を使用すると、Kubernetes をどこでも実行できます。単一のバイナリとしてダウンロードされるということは、本番環境の Kubernetes 構成に必要なすべての機能が含まれていることを意味します (デフォルトは SQLite3 ですが、プラグ可能なストレージ バックエンドを介して etcd3 に拡張できます)。また、Rancher チームと 1,749 人 (現在まで) の貢献者によって積極的にメンテナンスされています。

ロフトズームチーム

上記の curl コマンドを使用すると、誰でも minikube クラスターを作成できます。しかし、他の人と共同作業したい場合はどうすればよいでしょうか?クラウドネイティブ開発ツールとローカル開発クラスターの交差点には、多くのオプションがあります。

従来の選択肢は、パブリック クラウド上のパブリックにアクセス可能なリソース (AKS、EKS、DigitalOcean が管理する Kubernetes など) です。しかし、クラウド サービスで Hello World チュートリアルを実行し、削除し忘れたことのある人なら誰でも、すぐに多大なコストがかかる可能性があることを知っています。

Loft は、最終的に本番環境で実行される Kubernetes 環境をさらに抽象化する UI や CLI などのさまざまなサービスを提供します。こうすることで、分離や予算に関する懸念を抱くことなく、セルフサービス エクスペリエンスを設定できます。

Loft 氏は、特に V クラスターとそれに対応するスペースによる分離により、各開発者に現実世界の集中予算なしで現実世界の環境が提供されると指摘しています。これは開発者や部門にとって価値のあるものとなります。

Loft の価値は、Kubernetes 環境のスケーリングとセキュリティ保護の速度が削減されることです。ユースケースの 1 つでは、単一の UI でライブ製品のライブ デモを作成することについて説明しました。もっと利己的に考えてみると、開発クラスターの名前空間を発見することなく、独自の分離されたテスト ケースで最新の製品機能に取り組むことを想像してみてください。これは私にとってはうまくいきます。

さらに、Loft Labs は最近 Rich Burroughs を採用しましたが、これは彼らが構築しようとしているコミュニティの種類にとって良い兆候です。

Loft はチームで作業するときに一定の違いを生み出します。

カテゴリー2: フィードバックループの簡素化

Skaffold ドライバーレスフィードバックループ

あなたが開発者であり(実際開発者です)、Kubernetes 上で実行されるアプリケーションを作成したいと想像してください(実際にそうなのです)。 Node.js または Python アプリケーションの実行から Kubernetes でのコンテナの実行に移行するために知っておく必要がある Kubernetes の概念の数は、YAML の壁のように感じられるかもしれません。ありがたいことに、Google の優秀なスタッフが Skadadold を作成し、必要な基盤の一部を提供してくれました。

誤解しないでください。コード、Dockerfile、マニフェスト ファイル、パイプラインに関連付けられているすべてのサービスは依然として必要です。 Skaffold が提供するものは、コードを変更するたびにデプロイメント パイプラインを再実行するためのクリーンな方法です。ユーザーによく知られ、愛されており、世界中のホームページに引用されています。

おそらく、この感覚は皆さんも共感できるでしょう。Skaffold を実行すると、手元の VM を管理する必要がなくなり、初めて vagrant を実行したときのような感覚になります。かつては膨大な手順を要し、信頼性に欠けていたタスクが、私が行うすべての作業を簡素化する方法で簡単に実行できるようになりました。 Skaffold は、Kubernetes のテストとデプロイメントのフィードバック ループを提供することでこれを実現します。

Podman は Docker デーモンの管理を停止します

Dockerfile はおそらく常にコンテナを表現する方法になりますが、Docker 自体は完全にオプションです。 Kubernetes 自体もランタイムを Dockershim から移行しています。デーモン サービスを維持する必要がないため、Docker をローカルで実行する代わりに Podman を使用することはお勧めできません。デーモンを操作する必要がないため、いじくり回す時間が減り、コーディングに多くの時間を費やすことができます。

この違いはあなたにとって新しいものかもしれませんので、説明します。Docker はローカル コンテナーと対話するクライアントであり、デーモン (別名サーバー) は実行中のコンテナーを含むユーザー スペースを管理します。 Nick JaneTakis がここで完璧に説明しています。

私のように、すべてが正常に動作しているときは、Docker クライアントとサーバーの違いを忘れてしまうかもしれません。そうは言っても、私はよく次のようなメッセージを目にします:

  1. $ docker ps
  2. $ unix:///var/run/docker.sock の Docker デーモンに接続できません。 dockerデーモンは実行されていますか?

今、私には選択が残されています。ツールボックス内の Docker デーモンとサービスに問題を引き起こしている原因を突き止めるか、同じ問題が発生しないものを使用するかのいずれかを選択できます。私は後者の方が好きです。

Podman では、個別のデーモンを削除して、コンテナをサブプロセスとして実行するオプションが提供されます。つまり、エラー メッセージは表示されず、コンテナーは実行を継続しました。

筋肉の記憶があまりにも深く根付いているため、変化を躊躇してしまうかもしれません。この場合、Docker CLI を削除し、シェル プロファイルにエイリアス Docker=Podman を追加することを強くお勧めします。

Tiltはあなたのアプリケーションを本当に知っています

パイプラインを管理するさまざまな方法について説明しましたが、Kubernetes ベースのアプリケーションの継続的なフィードバック ループを理解するには、Tilt が最も徹底的かつ視覚的な方法であると私は考えています。 Tilt UI には驚くほど優れたエラーキャッチ機能があり、目立つデプロイメントエラーになる前に小さな yaml エラーを見つけることができました。また、反復処理間でスキーマ内のメッセージ キューをフラッシュするなど、アプリケーション固有の機能を提供するカスタマイズ可能なボタンも備えています。

圧倒されることなく詳細を確認したい場合は、Tilt をお試しください。

DevSpaceによる効率的な開発ワークフロー

kubectl の機能は気に入っているものの、それを実行するために必要な多数のコマンドを忘れてしまったことはありませんか?幸運なことに、devspace は Kubernetes 開発者エクスペリエンスを温かく包み込むオープンソースのコマンドライン ユーティリティです。ローカル システムでポッドを実行できるように、多くの面倒な作業を管理します。

さらに、特定の設定がある場合は、devspace.yaml 宣言型構成ファイルに追加するだけです。

これは kubectl によって提供されるメスの 1 対 1 の置き換えにはなりませんが、devspace を実行すると、実際の Kubernetes 環境と対話するための多くの適切なデフォルト動作が得られ、より $home のような感覚になります。

Lens IDEでデバッグを高速化

Minikube のような Kubernetes プロジェクトには、ダッシュボードと呼ばれる洗練されたシンプルな GUI が付属しています。これは環境の読み取りビューとしては優れていますが、UI から何かを実行したい場合はどうすればよいでしょうか?

オープンソース コミュニティにおける最強の選択肢は Lens です。これは IDE として十分に優れているため、実際には GUI と呼ぶべきではありません。ボタンをクリックするだけで、Kubernetes をカメラ内で実行できます。 Lens で最も気に入っている点は、思考コンテキストに特化した素晴らしいオプションです。これにより、Kubernetes の世界で知っておく必要のある他の多くのリソースと名前空間サービスの違いを理解するのに役立ちます。

カテゴリー 3: なくてはならない IDE 開発ツール

Kubernetes 拡張機能は誰もが必要とする Vscode

Kubernetes 開発の経験、つまり Kubernetes リソースと Helm チャートとの違いを理解していないと、IDE は利用できません。ここで Visual Studio Code Kubernetes ツールが活躍します。 Kubernetes の世界に住んでいる人は、まずこれをインストールする必要があります。

このvscodeプラグインでYAMLをより管理しやすくする

Kubernetes 開発者は Yaml ファーマーと呼ばれていますが、まさにその通りだと思います。私は次の Kubernetes と同じくらいドメイン固有言語が大好きですが、YAML 自体の管理に関して得られるあらゆる支援を歓迎します。ありがたいことに、YAML 言語は拡張機能をサポートしており、Red Hat もそれをサポートしているため、私自身が助かっています。

多くの追加の詳細オプションに大量のオートコンプリート オプションを提供することで、役に立ちます。そうは言っても、右クリックして「ファイルのフォーマット」を選択できる機能だけでも、非常に価値があります。

足跡でコードを見つける

厳密には Kubernetes 拡張機能ではありませんが、YAML ファームをナビゲートすると、どこで中断したか分からなくなることがあります。 2,000 行の構成ファイルのどこにいましたか?そこで、Footsteps は私の短期記憶から消え去ったのです。この優れた拡張機能は、vscode または同等のソフトウェアでも動作し、テキストを強調表示してドキュメントを最後に編集した場所を表示します。コードの編集を続けると、Footsteps によって色が徐々に薄れ、コーディング パターンを把握できるようになります。これをインストールして自分自身を救うのはかなり難しいと感じました。

要約する

Kubernetes の開発者とオペレーターがコンテナ オーケストレーションのこの新しいパラダイムをナビゲートするのに役立つツールが数多くあります。私はこれらを 3 つのバケットに分けて考えるのが好きです。Kubernetes の実行、Kubernetes のテスト、Kubernetes を意識した考え方に役立ちますか?これら 3 つのカテゴリはすべて、オープンソース エコシステム内の適切に管理されたソフトウェアのガイドとなり、他のユーザーと同様に、より優れた YAML 管理者になるのに役立ちます。

元のリンク:

https://loft-sh.medium.com/11-of-the-best-open-source-kubernetes-tools-2021-edition-b4aa49487845

<<:  React 360 でバーチャルリアリティ (VR) 体験を作成する

>>:  世界のインターネットの半分を麻痺させたこのエッジ クラウド コンピューティング企業とは誰でしょうか?

推薦する

ウェブサイトのランキングが停滞していますが、具体的な理由は何ですか?

SEO を行う企業の目的は、自社のウェブサイトのランキングを高め、ウェブサイトを通じた取引量を増やす...

初心者の外部リンク専門家が、署名を作成できるフォーラムをすばやく見つけるにはどうすればよいでしょうか?

最近、Long Xingは、Baiduのアルゴリズムに関する自身の観察を検証し、フォーラムの外部リン...

2023 年のクラウド トレンド トップ 10

これらの傾向は、人工知能、デジタル主権規制、および専門的な業界ソリューションによる大きな技術的変化が...

ポスト SEO 時代において、トラフィックを節約するために何ができるでしょうか?

SEOをご存知ですか?この言葉は、2007年にウェブマスターコミュニティでよく使われる言葉になりまし...

SEO初心者が外部リンクを構築する際に知っておくべき5つの要素の簡単な分析

ウェブサイトの SEO 外部リンクに関しては、SEO 最適化に対する多くの初心者の最初の反応は、ブロ...

これまでに最適化されたプロモーション表示ウェブサイトを記録する

実は、ブログに「SEO分析」のコラムを初めて作ったとき、以前最適化したウェブサイトを記録するつもりで...

Baidu の入札統計の違い、トラフィック損失はどこにありますか?

トラフィック統計の差異の問題は、常に多くの入札ユーザーを悩ませてきました。 Google であれ B...

IoT とエッジコンピューティングはどのように連携するのでしょうか?

2022年グローバルエッジコンピューティング市場レポートの最新統計によると、エッジコンピューティング...

中小規模の電子商取引企業はどのようにして独自のブランドを構築するのでしょうか?

昨年、ブランドの概念は電子商取引企業によって真剣に受け止められました。また、ほとんどの企業は、チャネ...

デロイトとアマゾンAWSが戦略的パートナーシップを締結

デロイトマネジメントコンサルティング(上海)有限公司(以下、「デロイト」)とアマゾンテクノロジーサー...

Jvm 内部キャッシュの選択?あなたの疑問に答える記事

[[277692]]ネイティブJava HashMap のチェーン メソッドに新しい参照を追加するだ...

ランキングを獲得するために小説サイトを最適化する方法

現在、多くの友人が新しいウェブサイトを使用しています。新しいウェブサイトの利点は明らかです。PVが高...

新しいサイトが含まれていない場合はどうすればいいですか?

新しいウェブサイトをランク付けするのは非常に困難です。経験豊富なウェブサイト所有者でさえ、このような...

APP開発者はWeChatパブリックアカウントを設定:プロモーションコストはAPPよりも高い

利点: 低コスト、高いインタラクティブ性 欠点: プロモーションが難しい、フレームワークの制約が多す...