Menerapkan diagnostik Kubernetes yang didukung AI dan pemecahan masalah dengan integrasi K8SGPT dan Amazon Bedrock - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menerapkan diagnostik Kubernetes yang didukung AI dan pemecahan masalah dengan integrasi K8SGPT dan Amazon Bedrock

Ishwar Chauthaiwale, Muskan., dan Prafful Gupta, Amazon Web Services

Ringkasan

Pola ini menunjukkan cara menerapkan diagnostik dan pemecahan masalah Kubernetes yang didukung AI dengan mengintegrasikan K8SGPT dengan model Anthropic Claude v2 yang tersedia di Amazon Bedrock. Solusi ini menyediakan analisis bahasa alami dan langkah-langkah remediasi untuk masalah klaster Kubernetes melalui arsitektur host bastion yang aman. Dengan menggabungkan keahlian K8SGPT Kubernetes dengan kemampuan bahasa canggih Amazon Bedrock, tim dapat dengan cepat mengidentifikasi dan menyelesaikan masalah DevOps klaster. Dengan kemampuan ini, dimungkinkan untuk mengurangi mean time to resolution (MTTR) hingga 50 persen.

Pola cloud-native ini memanfaatkan Amazon Elastic Kubernetes Service (Amazon EKS) untuk manajemen Kubernetes. Pola ini menerapkan praktik terbaik keamanan melalui peran yang tepat AWS Identity and Access Management (IAM) dan isolasi jaringan. Solusi ini sangat berharga bagi organisasi yang ingin merampingkan operasi Kubernetes mereka dan meningkatkan kemampuan pemecahan masalah mereka dengan bantuan AI.

Prasyarat dan batasan

Prasyarat

Batasan

  • Analisis K8sgpt dibatasi oleh ukuran jendela konteks model Claude v2.

  • Batas tarif Amazon Bedrock API berlaku berdasarkan kuota akun Anda.

  • Beberapa Layanan AWS tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat AWS Layanan menurut Wilayah. Untuk titik akhir tertentu, lihat Titik akhir dan kuota layanan, dan pilih tautan untuk layanan.

Versi produk

Arsitektur

Diagram berikut menunjukkan arsitektur untuk diagnostik Kubernetes bertenaga AI menggunakan K8SGPT yang terintegrasi dengan Amazon Bedrock di. AWS Cloud

Alur kerja untuk diagnostik Kubernetes menggunakan K8sgpt terintegrasi dengan Amazon Bedrock.

Arsitektur menunjukkan alur kerja berikut:

  1. Pengembang mengakses lingkungan melalui koneksi aman ke host bastion. EC2 Instans Amazon ini berfungsi sebagai titik masuk aman dan berisi instalasi antarmuka baris perintah (CLI) K8sgpt dan konfigurasi yang diperlukan.

  2. Host bastion, yang dikonfigurasi dengan peran IAM tertentu, membuat koneksi aman ke cluster Amazon EKS dan titik akhir Amazon Bedrock. K8sgpt diinstal dan dikonfigurasi pada host bastion untuk melakukan analisis klaster Kubernetes.

  3. Amazon EKS mengelola bidang kontrol Kubernetes dan node pekerja, menyediakan lingkungan target untuk analisis K8sgpt. Layanan ini berjalan di beberapa Availability Zone dalam virtual private cloud (VPC), yang membantu menyediakan ketersediaan dan ketahanan yang tinggi. Amazon EKS memasok data operasional melalui Kubernetes API, memungkinkan analisis klaster yang komprehensif.

  4. K8sgpt mengirimkan data analisis ke Amazon Bedrock, yang menyediakan model dasar Claude v2 (FM) untuk pemrosesan bahasa alami. Layanan ini memproses analisis K8sgpt untuk menghasilkan penjelasan yang dapat dibaca manusia dan menawarkan saran remediasi terperinci berdasarkan masalah yang diidentifikasi. Amazon Bedrock beroperasi sebagai layanan AI tanpa server dengan ketersediaan dan skalabilitas tinggi.

