Aracılığıyla paylaş


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-18kullanıyorsanız, ConfigMap istio-shared-configmap-asm-1-18adı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 unsupportedve disallowedolarak 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

Üçü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.