Rumah > Peranti teknologi > AI > Penyelesaian masalah terlalu menjengkelkan, cuba kuasa super GPT

Penyelesaian masalah terlalu menjengkelkan, cuba kuasa super GPT

王林
Lepaskan: 2024-03-14 19:52:14
ke hadapan
1268 orang telah melayarinya

Apabila menggunakan Kubernetes, anda pasti akan menghadapi masalah dalam kluster, yang perlu dinyahpepijat dan dibaiki untuk memastikan Pod dan perkhidmatan boleh berjalan seperti biasa. Sama ada anda seorang pemula atau pakar dalam menangani persekitaran yang kompleks, proses penyahpepijatan dalam kelompok tidak selalunya mudah dan boleh memakan masa dan membosankan. Dalam Kubernetes, kunci untuk mendiagnosis masalah ialah memahami hubungan antara komponen dan cara ia berinteraksi. Alat pembalakan dan pemantauan adalah kunci kepada penyelesaian masalah dan boleh membantu anda mencari dan menyelesaikan masalah dengan cepat. Selain itu, pemahaman yang mendalam tentang konfigurasi sumber Kubernetes dan mekanisme penjadualan juga merupakan bahagian penting dalam menyelesaikan masalah. Apabila menghadapi masalah, pastikan dahulu kluster dan aplikasi anda dikonfigurasikan dengan betul. Kemudian, cari punca masalah dengan melihat log, penunjuk pemantauan dan peristiwa. Kadangkala masalah mungkin melibatkan konfigurasi rangkaian, isu storan atau pepijat dalam aplikasi itu sendiri, yang perlu dipertimbangkan dengan teliti Dalam persekitaran asli awan, terdapat pelbagai penyelesaian penyahpepijatan untuk dipilih yang boleh membantu anda mengakses maklumat dengan mudah dalam kelompok. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kebanyakan penyelesaian tidak menyediakan maklumat kontekstual yang lengkap.

Dalam catatan blog ini, saya akan memperkenalkan anda kepada K8sGPT, sebuah projek yang bertujuan untuk menjadikan kuasa besar Kubernetes tersedia kepada semua orang.

Senario aplikasi K8sGPTPenyelesaian masalah terlalu menjengkelkan, cuba kuasa super GPTIkhtisar

K8sGPT ialah projek sumber terbuka sepenuhnya yang dilancarkan pada April 2023 oleh sekumpulan jurutera ekosistem asli awan yang berpengalaman. Idea teras projek ini adalah menggunakan model kecerdasan buatan untuk memberikan penjelasan terperinci dan kontekstual untuk mesej ralat Kubernetes dan cerapan kelompok.

PicturesPenyelesaian masalah terlalu menjengkelkan, cuba kuasa super GPTProjek ini telah diterima pakai oleh dua organisasi dan memohon untuk menjadi projek kotak pasir CNCF. Visi projek ini adalah untuk membina model pembelajaran mesin berorientasikan tugas untuk Kubernetes.

Projek ini sudah menyokong berbilang pilihan pemasangan dan bahagian belakang AI yang berbeza. Dalam artikel ini, saya akan menunjukkan kepada anda cara memasang dan mula menggunakan K8sGPT, alatan dan Operator CLI dan cara K8sGPT menyokong penyepaduan lain.

Pemasangan

Terdapat pelbagai pilihan pemasangan yang tersedia bergantung pada pilihan dan sistem pengendalian anda. Anda boleh menemui pilihan yang berbeza dalam bahagian pemasangan dokumentasi K8sGPT.

Prasyarat untuk memasang K8sGPT seperti yang diterangkan di bawah ialah memasang Homebrew pada Mac atau WSL pada komputer Windows.

next, anda boleh menjalankan arahan berikut:

brew tap k8sgpt-ai/k8sgptbrew install k8sgpt
Salin selepas log masuk
e
Opsyen pemasangan

RPM berasaskan pemasangan (redhat/centos/fedora)

32-bit:

curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.6/k8sgpt_386.rpmsudo rpm -ivh k8sgpt_386.rpm
Salin selepas log masuk

64-bit:

r
curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.6/k8sgpt_amd64.rpmsudo rpm -ivh -i k8sgpt_amd64.rpm
Salin selepas log masuk
e

Pemasangan berasaskan DEB (Ubuntu/DEBIAN)

32 -bit:

curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.6/k8sgpt_386.debsudo dpkg -i k8sgpt_386.deb
Salin selepas log masuk
E

64 -bit:

curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/download/v0.3.6/k8sgpt_amd64.debsudo dpkg -i k8sgpt_amd64.deb
Salin selepas log masuk

Untuk mengesahkan sama ada
k8sgpt versionk8sgpt: 0.3.6 (9c0efe6), built at: unknown
Salin selepas log masuk
E

64 -bit:

k8sgpt --help
Salin selepas log masuk

Untuk mengesahkan sama ada
k8sgpt generate
Salin selepas log masuk
E: anda boleh menyemak sama ada RRREE: SGPT telah dipasang dengan betul

K8SGPT CLI

