🫣
Tried k8sgpt job
こんにちは。Enabling team の山本です。
今回は、k8sgpt について書きます。
ChatGPT の登場以降、Engineer としての存在意義を考えざるをえない状況にあると思います。
今回、検証する k8sgpt
は、次のとおり説明されています。
Giving Kubernetes SRE superpowers to everyone
今の自分の Role の消滅さえ近づいている 😱
ひとまず、k8sgpt
について活用方法を調べていきます。
k8sgpt
については、いろんな方が記事を残していますので、使い方は割愛します。
今回、Job
として、k8sgpt
を動かすことによって、自動的に Cluster のエラーを通知する仕組みを考察します。
TL;DR
- 分析した内容を Webhook で通知することは可能。
- 情報の漏洩を考えると、Production 環境で運用することは難しい。Staging 環境で分析し、その内容を Production 環境に反映することは可能かも。
RBAC の準備
apiVersion: v1
kind: ServiceAccount
metadata:
name: gpt-ksa
namespace: gpt
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: gpt-cr
namespace: gpt
rules:
- apiGroups:
- '*'
resources:
- '*'
verbs:
- '*'
- nonResourceURLs:
- '*'
verbs:
- '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: gpt-crb
namespace: gpt
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: gpt-cr
subjects:
- kind: ServiceAccount
name: gpt-ksa
namespace: gpt
Job の作成
apiVersion: batch/v1
kind: Job
metadata:
name: gpt-job-e
namespace: gpt
spec:
template:
spec:
serviceAccountName: gpt-ksa
containers:
- name: gpt-job
image: google/cloud-sdk
command: ["bash", "-c"]
args:
- curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.2.4/k8sgpt_amd64.deb && dpkg -i k8sgpt_amd64.deb && k8sgpt version && k8sgpt auth --password=************* && k8sgpt analyze --language Japanaese --explain --no-cache
restartPolicy: Never
backoffLimit: 4
EOF
結果
yamamoto_daisuke@cloudshell:~ (hoge-334000)$ k logs gpt-job-e-gstgv -n gpt
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 16.3M 100 16.3M 0 0 10.5M 0 0:00:01 0:00:01 --:--:-- 51.0M
Selecting previously unselected package k8sgpt.
(Reading database ... 98425 files and directories currently installed.)
Preparing to unpack k8sgpt_amd64.deb ...
Unpacking k8sgpt (0.2.4) ...
Setting up k8sgpt (0.2.4) ...
k8sgpt version 0.2.4
Using openai as backend AI provider
New provider added
key added
100% |███████████████████████████████████████████████| (1/1, 9 it/min)
0 gpt/hoge(hoge)
- Error: Back-off pulling image "hoge"
エラーメッセージ:「バックオフイメージ「hoge」の引き出し」
このエラーメッセージは、Kubernetesが指定されたコンテナイメージを取得できなかったことを示しています。このエラーの原因は、Dockerレジストリからイメージをダウンロードするために必要な権限が不足していることがあります。
解決策:
1. イメージの名前が正しいか確認します。
2. 既存のイメージと同じ名前のイメージが存在しないか確認します。
3. Dockerレジストリにログインして、必要な権限があることを確認します。
4. インターネット接続が正常に行われているか確認します。
以上の対処法を行い、再度実行してみてください。
yamamoto_daisuke@cloudshell:~ (hoge-334000)$
まとめ
k8sgpt
について書きました。
今後は、分析だけではなく、対話しながら解決に導かれるような運用になっていくことも考えられます。
GPT とどのように付き合っていくのか、試行錯誤していきます。
Discussion