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

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

2021 年までに、クラウド インフラストラクチャに携わったほぼすべての人が Kubernetes プロジェクトに精通するようになります。簡単に言えば、Kubernetes は非常に強力なコンテナ オーケストレーション プラットフォームであり、Kubernetes コミュニティは Kubernetes 開発者のエクスペリエンスを向上させるツールを共有してきました。この記事では、著者が最も頻繁に使用する Kubernetes ツール 11 個をリストし、カテゴリ別に紹介します。

Kubernetes は非常に強力なコンテナ オーケストレーション プラットフォームです。しかし、私にとって Kubernetes で最も重要なことは、Raspberry Pi から Fortune 500 の最大のインフラストラクチャにまで拡張可能なシステムにベスト プラクティスを統合していることです。これにより、開発者とオペレーターは、標準化された API と意味のある抽象化 (Pod や ConfigMap など) を通じて共同作業を行うことができます。

Kubernetes は、幸いなことにすべての主要なクラウド ベンダーの標準でもあるオープン ソース標準を提供することで、組織が独自の「コンテナ戦略」を何十年もかけて考え出す手間を省くことができます。そうは言っても、Kubernetes のような巨大なモンスターを飼いならすのは難しいですが、その潜在能力を最大限に引き出すには、追加のツールセットが必要です。

Kubernetes コミュニティは、Kubernetes 開発者のエクスペリエンスを向上させるツールを共有してきました。ここでは、Kubernetes の実行に役立つツール、Kubernetes をテストするツール、そして (最後になりましたが) IDE で楽しむためのツールに分類された、私のトップ 11 の Kubernetes ツールを紹介します。

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

Minikubeは依然として最高だ

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

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

Kubernetes に何らかの構成をデプロイするために、1 回限りのスクリプトを 1 つまたは 2 つ作成したことは誰もが経験していますが、繰り返し可能なデプロイを管理する実際の方法は Helm を使用することです。 Ubuntu の apt や RHEL の rpm と同様に、Helm は Kubernetes 開発者にとって多くの機能を提供するパッケージ マネージャーです。開発者として、私はあまり投資せずに自分のアプリケーションを他のプロジェクトでテストしたいと考えています。独自の Jenkins セットアップを作成する代わりに、単に helm install jenkins/jenkins を実行するだけです。 Helm またはその他の Kubernetes パッケージを入手するには、Artifact Hub を参照してください。

Rancher K3sはどこでも実行できます

コンテナを Kubernetes サービスにプッシュするのは 1 つの方法ですが、Raspberry Pi ファームの外部にコンテナを取得したい場合はどうすればよいでしょうか。 Rancher の K3s プロジェクトではそれが可能です。メンテナーが README で述べているように、これは Kubernetes の「クラスタロジー」におけるあらゆるエッジまたは IoT の試みに最適です。

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

ロフトはチームの規模を拡大できる

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

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

Loft は、最終的に本番環境で実行される Kubernetes 環境をさらに抽象化する UI や CLI を含む一連のサービスを提供します。そうすることで、分離や予算の問題を心配することなく、セルフサービス エクスペリエンスを構築できます。

Loft は分離、特に vCluster とそれに対応するスペースに重点を置いており、予算を超過することなく、すべての開発者に現実的な環境を提供します。これは開発者と部門リーダーの両方にとって非常に価値があります。

Loft の価値は、安全な Kubernetes 環境を迅速に起動およびシャットダウンできることにあります。ここで言及されているユースケースの 1 つは、UI を 1 回クリックするだけでローカル環境のライブ デモを作成することです。もっと利己的に考えると、開発クラスターの名前空間を混乱させることなく、独自の分離されたテスト ケースで最新の製品機能を実証できるのは確かに良いことのように思えます。

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

チームで作業する場合、Loft を使用するのが最適です。

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

Skaffoldは自動フィードバックループを提供する

あなたが開発者であり、Kubernetes 上で実行できるアプリケーションを作成したいとします。 Node.js または Python アプリケーションの実行から Kubernetes でのコンテナの実行に移行するには、理解する必要がある Kubernetes の概念が非常に多く、YAML の壁のようなものです。幸運なことに、Google の優秀なスタッフが Skaffold を作成し、私たちに非常に必要な足場を提供してくれました。

誤解しないでください。独自のコード、Dockerfile、マニフェスト ファイル、パイプラインに関連付けられたすべてのサービスを記述する必要があります。 Skaffold は、コードを変更するたびにデプロイメント パイプラインを再実行するためのクリーンな方法を提供します。ホームページには世界中の開発者の名言が掲載されており、ユーザーから愛されています。

