背景現在、AIはあらゆる分野や業界で話題になっています。 Kubernetes ベースの DevOps アプリケーション開発シナリオも例外ではありません。特に自動化、効率的な開発、効率的な運用と保守を追求するユーザー向けです。 そのため、最近のChatGPTの人気を受けて、Kubernetesと組み合わせた関連プロジェクトも登場し始めています。また、K8s エコシステムを充実させるために最近登場した、OpenAI と ChatGPT がサポートするオープンソース ツールについても見てみましょう。 以下で説明するツールのほとんどは、グラフィカルな使用ではなく、ターミナル (CLI) での使用向けに設計されています。 AI による K8s のトラブルシューティング1. K8SGPT
k8sgpt は、Alex Jones が「すべての人に Kubernetes の機能を提供する」という目標を掲げて開始したもので、この種のプロジェクトの中で最も有名かつ著名なプロジェクトです。 k8sgpt は現在、主に CLI を通じて機能を実装しており、これを使用してクラスター内のエラーを迅速に診断できます。 k8sgpt analyze は、Kubernetes クラスターの問題を検出して警告するように設計されています。これは、各 K8s オブジェクトの論理オブジェクトと、発生する可能性のある問題を定義する「アナライザー」を使用して行われます。たとえば、Kubernetes サービスのアナライザーは、特定のサービスが存在するかどうか、およびそのエンドポイントの準備ができているかどうかを確認します。 このような問題を発見すること自体は大したことではありませんが、その背後にあるロジックは単純ではありません。既存の問題を解決する方法を説明するように k8sgpt に要求すると、魔法が起こります。k8sgpt analyze --explain を実行するだけです。このコマンドは、AI に特定の状況に応じた指示を出して表示するように要求します。これらの手順には、コピーして貼り付けて直接実行できる kubectl コマンドなど、トラブルシューティングを実行するためのアクションが含まれます。 写真 k8sgpt には、リソース名を非表示にする機能 (k8sgpt analyze コマンドの --anonymize オプション) があり、機密データが AI システムに送信されるのを防ぎます。これは私たちにとって非常に役に立ちます。ただし、まだすべてのアナライザーに実装されているわけではありません。 現在、k8sgpt は、Node、Pod、PVC、ReplicaSets、Services、Events、Ingresses、StatefulSets、Deployments、CronJobs、NetworkPolicies、さらには HPA や PDB など、Kubernetes オブジェクト用の多くの組み込みアナライザーを提供しています。カスタム アナライザーを作成して拡張するのはそれほど難しくありません。 もう 1 つの利点は、k8sgpt が単一の AI システムに限定されないことです。 OpenAI はデフォルトでサポートされているため、GPT-3.5-Turbo および GPT-4 言語モデルにアクセスできます。ただし、現在以下を含む他の AI プロバイダーから選択することもできます。
K8sgpt は統合 API シナリオで使用でき、外部ツールを活用してその関数を呼び出して Kubernetes の問題を解決できます。これまでに実装された唯一の統合は、比較的よく知られているオープンソースのセキュリティ スキャナー Trivy との統合です。 k8sgpt 統合のアクティブ化 trivy を介してこれを有効にすると (Trivy Operator がクラスターにすでにインストールされていると想定)、VulnerabilityReport という新しい k8sgpt フィルターが作成されます。最後に、k8sgpt analyze --filter VulnerabilityReport を通じてアクセスできます。 最後に、k8sgpt のもう 1 つの機能は、クラスター内に Kubernetes オペレーターとしてインストールできることです。これを行うには、ここで提供されている Helm チャートを使用します。 k8sgpt 構成オブジェクト (種類: K8sGPT) をインストールして適用すると、ツールはクラスターを分析し、スキャン結果を Results オブジェクトに保存します。つまり、kubectl get results -o json | を実行することで、取得した結果を表示できます。 jq 。 写真 k8sgpt はコミュニティに大きな影響を与えます。 k8sgpt は K8s の問題のトラブルシューティングに重点を置いており、この目的のために設計されたすぐに使用できる機能が多数含まれています。さらに、次の機能があります。
2. Kubernetes ChatGPTボット
Robusta によって作成されたこのプロジェクトは、Slack に表示されるアラートと AI を統合することで Kubernetes の問題を解決することに重点を置いています。 このボットを活用するには、次の要件に従う必要があります。
すべての準備が整ったら、Webhook を使用して Slack に監視アラートを送信できます。ボットは Slack アラートに「ChatGPT に質問」ボタンを追加します。ボタンをクリックすると、AI にクエリが実行され (OpenAI API キーを使用)、AI からの応答が返され、アラートの原因となった問題を解決するための推奨アクションを実行するようにガイドされます。 写真 今のところ、それはそれほど簡単です。ただし、著者らは、Pod ログや kubectl get イベント出力などの追加データを AI に提供することで、AI の動作をさらに改善できると示唆しています。 Kubectl AI駆動プラグイン1. kubectl-ai
このプロジェクトはk8sgptの1日前に誕生しました。違いは、人工知能と Kubernetes を異なる方法で組み合わせていることです。 このプロジェクトは、OpenAI GPT を使用して Kubernetes マニフェストを生成および適用する kubectl プラグインです。 以下は README で提供されている簡単な例です。 Reprompt オプションを使用すると、特定のパラメータを変更して、生成されたマニフェストを調整できます。一度に複数のマニフェストを生成できます。これは、デプロイメントやサービスなどの相互に関連するオブジェクトに適しています。提案が実際のニーズに一致する場合は、クラスターに簡単に適用できます。 その後、kubectl ai を使用して、既存の Kubernetes オブジェクトを変更してスケーリングしたり、他のパラメータを変更したりすることもできます。 AI に関しては、kubectl-ai は OpenAI API、Azure OpenAI サービス、LocalAI (7 月 31 日に統合された最新の追加) をサポートしています。デフォルトの言語モデルは GPT-3.5-Turbo で、GPT-4 もサポートされています。 2. kubectl-gpt
このプラグインは、Kubernetes クラスターに要件を実装する (つまり、要件を人間の言語で記述してから機能を実装する) ことだけを目的とした kubectl gpt コマンドを導入します。以下はプラグインのドキュメントからの例です。 このツールは、推奨結果を出力するだけでなく、K8S クラスター内のオブジェクトを直接操作することもできます。どちらの場合でも、コマンドは実行されますが、最初に表示されるので、それを確認して続行するかどうかを確認できます。必要に応じて、これらの機能を無効にすることもできます (生成されたコマンドを印刷する/確認を求める)。 Kubectl-gpt を実行するには OpenAI API キーが必要です。 GPT-3 のみがサポートされており、GPT-3.5-Turbo はデフォルトで有効になっています。 OpenAI GPT API でサポートされている任意の人間の言語を使用できます。 このプロジェクトは独立した愛好家によって開発されており、5月末から更新されていません。 Kubernetes 向けのその他の AIOps ツールこのカテゴリで説明されているすべてのプロジェクトは、ほぼ同時に開始されました。 Kubernetes クラスターを運用する際に、AI を活用したさまざまな機能をユーザーに提供するという同様の考えを持っています。これらすべてのプロジェクトの統計も同様です。貢献者は 1 人または数人、スターは約 100 個、コミットは数十件です。それぞれがどのような機能を提供し、どう違うのかを見てみましょう。 1. コパイロット
Kopilot は、後者の 3 つのプロジェクトの中で Go で書かれた唯一のプロジェクトです。トラブルシューティングと監査の 2 つの機能が含まれます。では、それらの具体的な機能は何でしょうか?
写真
このツールは、OpenAI API トークンと提供された質問を使用して回答します。公式の README には、将来的には他の AI サービスを使用するオプションも利用可能になると記載されています。 残念なことに、4 月初旬以降、プロジェクトへのコミットがまったく行われておらず、これは明らかに心配なことです。 2. コピーロット
このツールには同様の監査および診断機能があり、「チャット」コマンドを提供することでこれを実現します。チャットボットのような体験を提供します。英語で特定の操作を尋ねると、それが kubectl コマンドに翻訳されます。印刷されたコマンドが問題ない場合は、その実行を確認できます。 kubectl-gpt で経験したのと同じです。 写真 Kopylot は、任意のコマンドを直接実行できる kubectl の拡張機能である「ctl」コマンドも提供します。この機能の目的は、単なるコマンド kubectl クライアントではなく、Kubernetes を使用するときに Kopylot を最適なアシスタントにすることのようです。 現在、kopylot は OpenAI API キーのみをサポートしており、他の人間の言語では使用できません。これは、レガシー モデルと見なされる text-davinci-003 GPT-3.5 モデル (ハードコード) に依存しています。ただし、他の LLM モデルの使用のサポートはプロジェクトのロードマップに記載されています。 しかし、最新バージョンのリリース日は 4 月 4 日であるため、これは起こりそうにありません。 3. kubeコパイロット
Kubernetes Copilot は、マルチツール機能セットを新たなレベルに引き上げます。このマルチツールは、Kubernetes のトラブルシューティング、監査、実行機能に加えて、プロンプトに基づいてマニフェストを生成することもできます (kubectl-ai と同様)。 ちなみに、kube-copilot の監査機能はあなたが思っているよりも強力です。このツールには、K8s リソースの潜在的な問題を明らかにする「分析」コマンド (kopilot 監査と同じ) がある一方、「監査」コマンドもあります。後者は、Trivy スキャナーを使用して、Pod のセキュリティ上の問題を具体的に探します。 kube-copilot のもう 1 つの機能は、コマンド CLI と Web UI の両方を提供していることです。 Web UI は非常にシンプルで、一部のユーザーにとっては非常に好まれる機能である可能性があります。 写真 最後に紹介する CLI 機能は、Google 検索を使用できることです。おそらく、いくつかの問題は ChatGPT よりもこの方法で解決したほうがよいかもしれません。しかし、私の意見では、これは K8s 関連ツールの最も重要な機能ではありません。 AI サポートの場合、kube-copilot は OpenAI API キーまたは Azure OpenAI サービスと共に使用できます。 GPT-3.5 および GPT-4 モデルを使用できるようになります。 このツールは 1 人の開発者によって開発されましたが、コードのコミット履歴は良好です。ただし、現在のところ、公開ロードマップも、ツールがどのように開発されるかを示す問題もありません。 他のOpenAI をベースにした Kubernetes ツールやサービスは他にもたくさんありますが、以下で簡単に紹介します。 Botkube by Kubeshop は、Slack、Mattermost、Discord、または Microsoft Teams で Kubernetes クラスターを監視およびデバッグするためのメッセージング ボット (別名 ChatOps) です。最近追加された Doctor プラグイン (https://docs.botkube.io/usage/executor/doctor/) は、2 つの異なる方法で AI に接続します。1) チャットボットに直接質問する。 2) エラー イベントのすぐ下に表示される「ヘルプを取得」ボタンを使用します。ボットは、あなたの質問や特定の問題について AI が生成した提案で応答します。この Botkube プラグインを有効にするには、OpenAI API キーが必要です。 写真 metaKube の KubeGPT は CLI ツールではなく、Web ブラウザーで AI と Kubernetes について話し合えるオンライン チャットです。通常の ChatGPT と同様に、質問 (Kubernetes アーキテクチャやベスト プラクティスなど) に回答し、特定の YAML マニフェストを生成することができます。 写真 実際、他の技術的な問題の解決にも役立ちます。たとえば、Nomad に関する情報も提供します。 Ubuntu Linux のインストール手順も説明してくれました。ただし、その中核は依然として Kubernetes であるため、将来の形では他の要求にはあまり役立たないはずです。このサービスは現在ベータ版です。 MagicHappen は PoC オペレーターであり、楽しみと実験のみを目的としています。これは、人間の言語でタスクを記述できる新しい CRD ( kind: MagicHappens ) を定義します (例: 「名前空間を作成してデプロイする」)。オペレーターはこの説明を含む YAML マニフェストを受信すると、それを OpenAI に送信して関連する YAML を取得し、生成されたこのマニフェストをクラスターに適用します。 4 月以降、このプロジェクトに新しいコミットは行われていないことに注意してください。 Kube or Fake は、ChatGPT によって生成された 5 つの Kubernetes 用語を提供する興味深いオンライン サービスです。推測ゲームを通じて正確なサービスを見つけます。 最後に、最近、さまざまな有名なツールに OpenAI を利用した機能が組み込まれました。実際、そのようなツールはすでにたくさん存在しており、この記事ではすべてではなく、いくつかを簡単に紹介するだけです。以下は時系列順に並べたものです。
要約するAIOps は私たちに大きな変化をもたらしました。まだ改善の余地はありますが、オープンソース エコシステムは、Kubernetes の管理者とユーザーに Kubernetes を効率的に使用する多くの方法を提供しています。
現在、AIOps は非常に急速に発展しています。多くの新しいプロジェクトが生まれていることがわかります。同時に、多くのプロジェクトは徐々に人気を失い、最終的には消滅しますが、全体的な傾向としては急速に発展し、クラウド ネイティブ エコシステムの最も重要なコンポーネントの 1 つになりつつあります。 元記事: https://blog.palark.com/chatgpt-tools-for-kubernetes/ |
<<: 分散アーキテクチャとクラウドネイティブを実装する方法
>>: ゲーム業界の幹部が語る: クラウド サービスを活用してゲーマーの関心を維持する方法
私自身の業務経験や情報をもとにまとめたブランドマーケティング運用マニュアルです。ブランド マーケティ...
ウェブサイトの最適化がこれほど普及した今、当然ながら現在の業界に参入する新人が増えています。最近会社...
Kubernetes 上でサーバーレス関数を実行する際に、起動が高速化され、メモリ フットプリントが...
はじめに:Lu Songsong のブログ - 独創性は Baidu の支持を得られない宋達達氏のこ...
何年も前にハイブリッド クラウドについて議論されていたとき、クラウド バーストが大流行していました。...
[[318600]]導入 1960 年代と 1970 年代には、ソフトウェア開発者は、通常、メインフ...
dedecms でいくつかのウェブサイトを構築したので、最近いろいろなことを感じています。また、私の...
11月3日、アリババは2022年雲奇カンファレンスで、自社開発のCPU「易天710」が広く使用されて...
サイトナビゲーションネットワークのリーダーは、Baiduに「中央ラジオテレビ大学の登録電話番号」を入...
[[421933]] kafka_2.8.0 より前では、kafka を実行するには依然として zo...
Nexusbytes は長年運営されていますが、その人気はここ 1 ~ 2 年でわずかに高まっただけ...
raksmart は、ブティック ネットワーク (cn2+bgp) に接続された新しいシンガポール ...
ビリビリの電子商取引のストーリーがライブストリーミングや動画販売によって継続されるのではなく、会員購...
ハイブリッド クラウド環境で Kubernetes を観察するには、分散システムの動作とパフォーマン...
長い休暇が終わり、ウェブマスターは仕事に戻りました。多くのウェブマスターはまだ長い休暇から回復してい...