catatan

Sepanjang alur kerja ini, IAM mengontrol akses antar komponen melalui peran dan kebijakan, mengelola otentikasi untuk host bastion, Amazon EKS, dan interaksi Amazon Bedrock. IAM menerapkan prinsip hak istimewa paling sedikit dan memungkinkan komunikasi lintas layanan yang aman di seluruh arsitektur.

Otomatisasi dan skala

Operasi K8SGPT dapat diotomatisasi dan diskalakan di beberapa kluster Amazon EKS melalui berbagai alat dan. Layanan AWS Solusi ini mendukung integrasi berkelanjutan dan integrasi penerapan berkelanjutan (CI/CD) menggunakan Jenkins, GitHub Actions, atau AWS CodeBuilduntuk analisis terjadwal. Operator K8sgpt memungkinkan pemantauan in-cluster berkelanjutan dengan kemampuan deteksi dan pelaporan masalah otomatis. Untuk penerapan skala perusahaan, Anda dapat menggunakan Amazon EventBridge untuk menjadwalkan pemindaian dan memicu respons otomatis dengan skrip khusus. AWS Integrasi SDK memungkinkan kontrol terprogram di seluruh armada cluster yang besar.

Alat

Layanan AWS

Alat lainnya

  • K8SGPT adalah alat bertenaga AI open source yang mengubah manajemen Kubernetes. Ini bertindak sebagai ahli rekayasa keandalan situs virtual (SRE), secara otomatis memindai, mendiagnosis, dan memecahkan masalah klaster Kubernetes. Administrator dapat berinteraksi dengan K8sgpt menggunakan bahasa alami dan mendapatkan wawasan yang jelas dan dapat ditindaklanjuti tentang status cluster, pod crash, dan kegagalan layanan. Alat analisis bawaan alat mendeteksi berbagai masalah, mulai dari komponen yang salah konfigurasi hingga kendala sumber daya, dan memberikan penjelasan dan solusi. easy-to-understand

Praktik terbaik

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Tetapkan Amazon Bedrock sebagai penyedia backend AI untuk K8sgpt.

Untuk menyetel Amazon Bedrock sebagai backend AI menyediakan r untuk K8sgpt, gunakan perintah berikut: AWS CLI

k8sgpt auth add -b amazonbedrock \ -r us-west-2 \ -m anthropic.claude-v2 \ -n endpoint-name

Contoh perintah digunakan us-west-2 untuk Wilayah AWS. Namun, Anda dapat memilih Wilayah lain, asalkan kluster Amazon EKS dan model Amazon Bedrock yang sesuai tersedia dan diaktifkan di Wilayah yang dipilih tersebut.

Untuk memeriksa amazonbedrock apakah ditambahkan ke daftar penyedia backend AI dan dalam Active status, jalankan perintah berikut:

k8sgpt auth list

Berikut ini adalah contoh output yang diharapkan dari perintah ini:

Default: > openai Active: > amazonbedrock Unused: > openai > localai > ollama > azureopenai > cohere > amazonsagemaker > google > noopai > huggingface > googlevertexai > oci > customrest > ibmwatsonxai
AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Lihat daftar filter yang tersedia.

Untuk melihat daftar semua filter yang tersedia, gunakan AWS CLI perintah berikut:

k8sgpt filters list

Berikut ini adalah contoh output yang diharapkan dari perintah ini:

Active: > Deployment > ReplicaSet > PersistentVolumeClaim > Service > CronJob > Node > MutatingWebhookConfiguration > Pod > Ingress > StatefulSet > ValidatingWebhookConfiguration
AWS DevOps

Pindai pod di namespace tertentu dengan menggunakan filter.

Perintah ini berguna untuk debugging tertarget dari masalah pod tertentu dalam klaster Kubernetes, menggunakan kemampuan Amazon Bedrock AI untuk menganalisis dan menjelaskan masalah yang ditemukannya.