Skaffold を実行すると、VM を手動で管理するのではなく、初めて Vagrant を実行するのと非常によく似ていると感じるかもしれません。かつては完了までに多くの手順が必要で信頼性が低かったタスクが、ある程度単純化され、繰り返し実行できるようになり、作業が簡素化されました。 Skaffold は、Kubernetes のテストとデプロイメントのフィードバック ループ内でこれを実行します。

PodmanはDockerデーモンの管理を停止できる

Dockerfile はおそらく常にコンテナを表現する方法になりますが、Docker 自体は完全にオプションです。 Kubernetes 自体もランタイムを Dockershim から移行しています。 Docker をローカルで実行する代わりに Podman を強くお勧めします。唯一の理由は、デーモン サービスを維持する必要がなくなるからです。デーモンに干渉しないということは、無駄に浪費される時間が減り、コーディングに費やす時間が長くなることを意味します。

この違いは馴染みがないかもしれませんので、ここで説明します。Docker は、ローカル コンテナーと対話するクライアントであると同時に、実行中のコンテナーを管理するユーザーランド デーモン (サーバーとも呼ばれます) でもあります。 Nick Janetakis がここで完璧に説明しています。

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

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

今は選択するしかありません。 Docker デーモンとツールチェーン内のサービスをトラブルシューティングすることも、同じ問題が発生しないサービスを使用することもできます。私は後者の方が好きです。

Podman はコンテナをサブプロセスとして実行するオプションを提供し、別のデーモンの必要性を排除します。つまり、そのエラー メッセージは二度と表示されず、コンテナーは常に想定どおりに動作するようになります。

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

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

パイプラインを管理するさまざまな方法について説明しましたが、Kubernetes ベースのアプリケーションの継続的なフィードバック ループを確認するには、Tilt が最も徹底的かつ直感的な方法であると私は考えています。 Tilt UI には、小さな YAML エラーが大きなデプロイメント エラーになる前に識別できる、非常に優れたエラー検出機能があります。また、異なる反復間でアーキテクチャ内のメッセージ キューをフラッシュするなど、アプリケーション固有の独自の機能を提供するカスタマイズ可能なボタンも備えています。

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

DevSpaceは開発プロセスをより効率的にします

kubectl で何かを実行したいのに、それを実行するために必要な多数のコマンドを忘れてしまったことはありませんか?幸いなことに、DevSpace は、Kubernetes 開発者のエクスペリエンスを温かく包み込むオープンソースのコマンドライン ユーティリティです。これは多くの面倒な処理を管理するため、ローカル システムで実行されている Pod と同じように扱うことができます。

さらに、非常に具体的な設定がある場合は、それを devspace.yaml 宣言型構成ファイルに追加するだけです。

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

Lens IDEでデバッグが高速化

Minikube のような Kubernetes プロジェクトには、Dashboard と呼ばれる洗練されたわかりやすい GUI が付属しています。これは環境の読み取り中心の優れたビューですが、UI を通じて何らかのアクションを実行したい場合はどうすればよいでしょうか。

オープンソース コミュニティで最も強力なオプションは Lens です。 IDE とみなされるほど機能が豊富なので、これを GUI と呼ぶべきではないと思います。ボタンをクリックするだけで、Kubernetes が Lens で実行できるすべてのアクションを実行できます。 Lens で最も気に入っている点は、コンテキスト固有の素晴らしいオプションです。これにより、Kubernetes の世界にある他の多くのリソースと名前空間サービスを区別できるようになりました。

カテゴリー3: 不可欠なIDE開発ツール

VSCode に必要な Kubernetes 拡張機能

Kubernetes リソースと Helm チャートを区別できる IDE がなければ、Kubernetes 開発の経験があるとは言えません。ここで Visual Studio Code Kubernetes ツールが活躍します。 Kubernetes の世界に住んでいる人は誰でも、まず Kubernetes をインストールすることから始めなければなりません。

このVSCodeプラグインはYAMLの管理を容易にします

Kubernetes 開発者は YAML ハーダー (管理人) と呼ばれていますが、これはまさにその通りだと思います。次世代の Kubernaut のような構造化されたドメイン固有言語も好きですが、YAML 自体の管理からの支援を放棄するつもりはありません。幸いなことに、Red Hat の YAML 言語サポート拡張機能が役に立ちます。

