İşlemler ve sorun giderme

Model yapılandırma güncellemeleri, kimlik bilgisi rotasyonu, sağlık izleme, log toplama ve yaygın bağlantı ile kimlik doğrulama sorunlarının çözümü dahil olmak üzere Model Gateway dağıtımlarını izleyin, bakımını yapın ve sorunlarını giderin.

Dağıtımdan sonra Model Gateway'in sürekli operasyonel yönetimi, yapılandırılan yapay zeka modellerine güvenilir erişim sağlamaya yardımcı olur ve hizmet kesintilerini en aza indirir. Yöneticiler etkin model yapılandırmalarını gözden geçirebilir, sağlayıcı kimlik bilgilerini güncelleyebilir, secret'ları döndürebilir (rotate), ağ geçidi sağlığını izleyebilir ve sorunlar ortaya çıktığında tanılama bilgileri toplayabilir.

Yapılandırılan modelleri görüntüleme

Modelleri görüntülemenin iki düzeyi vardır — yapılandırmada ne olduğu ve bob-inference bileşeninin çalışma zamanında gerçekte ne yüklediği.

  • Yapılandırma düzeyi — çıkarım ConfigMap'inden mevcut model gateway yapılandırmasını alın:
    oc get cm bob-inference-config -n <bob-namespace> -o yaml | yq '.data."config.yaml"'
  • Çalışma zamanı düzeyi — bob-inference bileşeninin neyi kaydettiği ve etkin olarak neye yönlendirdiği:
    oc exec -n <bob-namespace> deploy/bob-gateway -- \
      curl -sk https://bob-inference.<bob-namespace>.svc.cluster.local:7330/v1/model/info | jq .
Not:

Çalışma zamanı /v1/model/info endpoint'i yalnızca exposed: true olan modelleri listeler. Yapılandırılan modellerin tamamını görmenin tek yolu yapılandırma dosyasıdır.

Sağlayıcı kimlik bilgilerini güncelleme

Kimlik bilgileri config.yaml içindeki bob.modelGateway.secrets bölümünde saklanır. Güncellenmiş kimlik bilgilerini kümeye aktarmak için bobctl update-model-config --update-secrets komutunu kullanın.

Kimlik bilgisini güncelleyin

config.yaml içindeki bob.modelGateway.secrets bölümünde kimlik bilgisini güncelleyin.

Güncellenmiş secret'ı kümeye gönderin

bobctl update-model-config --update-secrets

ibm-bob-operator, bob-inference dağıtımını yeni secret ile otomatik olarak mutabık kılar.

İpucu:

Aynı anda hem model yapılandırma dosyasını hem de kimlik bilgilerini güncelliyorsanız, ikisini tek bir komutla gönderebilirsiniz:

bobctl update-model-config --model-config ./my-model-config.yaml --update-secrets

Secret rotasyonu (döndürme)

Secret rotasyonu, kesinti süresini önlemek için zamanlamaya ekstra özen gösterilerek bir kimlik bilgisi güncellemesiyle aynı modeli izler.

Önerilen kesintisiz (zero-downtime) rotasyon sırası:

  1. config.yaml içindeki bob.modelGateway.secrets alanını yeni kimlik bilgisi değeriyle güncelleyin.
  2. Yeni secret'ı kümeye gönderin: bobctl update-model-config --update-secrets.
  3. Yeni secret'ı uygulamak için Inference Service'i yeniden başlatın:
    oc rollout restart deploy/inference-service -n <bob-namespace>
  4. Kurulum sonrası doğrulama bölümündeki çıkarım testini kullanarak yeni kimlik bilgisinin çalıştığını onaylayın.
  5. Eski kimlik bilgisini sağlayıcı tarafında yalnızca dağıtımın sağlıklı olduğu onaylandıktan sonra iptal edin.

Sağlayıcıya özgü notlar:

  • openai_compatible / API anahtarları — yeni anahtar secret güncellendikten hemen sonra geçerli olur. Dağıtım sağlıklı olduğunda eski anahtarı iptal etmek güvenlidir.
  • bedrock — update-model-config komutunu çalıştırmadan önce yeni IAM erişim anahtarının AWS'de etkin olduğundan emin olun. IAM yayılımı birkaç saniye sürebilir.
  • vertex — yeni servis hesabı anahtarını oluşturun ve base64 ile kodlayın, config.yaml dosyasını güncelleyin, bobctl update-model-config --update-secrets komutunu çalıştırıp doğrulayın ve ardından GCP'de eski anahtarı silin.
  • ca_cert_pem — sertifika yenileme için, uygulamadan önce yeni sertifikanın süresinin dolmadığını doğrulayın. Bkz. TLS sertifikası doğrulama.