Untuk memindai pod di namespace tertentu dengan menggunakan filter, gunakan perintah berikut: AWS CLI

k8sgpt analyze --backend amazonbedrock --explain --filter Pod -n default

Berikut ini adalah contoh output yang diharapkan dari perintah ini:

100% |████████████████████████████████████████████████████████| (1/1, 645 it/s) AI Provider: amazonbedrock 0: Pod default/crashme() - Error: the last termination reason is Error container=crashme pod=crashme Error: The pod named crashme terminated because the container named crashme crashed. Solution: Check logs for crashme pod to identify reason for crash. Restart pod or redeploy application to resolve crash.
AWS DevOps

Pindai penyebaran di namespace tertentu dengan menggunakan filter.

Perintah ini berguna untuk mengidentifikasi dan memecahkan masalah khusus penerapan, terutama ketika status sebenarnya tidak cocok dengan status yang diinginkan.

Untuk memindai penyebaran di namespace tertentu dengan menggunakan filter, gunakan perintah berikut: AWS CLI

k8sgpt analyze --backend amazonbedrock --explain --filter Deployment -n default

Berikut ini adalah contoh output yang diharapkan dari perintah ini:

100% |██████████████████████████████████████████████████████████| (1/1, 10 it/min) AI Provider: amazonbedrock 0: Deployment default/nginx() - Error: Deployment default/nginx has 1 replicas but 2 are available Error: The Deployment named nginx in the default namespace has 1 replica specified but 2 pod replicas are running. Solution: Check if any other controllers like ReplicaSet or StatefulSet have created extra pods. Delete extra pods or adjust replica count to match available pods.
AWS DevOps

Pindai node di namespace tertentu dengan menggunakan filter.

Untuk memindai node di namespace tertentu dengan menggunakan filter, gunakan perintah berikut: AWS CLI

k8sgpt analyze --backend amazonbedrock --explain --filter Node -n default

Berikut ini adalah contoh output yang diharapkan dari perintah ini:

AI Provider: amazonbedrock No problems detected
AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Dapatkan output terperinci.

Untuk mendapatkan output terperinci, gunakan AWS CLI perintah berikut:

k8sgpt analyze --backend amazonbedrock --explain --ouput json

Berikut ini adalah contoh output yang diharapkan dari perintah ini:

{ "provider": "amazonbedrock", "errors": null, "status": "ProblemDetected", "problems": 1, "results": [ { "kind": "Pod", "name": "default/crashme", "error": [ { "Text": "the last termination reason is Error container=crashme pod=crashme", "KubernetesDoc": "", "Sensitive": [] } ], "details": " Error: The pod named crashme terminated because the container named crashme crashed.\nSolution: Check logs for crashme pod to identify reason for crash. Restart pod or redeploy application to resolve crash.", "parentObject": "" } ] }
AWS DevOps

Periksa pod yang bermasalah.

Untuk memeriksa pod bermasalah tertentu, gunakan AWS CLI perintah berikut:

kubectl get pods --all-namespaces | grep -v Running

Berikut ini adalah contoh output yang diharapkan dari perintah ini:

NAMESPACE NAME READY STATUS RESTARTS AGE default crashme 0/1 CrashLoopBackOff 260(91s ago) 21h
AWS DevOps

Dapatkan wawasan khusus aplikasi.

Perintah ini sangat berguna ketika:

  • Anda ingin fokus pada aplikasi tertentu di cluster Anda.

  • Anda menggunakan label secara efektif untuk mengatur sumber daya Kubernetes Anda.

  • Anda perlu dengan cepat memeriksa kesehatan komponen aplikasi tertentu.

Untuk mendapatkan wawasan khusus aplikasi, gunakan perintah berikut:

k8sgpt analyze --backend amazonbedrock --explain -L app=nginx -n default

Berikut ini adalah contoh output yang diharapkan dari perintah ini:

AI Provider: amazonbedrock No problems detected

Sumber daya terkait

Blog AWS

AWS dokumentasi

Sumber daya lainnya