Kubernetes をより良くする 22 のオープンソース ツール

Kubernetes をより良くする 22 のオープンソース ツール

これらの Kubernetes ヘルパー ツールを活用して、アプリケーション定義の簡素化、監視の強化、クラウド展開の合理化などを実現します。

[[263950]]

Kubernetes は、コンテナ化されたアプリケーションを大規模にデプロイするための標準となっています。しかし、Kubernetes が大規模で複雑なコンテナのデプロイメントを管理するのに役立つのであれば、Kubernetes を管理するのに役立つものは何でしょうか?また、複雑でわかりにくく、管理が難しい場合もあります。

Kubernetes が成長し進化するにつれて、その過剰な部分のいくつかは修正される可能性があります。しかし、Kubernetes が使いやすくなるのを待たずに、Kubernetes が本番環境で遭遇する一般的な問題の多くに対して独自のソリューションをすでに導入している人もいます。

ここでは、コマンドライン操作の簡素化からアプリケーション デプロイメント構文の合理化、AWS との統合による複数クラスターへのサービスの提供まで、さまざまな方法で Kubernetes を簡素化する 22 のオープン ソース プロジェクトとサードパーティ ツールを紹介します。

1. Bitnami Cabin: iOS および Android 向け Kubernetes ダッシュボード

何らかのモバイル インターフェイスのない最新の Web アプリケーションまたはサービスとは何でしょうか? Cabin は、Kubernetes 管理者に、iOS または Android スマートフォンからアクセスできる Kubernetes ダッシュボードのバージョンを提供します。 Helm チャート、デプロイメントのスケーリング、ポッド ログの読み取り、Kubernetes でホストされる Web ベースのアプリケーションへのアクセスなど、完全な Kubernetes ダッシュボードで利用できる機能の多くは、Cabin から起動できます。

2. Goldpinger: Kubernetes クラスターを視覚化する

人間は視覚的な生き物です。グラフやチャートを使用すると、全体像を理解しやすくなります。 Kubernetes クラスターの範囲と複雑さを考慮すると、利用できる視覚的な支援はすべて利用できます。

Bloomberg Technology によってオープンソース化された、面白い名前の Goldpinger は、Kubernetes クラスター内で実行され、ノード間の関係のインタラクティブ マップを表示するシンプルなツールです。正常なノードは緑色で表示され、異常なノードは赤色で表示されます。詳細情報を取得するには、ノードをクリックします。追加のレポート、メトリック、またはその他の統合のために Swagger を使用して API をカスタマイズできます。

3. Gravity: ポータブル Kubernetes クラスター

アプリケーションを Kubernetes にデプロイする場合、多くのアプリケーションは Helm チャートを使用してプロセスをガイドおよび自動化します。しかし、Kubernetes クラスターをそのまま使用してどこかにデプロイしたい場合はどうすればよいでしょうか?

Gravity は、Kubernetes クラスターとそのコンテナ レジストリ、および実行中のアプリケーション (「アプリケーション パッケージ」と呼ばれる) のスナップショットを取得します。パッケージは、Kubernetes が実行される場所であればどこにでも複製できる .tar ファイルです。

Gravity は、ターゲット インフラストラクチャがソースと同じ動作要件をサポートできること、およびターゲット上の Kubernetes ランタイムも要件を満たしていることも保証します。 Gravity の Enterprise Edition には、ロールベースのアクセス制御や、複数のクラスター展開間でセキュリティ構成を同期する機能などのセキュリティ機能が追加されています。

4. K9s: フルスクリーン Kubernetes CLI UI

管理者は「シングル スクリーン」ユーティリティを気に入っています。 K9s は、Kubernetes クラスター用のフルスクリーン CLI UI です。実行中のポッド、ログ、デプロイメントを一目で確認できるほか、シェルにすばやくアクセスできます。 K9 が適切に動作するには、ユーザー レベルと名前空間レベルの両方でユーザーに Kubernetes 読み取り権限を付与する必要があることに注意してください。

5. Kaniko: Kubernetes クラスターでコンテナを構築する

ほとんどのコンテナ イメージは、コンテナ スタックの外部のシステム上に構築されます。しかし、実行中のコンテナ内や Kubernetes クラスター上のどこかなど、コンテナ スタック内でビルド プロセスを実行したい場合もあります。

Kaniko はコンテナ環境でコンテナビルドを実行しますが、その作業を実行するために Docker などのコンテナデーモンに依存しません。 Kaniko はベースイメージを取得し、ファイルシステムを抽出し、抽出したファイルシステム上でユーザー空間ですべてのビルド コマンドを実行し、各コマンドの後にファイルシステムのスナップショットを取得します。

