CodeBlanks Logo Icon CodeBlanks

Istio nedir?

Istio'nun service mesh uygulaması olduğunu öğrenirsin.

Istio nedir?

Istio'nun iki katmanı vardır:

  • Kontrol düzlemi (istiod): yapılandırmayı (VirtualService, DestinationRule, politikalar) okur, sertifika dağıtır ve vekillere yapılandırma gönderir.
  • Veri düzlemi: her pod'daki Envoy vekilleri; trafiği gerçekten taşır.

Bir namespace'i mesh'e katmak için etiketlenir; o namespace'te oluşturulan yeni pod'lara sidecar otomatik eklenir:

kubectl label namespace magaza istio-injection=enabled
kubectl rollout restart deployment -n magaza
kubectl get pods -n magaza
NAME                  READY   STATUS
api-6b5c4d3e2-abcde   2/2     Running     # uygulama + istio-proxy

Mesh'i denetlemek

istioctl, mesh'in durumunu ve olası yapılandırma hatalarını gösterir:

$ istioctl proxy-status
NAME                              CLUSTER     CDS     LDS     EDS     RDS     ISTIOD
api-6b5c4d3e2-abcde.magaza        Kubernetes  SYNCED  SYNCED  SYNCED  SYNCED  istiod-7b9c…
$ istioctl analyze -n magaza
✔ No validation issues found when analyzing namespace: magaza.

Uygulama Namespace'i mesh'e kat

Dört komut yaz: magaza namespace'ine istio-injection=enabled etiketini ekle; magaza'daki tüm deployment'ları yeniden başlat; magaza'daki pod'ları listele; istioctl analyze -n magaza çalıştır.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl label namespace magaza istio-injection=enabled
kubectl rollout restart deployment -n magaza
kubectl get pods -n magaza
istioctl analyze -n magaza

Beklenen çıktı

namespace/magaza labeled
deployment.apps/api restarted
deployment.apps/web restarted
NAME                  READY   STATUS    RESTARTS   AGE
api-6b5c4d3e2-abcde   2/2     Running   0          20s
web-5a4b3c2d1-fghij   2/2     Running   0          20s
✔ No validation issues found when analyzing namespace: magaza.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Namespace etiketlendikten sonra mevcut pod'lar neden yeniden başlatılır?

  • istiod çöker
  • Sidecar yalnızca pod oluşturulurken (admission) eklenir Doğru cevap
  • Etiket pod'ları siler
  • Gerekli değildir

Açıklama: Enjeksiyon bir mutating admission webhook'tur.

2 Namespace'e otomatik sidecar eklemeyi aç.

Soru
kubectl label namespace magaza ____=enabled
Cevap
kubectl label namespace magaza istio-injection=enabled

Açıklama: istio-injection=enabled enjeksiyonu açar.

3 Eşleştir.

Kavram Anlamı
istiod Kontrol düzlemi
Envoy Veri düzlemi
2/2 Uygulama + vekil
istioctl analyze Yapılandırma denetimi

Uzman bölümündeki tüm dersler