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) 体験を作成する

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

推薦する

1 つの簡単な変更で SEO のコンバージョンが 3 倍になった方法を分析

SEO 最適化に関しては、ユーザーはほぼ常に結果志向です。もちろん、これも人間の本性です。実際の効果...

世界三大クラウドコンピューティング大手が安定!アリババクラウドの市場シェアが過去最高を記録、グーグルを上回る

過去のデータによると、過去 5 年間で Alibaba Cloud の市場シェアは約 3 倍に増加し...

Baiduの外部最適化を行う方法についての考察

ウェブサイト運営の最適化のプロセスにおいて、Baidu の検索エンジン最適化は間違いなく最大の市場シ...

クールなサイト評価: ダークなウェブサイトデザイン 22 選

ウェブサイトのデザインでは明るい色が主流ですが、ミステリアスな雰囲気を際立たせ、控えめな高級感を醸し...

SEOの依頼を受ける際に注意すべき3つの問題についてお話ししましょう

私が初めてオンラインで SEO の注文を受け始めたとき、多くの初心者と同じ間違いを犯したことを覚えて...

アリババは人工知能科学計算をサポートするためにグローバルハイパースケールデータセンター「RDMA高速ネットワーク」を構築しました

最近、記者は、ほとんどのクラウド コンピューティング ベンダーがデータ センター内に RDMA (リ...

中小企業がネットワークマーケティングで成功する方法についての簡単な説明

現在、多くの企業のオンライン マーケティングは、まだプロモーションの表面的なレベルにとどまっています...

Baidu によってウェブサイトが降格された後の 3 つの経験

最近の12月のBaiduのアップデートでは、ある日突然、ウェブサイトのホームページがダウングレードさ...

ユーザーエクスペリエンスの時代にSEOチームメンバーを再配置する方法

ユーザー エクスペリエンスの概念は検索エンジンによって非常に早い段階で導入されましたが、ほとんどの ...

webdock: 月額 4 ユーロ、1Gbps 帯域幅、無制限トラフィック VPS、フィンランド、ドイツ、米国

webdockはオーデンセ(デンマーク)に設立され、2009年に正式に事業を開始しました(2009年...

AIが新たな応用シナリオを切り開き、ファーウェイクラウドModelArts Proが新たな開発パラダイムを創出

私たちは、すべてが感知され、すべてがつながり、すべてがインテリジェントになる時代に入りつつあります。...

Dapr 可観測性分散トレース

アプリケーションを構築する場合、システムの動作を理解することは、アプリケーションを操作する上で重要な...

クラウド移行プレイブック: SaaS モデルへの適応

クラウドベースの SaaS モデルでは、システムの構築、セットアップ、管理は必要ありません。企業は必...