Untuk melihat semua arahan yang disediakan oleh K8sGPT, gunakan bendera --help:

k8sgpt auth add openaiEnter openai Key: openai added to the AI backend provider list
Salin selepas log masuk

Seterusnya, kami perlu membenarkan AI ​​backend. Dalam artikel ini kami akan menggunakan OpenAI.

Prasyarat

Prasyarat untuk mengikuti bahagian seterusnya ialah mempunyai akaun OpneAI dan gugusan Kubernetes yang sedang berjalan seperti microk8s atau minikube yang sudah memadai.

Selepas anda mempunyai akaun OpneAI, anda perlu melawati alamat ini https://platform.openai.com/account/api-keys untuk menjana kunci API baharu

Sebagai alternatif, anda boleh menjalankan arahan berikut dan K8sGPT akan dalam penyemak imbas lalai Buka alamat yang sama:

k8sgpt auth listDefault:> openaiActive:> openaiUnused:> localai> azureopenai> noopai
Salin selepas log masuk
K8sGPT Kunci ini diperlukan untuk berinteraksi dengan OpenAI. Kebenaran K8sGPT menggunakan kunci/token API yang baru dibuat:

apiVersion: apps/v1kind: Deploymentmetadata:name: nginx-deploymentlabels:app: nginxspec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80securityContext:readOnlyRootFilesystem: true
Salin selepas log masuk
Anda boleh menyenaraikan backend anda menggunakan arahan berikut:

kubectl create ns demonamespace/demo createdkubectl apply -f ./deployment.yaml -n demodeployment.apps/nginx-deployment created
Salin selepas log masuk
Seterusnya, kami akan menggunakan Deployment pengecualian dalam kelompok Kubernetes, Pod akan menjadi CrashLoopBackOff . Berikut ialah YAML:

WarningBackOff 3s (x8 over 87s)kubelet Back-off restarting failed container
Salin selepas log masuk
Seterusnya, kami akan mencipta ruang nama demo untuk aplikasi sampel dan memasang penempatan:

k8sgpt analyse
Salin selepas log masuk

Kini anda akan melihat Pod dalam ruang nama demo kami membuang ralat: Penyelesaian masalah terlalu menjengkelkan, cuba kuasa super GPT

Gambar

Jika kita melihat acara untuk salah satu pod, tetapi kita tidak tahu punca sebenar masalah:

AI Provider: openai0 demo/nginx-deployment-5f4c7db77b-hq74n(Deployment/nginx-deployment)- Error: back-off 1m20s restarting failed cnotallow=nginx pod=nginx-deployment-5f4c7db77b-hq74n_demo(7854b793-21b7-4f81-86e5-dbb4113f64f4)1 demo/nginx-deployment-5f4c7db77b-phbq8(Deployment/nginx-deployment)- Error: back-off 1m20s restarting failed cnotallow=nginx pod=nginx-deployment-5f4c7db77b-phbq8_demo(74038531-e362-45a6-a436-cf1a6ea46d8a)2 demo/nginx-deployment-5f4c7db77b-shkw6(Deployment/nginx-deployment)- Error: back-off 1m20s restarting failed cnotallow=nginx pod=nginx-deployment-5f4c7db77b-shkw6_demo(2603f332-3e1c-45da-8080-e34dd6d956ad)
Salin selepas log masuk
Oleh itu, kita boleh menjalankan arahan K8sGPT untuk mengakses lebih banyak butiran tentang mengapa pod ini telah tersilap:

k8sgpt analyse --explain
Salin selepas log masuk
Ini akan menunjukkan kepada kami isu k8sGPT yang terdapat dalam kelompok:

k8sgpt integration listActive:Unused:> trivy
Salin selepas log masuk
Salin selepas log masuk
Untuk menerima lebih banyak maklumat dan cadangan tentang cara menyelesaikan masalah, kami boleh menggunakan yang berikut --jelaskan bendera:
🎜
k8sgpt integration activate trivy
Salin selepas log masuk
Salin selepas log masuk
🎜

附加功能

根据你的集群大小和 K8sGPT 在集群中识别的问题数量,你还可以按特定命名空间和工作负载类型进行过滤。

此外,如果你或你的组织担心 OpenAI 或其他后端接收有关你的工作负载的敏感信息,你可以使用--anonymize规避应用的敏感信息。

与其他工具的集成

云原生生态系统中大多数工具的价值源于它们与其他工具的集成程度。

在撰写本文时,K8sGPT 提供了与 Gafana 和 Prometheus 等可观察性工具的轻松集成。此外,还可以为 K8sGPT 编写插件。维护者提供的第一个插件是Trivy,一个一体化的云原生安全扫描器。

你可以使用以下命令列出所有可用的集成:

k8sgpt integration listActive:Unused:> trivy
Salin selepas log masuk
Salin selepas log masuk

接下来,我们要激活 Trivy 集成:

k8sgpt integration activate trivy
Salin selepas log masuk
Salin selepas log masuk

这将在集群内安装 Trivy Operator(如果尚未安装):

Penyelesaian masalah terlalu menjengkelkan, cuba kuasa super GPT图片

