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の基本原理はこのオープンソースプロジェクトで説明されている。

推薦する

Baiduの検索結果は画像とテキストの組み合わせに重点を置く

今日、Lu Songsong さんのブログで、自分のサイトのインクルード数が記録を更新したと書いてあ...

クラウドとオープンソース: テクノロジーの食物連鎖の進化

編集者注: この記事の原著者である Charles Fitzgerald 氏は、シアトル地域のエンジ...

VMware は、企業が生成 AI の力を簡単に活用できるよう支援します。

2023 年 8 月 23 日、VMware Explore 2023 カンファレンスにおいて、VM...

学習姿勢を変えましょう。

Baidu 投稿バー「ウェブマスター クラブ」がオフラインになっていることを知り、最近、Baidu ...

To B製品を宣伝するためのチャネル、方法、テクニックについて話す

これまでB商品のプロモーション方法についてはあまり話したことがなかったのですが、最近パソコンレンタル...

ブランドマーケティングプロモーション計画を準備するには?

ブランディング計画を書くことは、非常に大規模な計画を説明しているように感じられて難しいように思えるか...

CtripはUnionPayのCVCコード記録禁止に違反したため重い罰則を受ける可能性がある

Ctrip の「クレジットカード スキャンダル」: システムリスクか、それとも偶発的な操作ミスか原題...

#BlackFriday# alphavps: AMD Ryzen 7000 高性能 VPS、年間 15.99 ドルから。さらに、大容量ハード ドライブ VPS と専用サーバーもセール中

alphavpsは今年、ブラックフライデーの特別プロモーションを開始しました。最も注目を集めたのは、...

U-Mail: 大量メール送信は明らかな利点で印刷メディアの変革を成功させる

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

namecheap 9月26日 $3.99 .com 移行クーポンコード

com ドメイン名の登録または移管にかかる費用はたったの 3.99 ドルです。割引コード: NCRO...

justhostはどうですか?アトランタ VPS シンプルレビュー

justhostはどうですか? justhost は米国東海岸のアトランタに米国で 3 番目のデータ...

moonvm: ポートランド NCP ライン VPS、(静的) エラスティック IPv4、4TB トラフィック、月額 20 ドルから

moonvmが発売した新しいNC PVPS製品をご紹介します。この製品には2つの大きな特徴があります...

scalahosting: 月額 10 ドル、ダラス VPS、2GB RAM/50GB SSD/無制限帯域幅

scalahosting を紹介します。2007 年に設立され、主に米国とヨーロッパで仮想ホスト (...

オンライン採用のモバイル時代が到来。旧サイトのユーザー数は月ごとに減少している

【要点】:モバイルインターネットの車輪は前進している - 「モバイルがなければインターネットもない」...