|
パート1では、OpenAIの人気オープンソースツール4つを紹介しました。本日のパート2では、さらに3つのOpenAIのオープンソースツールを紹介し、Appilotに関連するコンテンツをいくつかご紹介します。 Kubectl-GPT Kubectl-GPTは、 GPTモデルを用いて自然言語入力から インストール自家製: # Homebrew をインストール: https://brew.sh/ brew tap devinjeon/kubectl-gpt https://github.com/devinjeon/kubectl-gpt kubectl-gpt をインストールします クルー: # Krew をインストール: https://krew.sigs.k8s.io/docs/user-guide/setup/install/kubectl krew index add devinjeon https://github.com/devinjeon/kubectl-gpt kubectl krew で devinjeon/gpt をインストールします。 コマンドライン ツールを実行し、 kubectl gpt "<やりたいこと>" 前提条件始める前に、OpenAI API キーを 次に OPENAI_API_KEY=<あなたのキー>をエクスポートします もちろん、これは OpenAI GPT API でサポートされている言語によって異なります。 # 英語kubectl gpt "すべての名前空間内のすべてのポッドの作成時間とポッド名を出力します。"kubectl gpt "すべてのポッドのメモリ制限とリクエストを出力します。"kubectl gpt "coredns デプロイメントのレプリカ数を 2 に増やします。"kubectl gpt "コンテキストを kube-system 名前空間に切り替えます。" キューブ・コパイロットこれはOpenAIを搭載したKubernetes Copilotです。主な機能は次のとおりです。
インストールKubernetes で実行する場合: オプション 1: Helm で Web UI を使用する (推奨) # オプション 1: OpenAIexport OPENAI_API_KEY="<replace-this>"helm install kube-copilot kube-copilot \ --repo https://feisky.xyz/kube-copilot \ --set openai.apiModel=gpt-4 \ --set openai.apiKey=$OPENAI_API_KEY# オプション 2: Azure OpenAI Serviceexport OPENAI_API_KEY="<replace-this>"export OPENAI_API_BASE="<replace-this>"helm install kube-copilot kube-copilot \ --repo https://feisky.xyz/kube-copilot \ --set openai.apiModel=gpt-4 \ --set openai.apiKey=$OPENAI_API_KEY \ --set openai.apiBase=$OPENAI_API_BASE# サービスへのリクエストの転送kubectl port-forward service/kube-copilot 8080:80echo "copilot を使用するには、http://127.0.0.1:8080 にアクセスしてください" オプション2: CLIでkubectlを使用する kubectl 実行 -it --rm コパイロット \ --env="OPENAI_API_KEY=$OPENAI_API_KEY" \ --restart=しない\ --image=ghcr.io/feiskyer/kube-copilot \ -- execute --verbose 'クラスター内で最大メモリを使用しているポッドはどれですか' ローカルにインストール: 次の pip コマンドを使用して copilot をインストールします。 pipでkube-copilotをインストールする 設定
CLI 方式の使用: ターミナルで直接実行します。 使用方法: kube-copilot [OPTIONS] COMMAND [ARGS]... OpenAI を搭載した Kubernetes Copilot オプション: --version バージョンを表示して終了します。 --help このメッセージを表示して終了します。 コマンド: 特定のリソースの問題を分析する ポッドのセキュリティ問題を監査する ポッドの問題を診断する プロンプトの指示に基づいて操作を実行する Kubernetes マニフェストを生成する Pod のセキュリティ問題の監査: 使用方法: kube-copilot audit [OPTIONS] POD [NAMESPACE] PodOptions のセキュリティ問題を監査します。 --verbose コパイロット実行ステップの詳細情報を有効にする --model MODEL コパイロット実行に使用する OpenAI モデル。デフォルトは gpt-4 --help このメッセージを表示して終了します。 Pod の問題の診断: 使用方法: kube-copilot diagnose [OPTIONS] POD [NAMESPACE] PodOptions の問題を診断します。 --verbose コパイロット実行ステップの詳細情報を有効にする --model MODEL コパイロット実行に使用する OpenAI モデル。デフォルトは gpt-4 --help このメッセージを表示して終了します。 K8s オブジェクトの潜在的な問題を分析する: 使用方法: kube-copilot analyze [オプション] リソース名 [名前空間] 特定のリソースに関する問題を分析するオプション: --verbose コパイロット実行ステップの詳細情報を有効にする --model TEXT コパイロット実行に使用する OpenAI モデル。デフォルトは gpt-4 --help このメッセージを表示して終了します。 使用方法: kube-copilot execute [OPTIONS] INSTRUCTIONSプロンプトの指示に基づいて操作を実行します オプション: --verbose コパイロット実行ステップの詳細情報を有効にする --model MODEL コパイロット実行に使用する OpenAI モデル。デフォルトは gpt-4 --help このメッセージを表示して終了します。 Kubernetes マニフェストを生成します。`kube 使用方法: kube-copilot generate [OPTIONS] INSTRUCTIONSKubernetesマニフェストを生成する オプション: --verbose コパイロット実行ステップの詳細情報を有効にする --model TEXT コパイロット実行に使用する OpenAI モデル。デフォルトは gpt-4 --help このメッセージを表示して終了します。 Kubernetes ChatGPTボットこれはKubernetesの問題を扱うChatGPT1ボットです。Prometheusアラートの解決方法をAIに尋ね、簡潔な回答を得ることができます。 PrometheusはWebhookレシーバーを介してボットにアラートを転送します。その後、ボットはOpenAIにアラートの修正方法を尋ねるクエリを送信します。ユーザーは結果を辛抱強く待つだけです。 このボットは、Kubernetesアラートに応答するためのオープンソースプラットフォームであるRobusta.devを使用して実装されています。また、マルチクラスターKubernetesオブザーバビリティのためのSaaSプラットフォームも提供しています。 設定するには Slack ワークスペースが前提条件となります。 その後は、次の操作を行うだけです。
プレイブックリポジトリ:
チャットgpt_robusta_actions:
url: "https://github.com/robusta-dev/kubernetes-chatgpt-bot.git"customPlaybooks:# すべての Prometheus アラート トリガーに「ChatGPT に質問」ボタンを追加します。
- on_prometheus_alert: {} アクション:
- チャットgptエンリッチャー: {}
グローバル設定: chat_gpt_token: ここにキーを入力してください
ヘルムアップグレード ロブスタ ロブスタ/ロブスタ --values=生成された値.yaml --set clusterName=<クラスター名>
デモンストレーションまず、破損したポッドをデプロイして、保留状態のままにします。 kubectl apply -f https://raw.githubusercontent.com/robusta-dev/kubernetes-demos/main/pending_pods/pending_pod_node_selector.yaml 通常の遅延をスキップして、Prometheus アラートを直ちにトリガーします。 robusta プレイブックは prometheus_alert をトリガーします。alert_name=KubePodCrashLooping namespace=default pod_name=example-pod Slackにボタン付きのアラートが表示されます。ボタンをクリックすると、ChatGPTにアラートに関する情報を問い合わせることができます。 アピロットAppilotは、DevOpsシナリオ向けのオープンソースAIアシスタントです。AI大規模言語モデルの機能を最大限に活用し、ユーザーが自然言語を直接入力できるようにすることで、Kubernetes管理エクスペリエンスをさらに簡素化します。 Appilotは、大規模な言語モデルに基づく推論を実行し、ローカルPC上で実行できます。ユーザーは、ニーズや利用習慣に応じてAppilotを任意のプラットフォームに統合することができ、自然言語を入力するだけでバックエンドプラットフォームの機能を呼び出し、アプリケーション管理、環境管理、Kubernetesデバッグなどのタスクを容易に実行できます。 Appilot プロジェクトは https://github.com/seal-io/appilot にあります。 |