Aracılığıyla paylaş


Istio service mesh eklentisi giriş ağ geçidi sorunlarını giderme

Bu makalede, Azure Kubernetes Service (AKS) için Istio hizmet ağı eklentisinde giriş ağ geçidi sorunlarının nasıl giderılacağı açıklanır. Istio giriş ağ geçidi, gelen trafiği ağ içindeki iş yüklerine yönlendirmek için kullanabileceğiniz, Envoy tabanlı bir ters proxy'dir.

Istio tabanlı hizmet ağı eklentisi için aşağıdaki giriş ağ geçidi seçeneklerini sunuyoruz:

  • Özel IP adresi kullanan bir iç giriş ağ geçidi.

  • Genel olarak erişilebilen bir IP adresi kullanan dış giriş ağ geçidi.

Not

Microsoft, iç veya dış giriş ağ geçitleri için IP adresini özelleştirmeyi desteklemez. Istio hizmeti mesh eklentisinde yapılan tüm IP özelleştirme değişiklikleri geri döndürülür.

Eklenti, düzeltme başına Istio giriş ağ geçidi podlarını ve dağıtımlarını dağıtır. Kanarya yükseltmesi yapıyorsanız ve kümenizde iki denetim düzlemi düzeltmesi yüklüyse, her iki düzeltmede birden çok giriş ağ geçidi podunda sorun gidermeniz gerekebilir.

Sorun giderme denetim listesi

1. Adım: Güvenlik duvarı veya NSG kurallarının giriş ağ geçidini engellemediğinden emin olun

Giriş ağ geçidine gelen trafiği engelleyen güvenlik duvarı veya Ağ Güvenlik Grubu (NSG) kurallarınız olmadığını doğrulayın. Giriş ağ geçidine Azure Güvenlik Duvarı üzerinden gelen trafiğe izin vermek için açıkça bir Hedef Ağ Adresi Çevirisi (DNAT) kuralı eklemeniz gerekir.

2. Adım: Ağ geçitlerini, sanal hizmetleri ve hedef kurallarını doğru yapılandırma

Giriş ağ geçidi üzerinden trafik yönlendirmesi için ağ geçitlerini, sanal hizmetleri ve hedef kuralları yapılandırırken şu adımları izleyin:

  1. Sırasıyla bir dış veya iç ağ geçidi kullanıyorsanız, ağ geçidi kaynağındaki giriş ağ geçidi seçicisinin aşağıdaki metin değerlerinden birine ayarlandığından emin olun:

    • istio: aks-istio-ingressgateway-external
    • istio: aks-istio-ingressgateway-internal
  2. Ağ geçitlerinde ve sanal hizmetlerde bağlantı noktalarının doğru ayarlandığından emin olun. Ağ geçidi için bağlantı noktası veya için http 443 httpsolarak ayarlanmalıdır.80 Sanal hizmet için bağlantı noktası, uygulama için karşılık gelen hizmetin dinlediği bağlantı noktasına ayarlanmalıdır.

  3. Hizmetin hem ağ geçidi hem de sanal hizmet belirtiminde hosts kullanıma sunulduğundan emin olun. İsteklerdeki üst bilgiyle ilgili Host sorunlarla karşılaşırsanız, bu örnek ağ geçidi yapılandırmasında olduğu gibi yıldız joker karakteri ("*") içeren tüm konakları izin verilenler listesine eklemeyi deneyin. Ancak üretim uygulaması olarak izin verilenler listesini değiştirmenizi öneririz. Ayrıca belirtim hosts açıkça yapılandırılmalıdır.

3. Adım: Giriş ağ geçidi podunun sistem durumunu düzeltme

Giriş ağ geçidi podunun kilitlenmesi veya hazır durumda görünmemesi durumunda Istio daemon (istiod) denetim düzlemi podunun hazır durumda olduğunu doğrulayın. Giriş ağ geçidi, sürümün istiod hazır olmasına bağlıdır.