Kaniko は現在 Windows コンテナーを構築できないことに注意してください。

6. Kedge: 簡潔な Kubernetes デプロイメント定義

Kubernetes に関する最も一般的な不満は、そのマニフェスト、つまりアプリケーション定義が複雑で長いことです。これらは記述も保守も面倒なので、問題を解決するにはサードパーティのツールに頼らざるを得ません。

Kedge はよりシンプルで簡潔な構文を提供します。 Kedge に Kubernetes 定義ファイルの簡易バージョンを提供すると、Kedge はこの簡易定義を完全な Kubernetes バージョンに拡張します。 Koki Short (下記参照) とは異なり、Kedge の宣言ファイルはモジュール構文を使用しません。アプリケーション定義を一般的なショートカットに要約するだけです。

Kedge の現在のバージョンは 2018 年 4 月のものであることに注意してください。

7. Koki Short: 管理しやすい Kubernetes チェックリスト

Koki Short は、上記の Kedge と同様に、Kubernetes でアプリケーションを定義または表現する方法を改善するプロジェクトです。 Kedge 定義と同様に、Koki Short は Kubernetes ポッドを記述するために省略された構文を使用します。これは完全な構文に変換でき、またその逆も可能です。 Kedge 定義とは異なり、Koki Shorts もモジュール化されているため、1 つの Short 宣言の詳細を他の Short 宣言で再利用でき、共通要素を持つ多くのポッドを簡潔に定義できます。

8. Kops: Kubernetes クラスターのコマンドライン操作

Kops は Kubernetes チームによって開発され、コマンドラインから Kubernetes クラスターを管理できるようになります。 AWS および GCE 上で実行されるクラスターをサポートし、VMware vSphere やその他の開発中の環境もサポートします。 Kops は、セットアップとティアダウンのプロセスの自動化に加えて、他のタイプの自動化にも役立ちます。たとえば、Terraform を使用してクラスターを再デプロイできるように、Terraform 構成を生成できます。

9. Kubebox: Kubernetes のターミナル コンソール

Kubernetes の高度なターミナル コンソールである Kubebox は、Kubernetes とその API 用の強化されたシェルを提供するだけではありません。メモリと CPU の使用率、ポッド リスト、ランタイム ログ、構成エディターのインタラクティブな表示を提供します。何よりも素晴らしいのは、Linux、Windows、MacOS 用のスタンドアロン アプリケーションとして利用できることです。

10. Kubecost: Kubernetes を実行するためのメトリクス

ほとんどの Kubernetes 管理ツールは、使いやすさ、監視、ポッドの動作に関する洞察などに重点を置いています。しかし、Kubernetes の実行に関連するコストをどのように監視するのでしょうか?

Kubecost は、主要なクラウド プロバイダーで実行されているクラスターから得られた実際のコスト情報とともにリアルタイムの Kubernetes メトリックを使用して、各クラスターの展開の月間コストのダッシュボード ビューを提供します。メモリ、CPU、GPU、ストレージのコストはすべて、Kubernetes コンポーネント (ポッド、コンテナ、サービス、デプロイメントなど) ごとに分類されます。

Kubecost は、S3 バケットなどの「クラスター外」リソースのコストも追跡できますが、これは現在 AWS に限定されています。コスト データは Prometheus と共有することもできるため、そのデータを使用してクラスターの動作をプログラムで変更することもできます。

11. KubeDB: Kubernetes で本番データベースを実行する

これまで、Kubernetes でデータベースをエレガントに実行することは困難でした。ネイティブの Kubernetes 機能セットでは直接対処されない、データベース固有の問題が多数あります。

KubeDB を使用すると、管理者はデータベースを管理するための Kubernetes オペレーターを作成できます。バックアップの実行、クローン作成、監視、スナップショット、および宣言的なデータベースの作成はすべて、組み合わせの一部です。クラスタリングもサポートされていますが、特定のデータベースのみです。例: PostgreSQL では利用可能ですが、MySQL ではまだ利用できません。

12. Kube-monkey: Kubernetes 用の Chaos Monkey

システムのストレステストを行う信頼できる方法は、システムをランダムに破壊することです。これが、Netflix の Chaos Monkey の背後にある理論です。Chaos Monkey は、本番環境で実行されている仮想マシンとコンテナをランダムに終了して、開発者がより回復力のあるシステムを構築することを「奨励」するカオス エンジニアリング ツールです。 Kube-monkey は、Kubernetes クラスターのストレス テストに対する同じ基本的な考え方を実装したものです。これは、クラスター内で具体的に指定したポッドをランダムに削除することで機能し、特定の時間枠内で実行されるように微調整できます。