激活集成后,我们可以通过 k8sgpt 过滤器,使用 Trivy 创建的漏洞报告作为 K8sGPT 分析的一部分:

❯ k8sgpt filters listActive:> Pod> VulnerabilityReport (integration)Unused:> Deployment> ReplicaSet> Node> Service> Ingress> StatefulSet> CronJob> PersistentVolumeClaim> HorizontalPodAutoScaler> PodDisruptionBudget> NetworkPolicy
Salin selepas log masuk

过滤器对应于 k8sgpt 代码中的特定分析器。分析器仅查看相关信息,例如最关键的漏洞。

要使用 VulnerabilityReport 过滤器,请使用以下命令:

k8sgpt analyse --filter=VulnerabilityReport
Salin selepas log masuk

(FIXME)与之前类似,我们也可以要求 K8sGPT 对扫描提供进一步的解释:

k8sgpt analyse --filter=VulnerabilityReport --explain
Salin selepas log masuk

K8sGPT Operator

虽然 CLI 工具为集群管理员提供了对其基础设施和工作负载执行即席扫描的功能,但 K8sGPT Operator 在集群中全天候 (24/7) 运行。它是 Kubernetes 原生的,这意味着它作为 Kubernetes 自定义资源运行,并生成作为 YAML 清单存储在集群中的报告。

要安装 Operator,请按照以下命令进行操作:

helm repo add k8sgpt https://charts.k8sgpt.ai/helm repo updatehelm install release k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace
Salin selepas log masuk

如果你想将 K8sGPT 与 Prometheus 和 Grafana 集成,你可以通过向上面的安装提供values.yaml 清单来使用略有不同的安装:

serviceMonitor:enabled: trueGrafanaDashboard:enabled: true
Salin selepas log masuk

然后安装 Operator 或更新现有安装:

helm install release k8sgpt/k8sgpt-operator -n k8sgpt-operator-system --create-namespace --values values.yaml
Salin selepas log masuk

在本例中,我们告诉 K8sGPT 还安装一个 ServiceMonitor,它将扫描报告中的指标发送到 Prometheus,并为 K8sGPT 创建一个仪表板。如果你使用了此安装,则还需要安装 kube-prometheus-stack Helm Chart 才能访问 Grafana 和 Prometheus。这可以通过以下命令来完成:

helm repo add prometheus-community https://prometheus-community.github.io/helm-chartshelm repo updatehelm install prom prometheus-community/kube-prometheus-stack -n k8sgpt-operator-system --set prometheus.prometheusSpec.serviceMonitorSelectorNilUsesHelmValues=false
Salin selepas log masuk

此时,你应该在集群内运行 K8sGPT Operator 和 Prometheus Stack Helm Chart(也是 Kubernetes Operator)。

与我们需要向 CLI 提供 OpenAI API 密钥的方式类似,我们需要使用 API 密钥创建 Kubernetes 密钥。为此,请使用与之前相同的密钥,或者在你的 OpenAI 帐户上生成一个新密钥。

要生成 Kubernetes 密钥,请将你的 OpenAI 密钥粘贴到以下命令中:

export OPENAI_TOKEN=<your api key here>kubectl create secret generic k8sgpt-sample-secret --from-literal=openai-api-key=$OPENAI_TOKEN -n k8sgpt-operator-system</your>
Salin selepas log masuk

然后,我们需要配置 K8sGPT Operator 以了解要使用哪个版本的 K8sGPT 以及哪个 AI 后端:

apiVersion: core.k8sgpt.ai/v1alpha1kind: K8sGPTmetadata:name: k8sgpt-samplespec:model: gpt-3.5-turbobackend: openainoCache: falseversion: v0.3.2enableAI: truesecret:name: k8sgpt-sample-secretkey: openai-api-key
Salin selepas log masuk

现在,我们需要将此文件应用到我们的 K8sGPT 集群命名空间:

kubectl apply -f k8sgpt-resource.yaml -n k8sgpt-operator-system
Salin selepas log masuk

几秒钟内,Operator 将创建新结果:

kubectl get results -n k8sgpt-operator-system
Salin selepas log masuk

以下是不同命令的屏幕截图,你可以按照这些命令从 K8sGPT Operator 查看结果报告:

Penyelesaian masalah terlalu menjengkelkan, cuba kuasa super GPT从 K8sGPT Operator 查看结果报告

最后,我们将看一下 Grafana 仪表板。端口转发 Grafana 服务以通过 localhost 访问它:

kubectl port-forward service/prom-grafana -n prom 3000:80
Salin selepas log masuk

打开 localhost:3000,然后导航到 Dashboards>K8sGPT Overview,然后你将看到包含结果的仪表板:

Penyelesaian masalah terlalu menjengkelkan, cuba kuasa super GPTGrafana 中的 K8sGPT 仪表板

参考

  1. 1. https://k8sgpt.ai/
  2. 2. https://docs.k8sgpt.ai/
  3. 3. https://github.com/k8sgpt-ai

Atas ialah kandungan terperinci Penyelesaian masalah terlalu menjengkelkan, cuba kuasa super GPT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan