Istio hizmet mesh eklentisi MeshConfig sorunlarını giderme
Bu makalede, Microsoft Azure Kubernetes Service (AKS) için Istio hizmet mesh eklentisini yapılandırmak üzere MeshConfig kullandığınızda oluşan sorunların nasıl giderılacağı açıklanır.
Paylaşılan ConfigMap yapılandırması
Istio eklentisi MeshConfig , ağ genelinde belirli ayarları yapılandırmanıza olanak tanır. Bunu yapmak için ad alanında aks-istio-system
yerel bir ConfigMap oluşturursunuz. Ardından, Istio denetim düzlemi bu ConfigMap'i varsayılan ConfigMap ile birleştirir. (Ayarlar arasında bir çakışma varsa, varsayılan ayarlar önceliklidir.) Bu yaklaşım, paylaşılan ConfigMap yapılandırması olarak adlandırılır.
Ad alanında aks-istio-system
adlı istio-shared-configmap-<asm-revision>
bir ConfigMap oluşturun. Örneğin, düzeltme asm-1-18
kullanıyorsanız, ConfigMap istio-shared-configmap-asm-1-18
adını vermelisiniz. Ardından, aşağıdaki ConfigMap YAML dosyasında gösterildiği gibi bölümün data
alanı içinde mesh
mesh yapılandırmasını sağlarsınız:
apiVersion: v1
kind: ConfigMap
metadata:
name: istio-shared-configmap-asm-1-18
namespace: aks-istio-system
data:
mesh: |-
accessLogFile: /dev/stdout
defaultConfig:
holdApplicationUntilProxyStarts: true
Alandaki değerler defaultConfig
, Envoy sepetlerinin ağ genelindeki ayarlarıdır.
Kanarya yükseltmeleri
Kanarya yükseltmesine başlamadan önce ağ yapılandırması ve yükseltme yönergelerini izleyerek ad alanında yeni denetim düzlemi düzeltmesi aks-istio-system
için ikinci bir paylaşılan ConfigMap oluşturun.
Yükseltmeyi başlatmadan önce yeni bir ConfigMap oluşturulmadıysa, paylaşılan ConfigMap tarafından yapılandırılan özelliklere erişilemez. Bu sorunu çözmek için ilgili düzeltme için eksik ConfigMap'i oluşturun ve önceki paylaşılan ConfigMap'ten ilgili alanların üzerine kopyalayın.
Daha fazla bilgi için bkz . Azure Kubernetes Service için Istio tabanlı hizmet ağı eklentisini yükseltme ve Istio hizmet ağı eklentisi ikincil düzeltme yükseltme sorunlarını giderme.
İzin verilen, desteklenen ve izin verilmeyen değerler
Istio eklentisi MeshConfig alanlarını izin verilen ve supported
, izin verilen ancak unsupported
ve disallowed
olarak gösterir. Eklenti için izin verilen ve desteklenen MeshConfig alanları hakkında bilgi edinmek ve farklı destek katmanlarına genel bakış için bkz. Azure Kubernetes Service için Istio tabanlı hizmet ağı eklentisini yapılandırma.
Yukarı akış Istio belgelerinde bahsedilen alanlar eklentinin izin verilenler listesinde görünmüyorsa, bu alanlara izin verilmez.
Sorun giderme denetim listesi
1. Adım: Doğru ConfigMap'i düzenlediğinize emin olun
- Paylaşılan ConfigMap'i yapılandırdığınızdan (örneğin,
istio-shared-configmap-asm-1-17
) ve varsayılan ConfigMap'i (örneğin,istio-asm-1-17
) düzenlemediğinizden emin olun. - Paylaşılan ConfigMap'in başlığında doğru düzeltmeyi gösterdiğinden emin olun.
2. Adım: Paylaşılan ConfigMap içindeki MeshConfig tanımından sekme girintilerini kaldırma
Paylaşılan ConfigMap içindeki MeshConfig tanımında (altında data.mesh
), sekmeler yerine boşluklar kullandığınızdan emin olun. Bulduğunuz tüm sekme karakterlerini kaldırın.
3. Adım: MeshConfig alanlarının geçerli olduğundan emin olun
Alanlar tanınmazsa veya MeshConfig izin verilenler listesine dahil edilmemişse, MeshConfig güncelleştirmeleri reddedilir. İstenen MeshConfig alanlarına izin verilip verilmediğini denetleyin ve alanların doğru yazıldığından emin olun.
4. Adım: CoreDNS aşırı yüklemesinden kaçının
CoreDNS aşırı yüklemeyle ilgili sorunlar, Istio MeshConfig tanımındaki dnsRefreshRate
alan gibi belirli Istio DNS ayarlarını değiştirmenizi gerektirebilir.
5. Adım: Bellek tüketimi sorunlarını düzeltme
Envoy'da yüksek bellek tüketimiyle karşılaşıyorsanız , istatistik verileri toplama için Elçi ayarlarınızı bir kez daha denetleyin. MeshConfig aracılığıyla Istio ölçümlerini özelleştiriyorsanız, bazı ölçümlerin yüksek kardinaliteye sahip olabileceğini ve bu nedenle bellek ayak izinin daha yüksek olmasına neden olabileceğini unutmayın.
Istiod ve Envoy için bellek tüketimini azaltmak için MeshConfig tanımındaki alanını kullanmanızı discoverySelectors
öneririz. Daha fazla bilgi için bkz. Genel Istio hizmet ağı eklentisi sorunlarını giderme.
6. Adım: Ücretsiz CPU çekirdekleri
Tüm CPU çekirdekleri kullanılıyorsa MeshConfig concurrency
tanımındaki alan yanlış yapılandırılmış olabilir. Bu alan sıfır olarak ayarlanırsa, Elçi tüm CPU çekirdeklerini kullanır. Bu durumda MeshConfig tanımından öğesini kaldırın concurrency
.
concurrency
Alan yapılandırılmamışsa, CPU istekleri ve sınırları bunun yerine kullanılan CPU çekirdeği sayısını belirler.
7. Adım: Pod ve sepet yarış koşullarını düzeltme
Uygulama podunuz Envoy sepet başlamadan önce başlatılırsa, uygulama yanıt vermemeye başlar veya yeniden başlatabilir. Bu sorunu önleme hakkında yönergeler için bkz. Istio-proxy hazır değilse pod veya kapsayıcılar ağ sorunlarıyla başlar. Özellikle, bu yarış koşullarını önlemeye yardımcı olmak için true
altında defaultConfig
MeshConfig alanını olarak ayarlayabilirsinizholdApplicationUntilProxyStarts
.
Başvurular
Azure Kubernetes Service için Istio tabanlı hizmet ağı eklentisini yapılandırma
Istio hizmet ağı eklentisi giriş ağ geçidi sorunlarını giderme
Istio hizmet ağı eklentisi küçük düzeltme yükseltme sorunlarını giderme
Istio hizmet ağı eklentisi eklentisi CA sertifikası sorunlarını giderme
Üçü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ü tarafla iletişim sorumluluk reddi
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 önceden haber verilmeksizin değiştirilebilir. Microsoft, üçüncü taraf iletişim bilgilerinin doğruluğunu garanti etmez.
Yardım için bize ulaşın
Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.