13. Kube-ps1: スマート Kubernetes コマンド プロンプト

いいえ、Kube-ps1 は Kubernetes 用の Sony PlayStation エミュレーターではありません (そうであればかなり便利ですが)。これは、プロンプトに現在の Kubernetes コンテキストと名前空間を表示する、Bash へのシンプルな追加機能です。 Kube-shell にはこの機能と他の多くの機能が含まれていますが、よりスマートなプロンプトだけが必要な場合は、kube-ps1 を使用すると、オーバーヘッドをほとんどかけずにそれを実現できます。

14. Kube-prompt: インタラクティブなKubernetesクライアント

Kubernetes CLI に対するもう 1 つの最小限だが便利な変更である Kube-prompt を使用すると、Kubernetes クライアントとの対話型コマンド セッションの数を入力できます。 Kube-prompt を使用すると、各コマンドの前に kubectl と入力する必要がなくなり、各コマンドのコンテキスト情報とともに自動補完が提供されます。

15. Kube-shell: Kubernetes CLI 用のシェル

Kubernetes コマンドラインは強力ですが、他のコマンドライン アプリケーションと同様に、オプションの選択は面倒な場合があります。 Kube-shell は、標準の Kubernetes コマンドラインを統合シェルにラップし、Kubernetes サーバーが提供する提案 (サービス名など) を含む、よく使用されるコマンドの自動補完と自動提案を提供します。また、より強力なコマンド履歴機能、vi スタイルの編集モード、ユーザー、名前空間、クラスター、その他のインストール固有の詳細の実行コンテキスト情報も提供されます。

16. Kubespy: Kubernetes リソースをリアルタイムで監視

Pulumi の Kubespy は、Kubernetes リソースへの変更をリアルタイムで追跡し、テキスト ビュー ダッシュボードを提供する診断ツールです。たとえば、ポッドの起動時にポッドの状態が変化するのを監視できます。ポッドの定義が Etcd に書き込まれ、ポッドがノード上で実行されるようにスケジュールされ、ノード上の Kubelet によってポッドが作成され、ポッドが実行中としてマークされます。 Kubespy は、スタンドアロン バイナリとして、または Kubectl のプラグインとして実行できます。

17. AWS 向け Kubernetes イングレス コントローラー

Kubernetes は、Ingress と呼ばれるサービスを通じて、クラスターに外部負荷分散とネットワーク サービスを提供します。 Amazon Web Services は負荷分散機能を提供しますが、これらのサービスは Kubernetes の機能と自動的に統合されません。 AWS 用の Kubernetes Ingress Controller はこのギャップを埋めます。 Ingress Controller は、クラスター内の各 Ingress オブジェクトの AWS リソースを自動的に管理し、新しい Ingress リソースのロードバランサーを作成し、削除されたリソースのロードバランサーを削除して、AWS CloudFormation の助けを借りてクラスターの一貫した状態を確保します。また、SSL 証明書や EC2 Auto Scaling グループなど、クラスター内で使用される他の要素も自動的に管理します。

18. Kube-ops-view: 複数のKubernetesクラスターのダッシュボード

Kubernetes には一般的な監視に便利なダッシュボードがありますが、Kubernetes コミュニティは Kubernetes 管理者にとって役立つデータを提示する他の方法を実験しています。 Kube-ops-view はそのような実験の 1 つです。複数の Kubernetes クラスターを一目でわかるようにグラフで表示し、CPU とメモリの使用状況やクラスター内のポッドのステータスを一目で確認できます。コマンドを呼び出すことはできないことに注意してください。それは視覚化のためだけのものです。しかし、それが提供する視覚化は、オペレーション センターの壁面モニターにとって十分に効率的です。

19. Skaffold: Kubernetes 開発

Skaffold は Google 独自の Kubernetes ツールの 1 つであり、Kubernetes アプリケーションの継続的なデプロイを実行する方法です。ソース コードに変更を加えると、Skaffold はそれを自動的に検出し、ビルドとデプロイメントのプロセスをトリガーし、エラーが発生した場合は警告します。 Skaffold は完全にクライアント側で実行されます。既存の CI/CD パイプラインで使用でき、主に Google 独自の Bazel などのいくつかの外部ビルド ツールと統合されます。

20. Stern と Kubetail: Kubernetes のログタグ

