Amaçtan Altyapıya: GKE'ye Aracı Odaklı Taşıma

1. Giriş

Bu codelab'de, karmaşık bir altyapı taşıma işlemini otomatik olarak gerçekleştirmek için yapay zeka aracını nasıl kullanacağınızı öğreneceksiniz. Kubernetes manifestlerini manuel olarak yazmak veya otomasyon komut dosyalarını çalıştırmak yerine amacınızı doğal dilde ifade edersiniz. Ajan, yapılandırmayı sizin için oluşturup uygulamak üzere Model Context Protocol (MCP) ve Gemini Cloud Assist sunucusunu kullanır.

GCA MCP Sunucusu Özellikleri

GCA MCP sunucusu, aracıya çeşitli özel araçlar sunar:

  • ask_cloud_assist: Bu, Google Cloud Platform yardımı ve Gemini Cloud Assist aracısı için birincil arayüzdür. Gemini Cloud Assist'in tüm işlevlerine bu araç üzerinden erişilebilir ve diğer MCP araçlarının işlevlerini de kapsar.
  • design_infra: Bu, Google Cloud Platform'da altyapı tasarlama ve mimari oluşturma iş akışlarını destekler.
  • investigate_issue: Bu, Google Cloud'da sorun giderme iş akışlarını destekler. Bir inceleme kaynağı aracılığıyla hızlı veya daha ayrıntılı sorun giderme işlemleri yapabilir.
  • invoke_operation: Bu, Google Cloud'da kaynak oluşturma, güncelleme ve silme iş akışlarını destekler. Bu araç yalnızca aracı işlemleri etkinleştirildiğinde çalışır. Gemini Cloud Assist'teki yazma işlemleri yalnızca bu araç çağrılarak yürütülebilir.
  • optimize_costs: Bu, Google Cloud maliyetlerini analiz etme, izleme ve optimize etme iş akışlarını destekler. Harcamaların ayrıntılı dökümlerini sunar ve boşta veya yeterince kullanılmayan kaynakları bularak maliyet verimliliği fırsatlarını belirler.

GKE kümesi ve indirilmiş bir model içeren, önceden hazırlanmış bir ortamla başlayacaksınız. Ardından, gemini-cli kullanarak aracıdan bir iş yükünü Cloud Run'dan GKE'ye taşımasını ve depolama paketinizdeki hazırlanan modeli kullanarak vLLM ile bir Gemma çıkarım örneği başlatmasını isteyeceksiniz.

Yapacaklarınız

  • Terraform kullanarak GKE kümesi oluşturma ve Gemma modeli indirme
  • gemini-cli'yı aracı kuralları ve bir MCP sunucusuyla yapılandırın.
  • Aracıya tam taşıma ve dağıtım işlemini gerçekleştirmesi için talimat vermek üzere belirli bir doğal dil istemi kullanın.
  • Temsilci tarafından gerçekleştirilen dağıtımı doğrulayın.

İhtiyacınız olanlar

  • Chrome gibi bir web tarayıcısı
  • Faturalandırmanın etkin olduğu bir Google Cloud projesi.
  • Hugging Face jetonu (Gemma modelinin hazırlık aşamasında indirilmesi için gereklidir).

Bu codelab, yeni başlayanlar da dahil olmak üzere her seviyeden geliştiriciye yöneliktir.

Tahmini süre: 45-60 dakika.

2. Başlamadan önce

Google Cloud projesi oluşturma veya seçme

  1. Google Cloud Console'da bir Google Cloud projesi seçin veya oluşturun.
  2. Cloud projeniz için faturalandırmanın etkinleştirildiğinden emin olun.

Cloud Shell'i Başlatma

  1. Google Cloud Console'un üst kısmından Cloud Shell'i etkinleştir'i tıklayın.
  2. Kimlik doğrulamayı doğrulayın:
gcloud auth list
  1. Projenizi onaylayın:
gcloud config get project
  1. Gerekirse ayarlayın:
export PROJECT_ID=<YOUR_PROJECT_ID>
gcloud config set project $PROJECT_ID

API'leri etkinleştir

Gerekli tüm API'leri etkinleştirmek için bu komutu çalıştırın:

gcloud services enable \
  run.googleapis.com \
  container.googleapis.com \
  aiplatform.googleapis.com \
  compute.googleapis.com \
  cloudbuild.googleapis.com \
  cloudresourcemanager.googleapis.com

Ayrıca Gemini Cloud Assist MCP hizmetini etkinleştirin:

gcloud beta services mcp enable geminicloudassist.googleapis.com

3. Ortamı hazırlama

Bu adımda, özel bir chatbot görüntüsü oluşturarak, GKE kümesini oluşturarak ve Gemma modelini bir Cloud Storage paketine indirerek ortamı hazırlayacaksınız.

Kuruluşlar genellikle Gemini API ile başlar ancak daha sonra daha fazla kontrol, özelleştirme veya işletmelerine özel olarak ince ayar yapılmış bir sürüm kullanmak için kendi kendine barındırılan bir modele geçmeye karar verir. Bu codelab'de, GKE'de kendiniz barındırabileceğiniz güçlü bir açık model örneği olarak Gemma'yı kullanıyoruz. Cloud Storage paketinde hazırlanan veriler, kümemizin kullanımına sunulur.

Demo Öğelerini İndirme

GitHub deposundaki belirli klasörü klonlayın.

git clone --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/next-26-keynotes.git
cd next-26-keynotes
git sparse-checkout set devkey/intent-to-infrastructure
cd devkey/intent-to-infrastructure

Chatbot resmi oluşturma

Altyapıyı sağlamadan önce özel chatbot görüntüsünü oluşturup Artifact Registry'ye aktarmanız gerekir. Bu resim, sonraki adımda Cloud Run tarafından kullanılacaktır.

  1. asia-southeast1 içinde chatbot-repo adlı bir Artifact Registry deposu oluşturun:
    gcloud artifacts repositories create chatbot-repo \
        --repository-format=docker \
        --location=asia-southeast1 \
        --description="Chatbot Docker repository"
    
  2. src dizinine gidin:
    cd src
    
  3. Cloud Build'i kullanarak görüntüyü derleyin ve aktarın:
    gcloud builds submit --config cloudbuild.yaml \
        --substitutions=_LOCATION="asia-southeast1",_REPOSITORY_ID="chatbot-repo",_IMAGE_NAME="chatbot",_IMAGE_TAG="latest"
    
  4. Proje köküne geri gidin:
    cd ..
    

Temel altyapı sağlama

terraform dizinine gidin ve GKE kümesini oluşturmak için 1. Adım'ı çalıştırın.

cd terraform
./deploy.sh demo step1 apply

Bu komut dosyası, temel altyapıyı sağlamak için Terraform'u kullanır. VPC, GKE kümesi ve hizmet hesaplarını oluşturur ve yeni oluşturduğunuz chatbot görüntüsünü kullanarak ilk Cloud Run hizmetini dağıtır.

Bu işlem sırasında Terraform, planı gösterir ve onay ister. Onaylamak ve devam etmek için yes yazmanız gerekir:

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

Tüm işlemin tamamlanması 15-20 dakika sürebilir.

Dağıtım tamamlandıktan sonra terminalde yazdırılan Terraform çıkışlarında cloud_run_url simgesini bulun. Tarayıcınızda chatbot'u açmak için URL'yi tıklayın. Şu anda Gemini 2.5 Flash'a karşı çalışan chatbot ile etkileşime geçebilirsiniz.

Modeli indirme

Bu adımda, Gemma modelini bir Cloud Storage paketinde hazırlayacağız. Yönetilen Gemini API ile başlasak da özel olarak ince ayar yapılmış bir model veya başka bir özel açık model çalıştırmayı tercih edebilirsiniz. Alternatif olarak, güvenlik veya uygunluk nedenleriyle model yürütmeyi kendi kümenizde yönetmek isteyebilirsiniz. Modeli burada hazırlamak, yönetilen Gemini API'den GKE'de kendi kendine barındırılan bir modele geçiş yapmamızı sağlar.

Gemma modelini GCS paketinize indirmek için 2. adımı çalıştırın. Hugging Face jetonunuzun olması gerekir. Bu işlem GKE kümenizde çalışır ve modeli Hugging Face'ten indirip daha sonra kullanmak üzere paketinize yüklemek yaklaşık 15 dakika (trafik durumuna bağlı olarak daha uzun da sürebilir) sürer.