istiod Pod hazır durumda görünmüyorsa, Istio özel kaynak tanımlarının (CRD' ler) ve Helm grafiğinin doğru yüklendiğinden base emin olun. Bunu yapmak için aşağıdaki komutu çalıştırın:

helm ls --all --all-namespaces

Eklenti yüklemesinin giriş ağ geçidine özel olarak yapılandırılmadığı daha geniş bir hata görebilirsiniz.

istiod Pod iyi durumdaysa ancak giriş ağ geçidi podları yanıt vermiyorsa, daha fazla bilgi toplamak için ad alanında aks-istio-ingress aşağıdaki giriş ağ geçidi kaynaklarını inceleyin:

  • Helm sürümü
  • Dağıtım
  • Hizmet

Ayrıca, Ağ geçidi ve sepet hata ayıklaması hakkında daha fazla bilgiyi Genel Istio hizmet ağı eklentisi sorun giderme bölümünde bulabilirsiniz.

4. Adım: Kaynak kullanımını yapılandırma

Istiod ve ağ geçitleri için varsayılan en düşük/en yüksek çoğaltma ayarları yeterli olmadığında yüksek kaynak kullanımı oluşur. Bu durumda yatay pod otomatik ölçeklendirme yapılandırmalarını değiştirin.

5. Adım: Güvenli giriş ağ geçidi sorunlarını giderme

Dış giriş ağ geçidi, basit veya karşılıklı TLS kullanarak güvenli bir HTTPS hizmetini kullanıma sunma amacıyla yapılandırıldığında şu sorun giderme adımlarını izleyin:

  1. ve SECURE_INGRESS_PORT_EXTERNAL ortam değişkenlerinin değerlerininINGRESS_HOST_EXTERNAL, aşağıdaki komutun çıkışına göre geçerli olduğunu doğrulayın:

    kubectl -n aks-istio-ingress get service aks-istio-ingressgateway-external
    
  2. Ağ geçidi denetleyicisinin günlüklerinde hata iletilerini denetleyin:

    kubectl logs -n aks-istio-ingress <gateway-service-pod>
    
  3. Gizli dizilerin ad alanında oluşturulduğunu aks-istio-ingress doğrulayın:

    kubectl -n aks-istio-ingress get secrets
    

Azure Kubernetes Serviceproductpage-credential için Istio hizmet ağı eklentisi için güvenli giriş ağ geçidi örneği için gizli dizi listelenmelidir.

Azure Key Vault gizli dizi sağlayıcısı eklentisini etkinleştirdikten sonra, Azure Key Vault'a eklentinin kullanıcı tarafından atanan yönetilen kimliğine erişim izni vermelisiniz. Azure Key Vault'a erişimin yanlış ayarlanması gizli dizinin oluşturulmasını productpage-credential engeller.

Kaynağı oluşturduktan sonra gizli dizilerin SecretProviderClass Azure Key Vault'tan kümeye eşitlendiğinden emin olmak için bu kaynağa başvuran örnek podunun secrets-store-sync-productpage başarıyla dağıtıldığından emin olun.

Başvurular

Üçüncü taraf bilgileri hakkında yasal uyarı

Bu makalede adı geçen üçüncü taraf ürünleri Microsoft'tan bağımsız şirketler tarafından üretilmektedir. Microsoft, bu ürünlerin performansı veya güvenilirliği ile ilgili örtük veya başka türlü hiçbir garanti vermez.

Üçüncü taraf iletişim bildirimi

Microsoft, bu konu hakkında ek bilgi bulmanıza yardımcı olmak için üçüncü taraf iletişim bilgileri sağlar. Bu iletişim bilgileri bildirimde bulunmadan değişebilir. Microsoft, üçüncü taraf iletişim bilgilerinin doğruluğunu garanti etmez.

Yardım için bizimle iletişim kurun

Sorularınız varsa veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteğine sorun. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.