多数のオートコンプリート オプションと、問題解決に役立つ追加の微妙なオプションが多数用意されています。そうは言っても、右クリックして「ドキュメントのフォーマット」を選択できる機能自体は価値があります。

足跡 コードを通じて道を見つける

厳密には Kubernetes 拡張機能ではありませんが、YAML ファームをナビゲートすると、どこから始めたのか忘れてしまうことがあることに気づきました。 2000 行の構成ファイルのどこにありますか?すると足音が聞こえ、私の短期記憶喪失の足場が明らかになる。この優れた拡張機能は、VSCode や他の IDE にも適しており、最後に編集したドキュメントを強調表示します。コーディングを続けると、Footsteps はこれらの色を徐々に薄くして、コーディング パターンを知らせます。インストールして、迷子になる時間を節約しましょう。

要約する

Kubernetes の開発者やオペレーターがこの新しいコンテナ オーケストレーション パラダイムを理解するのに役立つ素晴らしいツールが数多くあります。私はこれらを 3 つの方法で考えるのが好きです。Kubernetes の実行に役立つか、Kubernetes のテストに役立つか、Kubernetes コードを賢明な方法で記述するのに役立つか、です。これら 3 つのカテゴリはすべて、オープンソース エコシステム内の適切に管理されたソフトウェアへと導き、私たちや他の人たちのように優れた YAML 管理者になるのに役立ちます。

<<:  Ceph分散ストレージシステムの最適化分析

>>:  JVMの基本原理はこのオープンソースプロジェクトで説明されている。

推薦する

新浪はポルノコンテンツで508万元の罰金を科せられ、2つのライセンスを取り消されなければ大きな取引を失うことになるだろう

CCTV スクリーンショット国家ポルノ・違法出版取締局と北京市文化法執行部隊は昨日、新浪網が読書チャ...

ウェブマスターネットワークからの毎日のレポート:ジャック・マーが検索戦争に混乱、春節の広告で動画サイトがテレビに敗北

1. JD.comが「Jingブランド」を立ち上げるとの噂:タオバオのブランド戦略を模倣2月20日、...

Xigua Video が Bilibili で UP ホストを追跡: お金は万能か?

BilibiliとXigua Videoの間で、新たな大Vsの攻防戦が始まった。表面的には、この競争...

Sina Weiboマーケティング戦略の共有

多くの電子商取引企業と同様に、私もSina Weiboに注目しています。この過程で、Weiboマーケ...

Googleの「江南スタイル」時代のGoogle PR大幅アップデート

Google PR 値は、ウェブマスターがフレンドリー リンクを交換するための基準の 1 つであるた...

sharktech-$159/X3450/16G メモリ/2T ハードディスク/100M 無制限/DDOS 保護

Shark Host のメール プロモーションでは、シカゴ データ センターの特別価格サーバーについ...

SEO三部作のキーワード戦略

企業サイトや個人ブログはそれぞれ異なるユーザー(つまり、異なるオーディエンス)に直面しています。ユー...

7日間で、私たちはウェブサイトが8月25日の降格の影から抜け出すのを手伝いました。

この機会に、ウェブマスターと SEO 仲間の皆さんに建国記念日のお祝いを申し上げます。王世凡氏は8月...

シンプル、正確、効果的な外部リンク検索方法

ウェブマスターや SEO 担当者なら、ウェブサイトの最適化と外部リンクが非常に重要な役割を果たすこと...

2大オンライン広告連合:Google AdSenseとBaidu Alliance

広告はインターネットのいたるところに存在します。ネットユーザーがオンラインにアクセスする限り、常にさ...

キーワードを使用してウェブサイトを GOOGLE ランキングで最適化する方法

検索エンジンはキーワードの関連性を使用して Web ページの順序を決定します。たとえば、誰かが「バタ...

インプラントは手放すのがとても難しい。「兄はもういない」けれど、ブランドの記憶は残っている

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています映画『囲碁...

旅行ウェブサイト上でフレンドリーリンクを交換する方法は何ですか?

旅行サイトの日常的な最適化には、フレンドリーリンクの交換が欠かせません。フレンドリーリンクの役割は以...

ウェブサイトを公開する際には、どのような最適化のアイデアに注意すべきでしょうか?

ご存知のとおり、ウェブサイトの運用とメンテナンスの最適化の過程で、新しいサイトを立ち上げることは多く...

ウェブプロジェクト 512M XEN/50G ハードディスク/500G トラフィック/月額 6.92 ドル

web-project は 2004 年に設立されたイギリスの会社で、Web デザイン、開発、電子商...