k8sGPTの構築と確認

はじめに

Kubernetesトラブルシューティングを行うことができるk8sGPTを試してみる。

環境

  • Ubuntu20.04.6

構築と確認

OpenAPIのキーの取得

k8sGPTの使用にはOpenAPIのキーが必要である。

www.value-domain.com を参考にOpenAPIのキーを取得する。

構築と確認

github.com を参考に構築と確認を行う。

$ curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.26/k8sgpt_amd64.deb
$ sudo dpkg -i k8sgpt_amd64.deb

$ k8sgpt generate

Please open: https://beta.openai.com/account/api-keys to generate a key for openai

Please copy the generated key and run `k8sgpt auth add` to add it to your config file

exec: "xdg-open": executable file not found in $PATH
ubuntu@5gran-5gc:~/k8sgpt$ k8sgpt generate


Please open: https://beta.openai.com/account/api-keys to generate a key for openai

Please copy the generated key and run `k8sgpt auth add` to add it to your config file

exec: "xdg-open": executable file not found in $PATH

# キーの入力
$ k8sgpt auth add
Warning: backend input is empty, will use the default value: openai
Warning: model input is empty, will use the default value: gpt-3.5-turbo
Enter openai Key: openai added to the AI backend provider list

次に、k8sGPTの動作を確認する。

www.creationline.com を参考に確認してみる

$ cat privileged.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: k8sgpt-test
  labels:
    pod-security.kubernetes.io/enforce: baseline
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: privileged
  name: privileged
  namespace: k8sgpt-test
spec:
  selector:
    matchLabels:
      app: privileged
  template:
    metadata:
      labels:
        app: privileged
    spec:
      containers:
      - image: nginx
        name: nginx
        securityContext:
          privileged: true


$ kubectl apply -f privileged.yaml

# 確認
$ k8sgpt analyze --explain
AI Provider: AI not used; --explain not set

0 k8sgpt-test/privileged()
- Error: Deployment k8sgpt-test/privileged has 1 replicas but 0 are available

1 k8sgpt-test/privileged-7f68864945(Deployment/privileged)
- Error: pods "privileged-7f68864945-wp4mj" is forbidden: violates PodSecurity "baseline:latest": privileged (container "nginx" must not set securityContext.privileged=true)

問題を検出することができた。

問題を解決すると以下のような出力になる。

$ k8sgpt analyze --explain
AI Provider: openai

No problems detected

参考

www.value-domain.com

github.com

www.creationline.com