Ağ geçidi sağlığını izleme

Pod yeniden başlatma sayısı — artan bir yeniden başlatma sayısı, yinelenen bir başlangıç arızasının (hatalı secret bağlantısı, yapılandırma ayrıştırma hatası) erken bir işaretidir:

oc get pods -n <bob-namespace> -l app=bob-inference \
  -o custom-columns='NAME:.metadata.name,RESTARTS:.status.containerStatuses[0].restartCount'

Liveness ve readiness probları — mevcut prob yapılandırmasını ve durumunu kontrol edin:

oc describe deploy/bob-inference -n <bob-namespace> | grep -A 10 "Liveness\|Readiness"

Periyodik sağlık kontrolü — /v1/model/info endpoint'i basit bir liveness kontrolü görevi görür. Geçerli bir model listesi döndürürse ağ geçidi ayaktadır. Bu, bir izleme aracından veya küme içindeki bir cron job'dan sorgulanabilir.

Logları ve tanılamaları toplama

Belirli bir zaman aralığı için loglar (bildirilen bir olayı incelerken en kullanışlı olanıdır):

oc logs -n <bob-namespace> deploy/bob-inference \
  --since-time="2025-01-01T12:00:00Z" > bob-inference.log

Önceki bir pod örneğinden loglar (pod yeniden başlatılmışsa ve arıza logları gitmişse):

oc logs -n <bob-namespace> deploy/bob-inference --previous

Destek için tam tanılama paketi:

oc describe pod -n <bob-namespace> -l app=bob-inference >> diagnostics.txt
oc get events -n <bob-namespace> --sort-by='.lastTimestamp' >> diagnostics.txt
oc logs -n <bob-namespace> deploy/bob-inference --since=1h >> diagnostics.txt
Not:

Tanılama paketi pod ortam değişkeni adlarını içerir ancak secret değerlerini içermez (secret'lar bağlanır, loglara yazdırılmaz). Desteğe göndermeden önce kazara kimlik bilgisi çıktısı olup olmadığını görmek için logları inceleyin.

Bağlantı ve kimlik doğrulama sorunlarını giderme

Model /v1/model/info içinde görünmüyor

  1. exposed: false olarak ayarlanıp ayarlanmadığını kontrol edin — öyleyse bu beklenen bir davranıştır.
  2. Bu model_name için başlangıç loglarında bir kayıt hatası olup olmadığını kontrol edin.
  3. Sağlayıcı bloğunu doğrulayın — doğru base_url, model ID'si ve kimlik bilgileri.

Çıkarım isteklerinde 401 Unauthorized

  1. bob.modelGateway.secrets içindeki secret değerinin doğru ve güncel olduğunu onaylayın.
  2. Model yapılandırmasındaki env.<VAR> referansının secret anahtar adıyla tam olarak eşleştiğini (büyük/küçük harfe duyarlı) onaylayın.
  3. Inference Service'i yeniden başlatın ve tekrar deneyin — secret yeniden başlatılmadan güncellenmiş olabilir.
  4. Kimlik bilgisini bant dışı (out-of-band) test edin. Bkz. Kimlik doğrulama doğrulaması.

502 Bad Gateway veya connection refused

  1. Model endpoint'inin ayakta olduğunu ve kümeden erişilebilir olduğunu onaylayın. Bkz. Bağlantı testi.
  2. base_url sorunlarını kontrol edin — sondaki eğik çizgiler, yanlış şema (http ve https), yanlış port.
  3. Kurulumdan bu yana giden trafiği engellemiş olabilecek ağ politikası değişikliklerini kontrol edin.

certificate signed by unknown authority

  1. ca_cert_pem ayarlandığını ve geçerli bir ortam değişkenine referans verdiğini onaylayın.
  2. Ortam değişkeninin bob.modelGateway.secrets içinde bulunduğunu onaylayın.
  3. Sertifikanın süresinin dolmadığını doğrulayın: openssl x509 -noout -dates.
  4. Subject Alternative Names (SAN) kontrol ederek sertifikanın endpoint'in hostname bilgisini kapsadığını onaylayın.

Inference Service pod'u CrashLoopBackOff durumunda

  1. Önceki örnekten logları kontrol edin: oc logs --previous.
  2. Yapılandırma ayrıştırma hatalarını arayın — model gateway yapılandırmasında hatalı biçimlendirilmiş YAML.
  3. Events bölümünde eksik secret bağlantılarını arayın: oc describe pod.
  4. Yeniden uygulamadan önce model gateway yapılandırma YAML'ının geçerli olduğunu onaylayın.
Bu konu nasıl?