Stern を使用すると、Kubernetes のポッドとコンテナから (tail コマンドに従って) 色分けされた出力を生成できます。これは、複数のリソースからのすべての出力を、一目で読み取れる単一のストリームに簡単に結合する方法です。同時に、フローを一目で区別することができます(色分け)。

Kubetail は、複数のポッドからのログを 1 つのストリームに集約し、異なるポッドとコンテナを色分けします。しかし、Kubetail は Bash スクリプトなので、必要なのはシェルだけです。

21. Teresa: Kubernetes 用のシンプルな PaaS

Teresa は、Kubernetes 上でシンプルな PaaS として実行されるアプリケーション デプロイメント システムです。チームに編成されたユーザーは、自分に属するアプリケーションを展開および管理できます。これにより、特定のアプリケーションから信頼されているユーザーは、Kubernetes を直接操作することなく、そのアプリケーションを簡単に使用できるようになります。

22. Tilt: Kubernetes クラスターへのコンテナの更新

Windmill Engineering によって開発された Tilt は、Dockerfiles への変更をリアルタイムで監視し、それらの変更を Kubernetes クラスター内の対応するコンテナーに段階的にデプロイします。基本的に、開発者は Dockerfile を更新するだけでライブ クラスターをリアルタイムで更新できるようになります。 Tilt はクラスター内でビルドを実行し、変更はソース コードに対して行われます。

元のリンク:

https://www.infoworld.com/article/3261450/22-open-source-tools-that-make-kubernetes-better.html?nsdr=true

<<:  分散 SQL データベース開発における 6 つの技術的課題

>>:  ハイブリッド IT クラウド アーキテクチャとは何ですか?

推薦する

サーバーNV-$5/KVM/1g メモリ/55g ハードディスク/1.25T トラフィック/G ポート/英国

serversnv は正式に登録された会社 (No.09023246) で、現在は主に KVM と ...

Baidu Knowsにおける世論と広報の予防と対処方法

ウェブサイトのキーワードのランキングを最適化する場合でも、検索エンジンでの製品コンテンツのカバレッジ...

分散データベースとキャッシュの二重書き込み一貫性ソリューションの分析

なぜこの記事を書くのですか?まず、キャッシュは、その高い同時実行性と高いパフォーマンスにより、プロジ...

V Chat CPS Allianceはオンラインでお金を稼ぐための新しい出発点です

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

オープンソースのKVMカーネル仮想化技術とその管理方法の詳細な説明

[[334645]] Qemu-kvmは仮想マシンを作成および管理します1. KVM の概要KVM...

TDesign は、Tencent Design Cloud の機能の重要な部分であるオープンソースとして正式にリリースされました。

インターネットの急速な発展に伴い、製品の規模と機能は増大し、開発シナリオはより複雑になり、従来の設計...

クラウドの変化: クラウドとインテリジェンスの変化

気づいているかどうか分かりませんが、2019 年以降、パブリック クラウドは、決して静かではなかった...

360度検索トラフィックの急増には理由があり、将来的にそれを維持できるかどうかが鍵となる

2012年8月16日、360は検索エンジンに参入し始め、数え切れないほどのウェブマスターの注目を集め...

コンテンツが王様の時代にオリジナル記事を作成する方法

業界に入る前から、SEO では「外部リンクが重要、内部リンクが重要」ということが強調されていることを...

3大検索エンジンが再び私に扉を開いてくれるように

検索エンジンは、毎年恒例の CCTV 春節祝賀会と同じように、多くの人に愛され、嫌われ、喜ぶ人もいれ...

Qunar.com の Kubernetes/Ceph ベースの GPU クラウド プラットフォーム プラクティス

[51CTO.comからのオリジナル記事] 今年、ディープラーニング分野で最もホットなニュースは、A...

スライス サーバー: E-2288G、128G メモリ、NVMe、4 つの RTX3090 グラフィック カード、1Gbps 帯域幅、無制限のトラフィック、超高 DDoS 保護

以前、スライシングサーバーを紹介しました。最も強力なのは、8つのGTX1080Tiです。今回は、4つ...

検索エンジン「百度」が死んだのではなく、コンテンツが消えたのだ

検索エンジン「百度」は死んだという最近の記事が白熱した議論を巻き起こしている。 「百度」という言葉が...

中国での優れたSEOは井の中の蛙ではない

みなさんこんにちは。私の名前はLiang Lei、オンライン名はStoneです。初心者にとって、SE...

WeChatのボーナス期間を振り返る:チャネルの沈没、ソーシャルeコマース、消費のアップグレード!

VC である限り、転職したいときには必ず、次のような致命的な質問が待っています。「過去数年間で推進し...