./deploy.sh demo step2 apply -var="hf_token=<YOUR_HF_TOKEN>"

Bu Terraform komutu, indirme işlemini gerçekleştirmek için GKE kümenizde bir Kubernetes işi oluşturur. Terraform komut dosyası, iş çalıştığı sürece etkin kalır.

İlerlemeyi farklı bir kabuk oturumundan izlemek veya çalıştırma işleminden sonra tamamlandığını doğrulamak istiyorsanız şu komutu çalıştırabilirsiniz:

kubectl get jobs

4. Ajanı ve MCP'yi ayarlama

Şimdi taşıma işlemini gerçekleştirecek aracıyı yapılandıracağız. gemini-cli kullanacak ve onu ortamla etkileşim kuracak kurallarla donatacağız.

Gemini Cloud Assist (GCA) MCP sunucusu, bu akışın kritik bir bileşenidir. Bu aracı, istemci tarafı aracınız ile Google Cloud arasında köprü görevi görerek araştırmalar yapmasına, planlar oluşturmasına (ör. gcloud ve kubectl komutları) ve değişiklikleri doğrudan bulut projenizdeki kaynaklara uygulamasına olanak tanır.

roles/geminicloudassist.user gibi MCP araçlarının çağrılmasına izin veren bir rol aldığınızdan emin olun. Daha sonra izin sorunlarıyla karşılaşırsanız Cloud Assist için IAM rollerini yapılandırma hakkındaki dokümanlara bakın.

Gemini Cloud Assist'i üçüncü taraf araçlarla entegre etme hakkında daha ayrıntılı talimatlar için MCP'yi kullanarak Gemini Cloud Assist'i üçüncü taraf araçlarla entegre etme başlıklı belgeye bakın.

Gemini Cloud Assist uzantısını yükleme

  1. Aşağıdaki komutu çalıştırarak Uygulama Varsayılan Kimlik Bilgileri (ADC) üzerinden kimlik doğrulayın:
gcloud auth application-default login
  1. MCP sunucusunu Gemini CLI uzantısı olarak yükleyin:
gemini extensions install https://github.com/GoogleCloudPlatform/gemini-cloud-assist-mcp
  1. Becerinin başarıyla yüklendiğini doğrulayın: gemini'ı başlatın ve etkin becerileri listelemek için aşağıdaki komutu çalıştırın:
/skills list

Listede Gemini Cloud Assist ile ilgili beceriyi gördüğünüzü doğrulayın. Cloud Shell isteminize dönmek için exit yazın.

Gemini Cloud Assist'te Değişiklikler'i etkinleştirme

Aracının altyapınızda değişiklik yapmasına izin vermek için Gemini Cloud Assist kullanıcı arayüzünde mutasyon özelliklerini etkinleştirmeniz gerekir.

  1. Google Cloud Console penceresinin sağ üst kısmındaki Gemini logosunu tıklayarak Gemini Yardımcısı yan çubuğunu açın.
    Gemini Assist kenar çubuğu
  2. Kenar çubuğunda listelenen gerekli API'leri etkinleştirin.
    API&#39;leri etkinleştir
  3. Kenar çubuğundaki ayarlara gidin ve "İşlemleri yürütmek için Cloud Assist'i etkinleştir" seçeneğini işaretleyin.
    Ayarlar&#39;a gidin
    Yürütmeyi Etkinleştir

Aracı Kurallarını Yapılandırma

Proje dizini, klasörün kökünde (intent-to-infrastructure) özel bir gemini.md dosyası içerir. Bu dosya, aracıyı doğru araçları kullanmaya yönlendiren kurallar içerir.

Bu dosyanın dizininizde bulunduğunu doğrulayın. Terraform dosyalarına, uygulama koduna ve gemini.md kuralları dosyasına erişebilmesi için gemini komutunu bu dizinden çalıştırmanız gerekir.

5. 1. adım: Chatbot'u GKE'ye taşıyın

