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 クライアントとサーバーの違いを忘れてしまうかもしれません。つまり、次のようなメッセージをよく目にします。
今は選択するしかありません。 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 管理者になるのに役立ちます。 |
>>: JVMの基本原理はこのオープンソースプロジェクトで説明されている。
今日、Lu Songsong さんのブログで、自分のサイトのインクルード数が記録を更新したと書いてあ...
編集者注: この記事の原著者である Charles Fitzgerald 氏は、シアトル地域のエンジ...
2023 年 8 月 23 日、VMware Explore 2023 カンファレンスにおいて、VM...
Baidu 投稿バー「ウェブマスター クラブ」がオフラインになっていることを知り、最近、Baidu ...
これまでB商品のプロモーション方法についてはあまり話したことがなかったのですが、最近パソコンレンタル...
ブランディング計画を書くことは、非常に大規模な計画を説明しているように感じられて難しいように思えるか...
Ctrip の「クレジットカード スキャンダル」: システムリスクか、それとも偶発的な操作ミスか原題...
alphavpsは今年、ブラックフライデーの特別プロモーションを開始しました。最も注目を集めたのは、...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています今年の経済...
com ドメイン名の登録または移管にかかる費用はたったの 3.99 ドルです。割引コード: NCRO...
justhostはどうですか? justhost は米国東海岸のアトランタに米国で 3 番目のデータ...
moonvmが発売した新しいNC PVPS製品をご紹介します。この製品には2つの大きな特徴があります...
カマテラはどうですか? Kamateraスウェーデンクラウドサーバーはどうですか? Kamatera...
scalahosting を紹介します。2007 年に設立され、主に米国とヨーロッパで仮想ホスト (...
【要点】:モバイルインターネットの車輪は前進している - 「モバイルがなければインターネットもない」...