Codelab - Managing Kubernetes with kubectl-ai, an AI powered Kubernetes Assistant (kubectl-ai ile Kubernetes'i yönetme, yapay zeka destekli Kubernetes asistanı)

1. Giriş

kubectl-ai, kullanıcı amacını hassas Kubernetes işlemlerine dönüştüren, yapay zeka destekli akıllı bir arayüzdür. Bu arayüz, Kubernetes yönetimini daha erişilebilir ve verimli hale getirir.

d62a763b2dba5ba7.png

Yapacaklarınız

  • GKE kümesini yönetmek için yapay zeka destekli bir Kubernetes Asistanı olan kubectl-ai ile çalışacaksınız.

Neler öğreneceksiniz?

  • GKE kümesi oluşturup kubectl-ai.'ı ayarlayacaksınız.
  • Küme ve kaynak sorunlarını gidererek kaynakları yönetme, oluşturma ve yamalama gibi Kubernetes görevlerini gerçekleştireceksiniz.

Gerekenler

  • Chrome web tarayıcısı
  • Gmail hesabı
  • Faturalandırmanın etkin olduğu bir Cloud projesi
  • Gemini API anahtarı

Bu codelab'de kullanıcının Kubernetes hakkında temel bilgilere sahip olduğu varsayılır.

2. Başlamadan önce

Proje oluşturma

  1. Google Cloud Console'daki proje seçici sayfasında bir Google Cloud projesi seçin veya oluşturun.
  2. Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun. Faturalandırmanın projede etkin olup olmadığını kontrol etmeyi öğrenin .
  3. bq'nun önceden yüklendiği, Google Cloud'da çalışan bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız. Google Cloud Console'un üst kısmından Cloud Shell'i etkinleştir'i tıklayın.

Cloud Shell'i etkinleştir düğmesi resmi

  1. Cloud Shell'e bağlandıktan sonra aşağıdaki komutu kullanarak kimliğinizin doğrulanıp doğrulanmadığını ve projenin proje kimliğinize ayarlanıp ayarlanmadığını kontrol edin:
gcloud auth list
  1. gcloud komutunun projeniz hakkında bilgi sahibi olduğunu doğrulamak için Cloud Shell'de aşağıdaki komutu çalıştırın.
gcloud config list project
  1. Projeniz ayarlanmamışsa ayarlamak için aşağıdaki komutu kullanın:
gcloud config set project <YOUR_PROJECT_ID>
  1. Aşağıda gösterilen komutu kullanarak gerekli API'leri etkinleştirin. Bu işlem birkaç dakika sürebilir. Lütfen bekleyin.
gcloud services enable cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       compute.googleapis.com \
                       container.googleapis.com

Komut başarıyla yürütüldüğünde aşağıda gösterilene benzer bir mesaj görürsünüz:

Operation "operations/..." finished successfully.

Herhangi bir API atlanırsa uygulama sürecinde istediğiniz zaman etkinleştirebilirsiniz.

gcloud komutları ve kullanımı için belgelere bakın.

3. GKE kümesi oluşturma

Bu adımda, komutlarımızı çalıştıracağımız bir GKE kümesi oluşturacağız. Önceki adımları uyguladığınızdan, doğru proje kimliğini ayarladığınızdan ve Google Cloud projenizde gerekli hizmetleri etkinleştirdiğinizden emin olun.

GKE kümesi oluşturma

Cloud Shell'de sağlanan aşağıdaki komutu çalıştırın. Küme oluşturmak istediğiniz bölge farklıysa --zone değerini değiştirebilirsiniz.

gcloud container clusters create my-gke-cluster \
       --num-nodes 2 \
       --machine-type e2-standard-4 \
       --zone us-central1-a

Bu işlemin tamamlanması biraz zaman alabilir. Lütfen bekleyin. İşlem tamamlandığında, aşağıda gösterilene benzer bir çıkış görürsünüz:

Note: Your Pod address range (`--cluster-ipv4-cidr`) can accommodate at most 1008 node(s).
Creating cluster my-gke-cluster in us-central1-a... Cluster is being health-checked (Kubernetes Control Plane is healthy)...done.                                                                                                             
Created [https://container.googleapis.com/v1/projects/YOUR_PROJECT_ID/zones/us-central1-a/clusters/my-gke-cluster].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-central1-a/my-gke-cluster?project=YOUR_PROJECT_ID
kubeconfig entry generated for my-gke-cluster.
NAME: my-gke-cluster
LOCATION: us-central1-a
MASTER_VERSION: 1.33.4-gke.1350000
MASTER_IP: 34.59.221.183
MACHINE_TYPE: e2-standard-4
NODE_VERSION: 1.33.4-gke.1350000
NUM_NODES: 2
STATUS: RUNNING
STACK_TYPE: IPV4

GKE kümesi ayrıntılarını doğrulama

Öncelikle küme kimlik bilgilerini getirelim:

gcloud container clusters get-credentials my-gke-cluster \
                 --zone us-central1-a

Aşağıdaki gibi bir çıkış görmeniz gerekir:

Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.

Ardından, küme ayrıntılarını doğrulayalım:

kubectl get nodes

Aşağıdaki gibi bir çıkış görürsünüz:

NAME                                            STATUS   ROLES    AGE     VERSION
gke-my-gke-cluster-default-pool-c63d5936-2f1z   Ready    <none>   2m58s   v1.33.4-gke.1350000
gke-my-gke-cluster-default-pool-c63d5936-fqtl   Ready    <none>   3m2s    v1.33.4-gke.1350000

Son olarak, küme ad alanını doğrulayalım:

kubectl get namespaces

Aşağıdaki gibi bir çıkış görürsünüz:

NAME                          STATUS   AGE
default                       Active   6m16s
gke-managed-cim               Active   4m21s
gke-managed-system            Active   4m6s
gke-managed-volumepopulator   Active   4m
gmp-public                    Active   3m40s
gmp-system                    Active   3m41s
kube-node-lease               Active   6m16s
kube-public                   Active   6m16s
kube-system                   Active   6m16s

4. kubectl-ai CLI'yı yükleme

kubectl-ai CLI'ı yüklemek için Hızlı Yükleme (Önerilen) yöntemini kullanacağız.

Cloud Shell'de aşağıdaki komutu girin:

curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash

Bu işlemle kubectl-ai CLI indirilir ve yüklenir. İşlem sonunda şu mesajı görürsünüz:

✅ kubectl-ai installed successfully! Run 'kubectl-ai --help' to get started.

Aşağıdaki komutu çalıştırarak kubectl-ai komutunun çalışıp çalışmadığını doğrulayabiliriz:

kubectl-ai

Not: Yukarıdaki komut,

creating llm client: GEMINI_API_KEY environment variable not set

kubectl-ai'nin gemini, vertexai, azopenai, openai, grok, bedrock ve ollama ile llama.cpp gibi yerel LLM sağlayıcıların yapay zeka modellerini desteklediğini unutmayın. Bu örnekte Gemini'ı (Google) kullanacağız ve Google AI Studio üzerinden bunun için bir API anahtarı almamız gerekecek. Anahtarı oluşturup değeri hazırladıktan sonra, anahtarınızı işaret eden GEMINI_API_KEY ortam değişkenini ayarlamak için Cloud Shell'de aşağıdaki komutu kullanın.

export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"

Not: "GEMINI_API_KEY" yalnızca anahtar değeri olarak kullanılmalıdır.

kubectl-ai'ı bir kez daha başlatın. Bu kez başlatıldığını ve etkileşimli terminalinde komutunuzu beklediğini göreceksiniz.

$ kubectl-ai

  Hey there, what can I help you with today?                                  

>>>  

İstemde kubectl komutlarıyla ilgili birkaç sorgu deneyin. Aşağıda birkaç örnek verilmiştir:

  • What is the command to get the nodes in a cluster?
  • list pods

kubectl-ai terminalinden quit yazarak çıkabilirsiniz.

5. kubectl-ai'yi kullanma

kubectl-ai öğesini başarıyla yapılandırdığınıza göre, burada vurgulanması gereken önemli nokta artık doğal dil sorgularını kullanarak kümeyle etkileşim kurabileceğinizdir. Birkaç komut daha deneyelim:

Şu komutu çalıştıralım:

kubectl-ai --model gemini-2.5-flash "list pods in default namespace"

Bu işlem aşağıdaki çıkışı üretir:

Running: kubectl get pods -n default

There are no resources found in the default namespace.      

>>>

Doğal dil sorgumuzu, list pods komutuna nasıl çevirdiğine dikkat edin.kubectl

Ayrıca, artık kubectl-ai etkileşimli terminalde (>>>) olduğumuzu ve terminalle etkileşim kurmaya devam edebileceğimizi unutmayın.

Aşağıdaki komutu verin:

how many pods are there in kube-system namespace

Çıkış aşağıda gösterilmiştir:

>>> how many pods are there in kube-system namespace

Running: kubectl get pods -n kube-system --output=jsonpath='{.items[*].metadata.name}'

There are 18 pods in the kube-system namespace.

Tek Atış Komutu

Önceki bölümde, kubectl-ai'ı nasıl başlatabileceğiniz ve sonraki komutları vermek için etkileşimli terminalde nasıl kalabileceğiniz gösterilmişti. Bu, bağımsız olarak ve sizden bir sonraki komutu bekleyen etkileşimli bir istem olmadan yürütmek istediğiniz komutlar için uygun değildir.

--quiet parametresiyle tek çekim komut yöntemini girin.

Dağıtım oluşturmak için örnek bir komutu aşağıda bulabilirsiniz.

kubectl-ai --quiet "create a deployment named nginx with 2 replicas" --skip-permissions

Bu işlem, create deployment komutunun aşağıda gösterildiği gibi yürütülmesine neden olur:

Running: kubectl create deployment nginx --image=nginx --replicas=2

I have created a deployment named nginx with 2 replicas. You can verify this by running kubectl get deployments .

Bu şekilde, kubectl-ai'yı mevcut GKE kümemizle etkileşim kuracak şekilde ayarlayabildik.

Şimdiye kadar yalnızca birkaç komut çalıştırdık ve kubectl-ai ile çalışma şeklini gösterdik. Çıkışı diğer araçlara yönlendirebilir, hataları anlayabilir, kubectl-ai'nın farklı oturum çalıştırmaları arasındaki kalıcılığı görebilir ve daha fazlasını yapabilirsiniz. Araç dokümanlarının Kullanım bölümüne bakın.

6. (İsteğe bağlı) kubectl-ai Chat arayüzü

Bazı durumlarda kubectl-ai ile standart bir Chat arayüzü üzerinden çalışmayı tercih edebilirsiniz. Kubectl-ai, Cloud Shell'de aşağıdaki komutla başlatabileceğiniz kendi kullanıcı arayüzüyle birlikte gelir:

kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080

Bu işlem, yardımcı programı bir arayüz sohbet arayüzünde başlatır ve aşağıdaki gibi bir çıkış görürsünüz:

listening on http://[::]:8080

Aşağıda gösterildiği gibi Cloud Shell'de Web Önizlemesi'ni tıklayın:

f990712162e8e924.png

Ardından Preview on port 8080'i (8080 bağlantı noktasında önizle) tıklayın. Bu işlem, bir tarayıcı başlatır ve web sohbeti arayüzünü aşağıdaki gibi kullanıma sunar:

90fce57ad7f16842.png

Sohbet arayüzünde yürüttüğümüz örnek sorgu:

6a304d227d3fa5a6.png

Bu arayüzde diğer sorguları deneme Ayrıca, başka hangi doğal dil sorgularını çalıştırabileceğiniz konusunda ipuçları da sunar.

7. Temizleme

Google Cloud hesabınızın sürekli olarak ücretlendirilmesini önlemek için bu atölye çalışması sırasında oluşturduğumuz kaynakları silmeniz önemlidir.

Bu laboratuvarın önceki bölümünde oluşturduğumuz GKE kümesine ihtiyacınız yoksa aşağıdaki komutla silebilirsiniz:

gcloud container clusters delete my-gke-cluster --zone=us-central1-a

8. Tebrikler

Tebrikler. Kubernetes kümenizi doğal dil sorgularıyla yönetmek için yapay zeka destekli bir Kubernetes asistanı olan kubectl-ai'yi başarıyla kullandınız. Daha fazla bilgi için sonraki bölümde listelenen kaynaklara bakın.

9. Kaynaklar