Şimdi, taşıma işleminin ilk bölümünü gerçekleştirmek için aracı kullanacağız: chatbot uygulamasını Cloud Run'dan GKE'ye taşıma.

  1. gemini komutunu intent-to-infrastructure dizininin kökünden başlatın (gemini.md'ye erişimi olduğundan emin olun).
  2. Öncelikle, uygulamayı ve altyapıyı anlamak için aracıdan projeyi incelemesini isteyelim. Aşağıdaki istemi girin:
Tell me about the app and infrastructure in this project

Aracı, dizindeki dosyaları okumalı ve size chatbot uygulaması ile Terraform yapılandırması hakkında genel bir bakış sunmalıdır.

  1. Şimdi, aracının taşıma işlemini gerçekleştirmesini istemek için aşağıdaki istemi kullanın.
Convert my Cloud Run service to the equivalent on GKE.
  1. Temsilci şunları yapmalıdır:
    • Bağlamı anlamak için ask_cloud_assist aracını kullanın.
    • Chatbot uygulaması için Kubernetes YAML'yi oluşturmak üzere design_infra aracını kullanın.
    • "Bu yapılandırmayı uygulamaya devam etmek ister misiniz?" diye sorun.
  1. Değişiklikleri uygulamak için yes ile yanıt verin. Aracı, kaynakları GKE kümenize dağıtmak için invoke_operation kullanır.

1. Doğrulama Adımı

  1. Hizmetlerin listesini alın:
kubectl get services

Çalışan bir chatbot uygulaması hizmeti görmeniz gerekir.

  1. Chatbota erişmek için hizmeti bağlantı noktası yönlendirin:
kubectl port-forward svc/chatbot-service 8080:80

(Not:

chatbot-service

(farklıysa aracının oluşturduğu hizmetin gerçek adıyla birlikte).

Chatbot'u test edin. Gemini API'yi (Cloud Run'da yapılandırıldığı şekilde) kullanarak yanıt vermeye devam etmelidir.

6. 2. adım: Gemma'yı vLLM ve Reconnect aracılığıyla dağıtın

Bu adımda, GKE'ye kendinden barındırılan bir Gemma modeli dağıtmak ve uygulamamızı bu modele yeniden bağlamak için aracı kullanacağız.

  1. Aynı gemini oturumunda aşağıdaki istemi girin:
Now that the chatbot is on GKE, add a vLLM service running the Gemma model from my storage bucket in the same cluster. Make sure to give the vLLM service at least 10 minutes to start up to account for loading the large model. Then, update the chatbot service to reference this vLLM service instead of the Gemini API.
  1. Temsilci şunları yapmalıdır:
    • vLLM dağıtımı ve hizmeti için YAML oluşturmak üzere design_infra kullanın.
    • Ortam değişkenlerini (veya yapılandırmayı) Gemini API yerine yeni vLLM hizmetini işaret edecek şekilde değiştirmek için chatbot dağıtımı YAML'sini güncelleyin.
    • Değişiklikleri uygulamak için onay isteyin.
  2. Değişiklikleri uygulamak için yes ile yanıt verin.

2. Adımı Doğrulama

  1. Pod listesini tekrar alma:
kubectl get pods

Artık hem chatbot hem de vLLM için kapsüller görmeniz gerekir.

  1. vLLM hazır olduğunda gerekirse chatbot hizmetini tekrar bağlantı noktası yönlendirin ve test edin. Artık kendi kendine barındırılan Gemma modeliniz tarafından destekleniyor olmalıdır.

7. Temizleme

Google Cloud hesabınızın sürekli olarak ücretlendirilmesini önlemek için bu codelab sırasında oluşturulan kaynakları silin.

Temel altyapı için destroy komutunu çalıştırın:

cd terraform
./deploy.sh demo step1 destroy

Ayrıca, yerel ortamınızı temizlemek isterseniz Gemini Cloud Assist uzantısını kaldırabilir veya devre dışı bırakabilirsiniz. gemini extensions uninstall veya gemini extensions disable simgesini ve ardından uzantı adını kullanın.

8. Sırada ne var?

Gemini Cloud Assist ve ileri seviye özellikler hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara göz atın:

9. Tebrikler

Tebrikler! Doğal dil ve MCP kullanarak bir iş yükünü GKE'ye taşıma işlemini başarıyla gerçekleştirdiniz.