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:
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
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
https
olarak 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.Hizmetin hem ağ geçidi hem de sanal hizmet belirtiminde
hosts
kullanıma sunulduğundan emin olun. İsteklerdeki üst bilgiyle ilgiliHost
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 belirtimhosts
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:
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
Ağ geçidi denetleyicisinin günlüklerinde hata iletilerini denetleyin:
kubectl logs -n aks-istio-ingress <gateway-service-pod>
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.