Sdílet prostřednictvím


Konfigurace doplňku Istio service mesh pro Azure Kubernetes Service

Open source Istio používá MeshConfig k definování nastavení celé sítě pro síť služby Istio. Doplněk Sítě služeb založený na istio pro AKS se sestavuje nad MeshConfig a klasifikuje různé vlastnosti jako podporované, povolené a blokované.

Tento článek vás provede konfigurací doplňku Istio service mesh pro službu Azure Kubernetes Service a zásad podpory použitelných pro tuto konfiguraci.

Požadavky

V této příručce se předpokládá, že jste postupovali podle dokumentace k povolení doplňku Istio v clusteru AKS.

Nastavení konfigurace v clusteru

  1. Zjistěte, která revize Istio je nasazená v clusteru:

    az aks show --name $CLUSTER --resource-group $RESOURCE_GROUP --query 'serviceMeshProfile'
    

    Výstup:

    {
      "istio": {
          "certificateAuthority": null,
          "components": {
          "egressGateways": null,
          "ingressGateways": null
          },
          "revisions": [
          "asm-1-18"
          ]
      },
      "mode": "Istio"
    }
    
  2. Vytvořte objekt ConfigMap s názvem istio-shared-configmap-<asm-revision> v aks-istio-system oboru názvů. Pokud například váš cluster běží jako 1-1-18 revize sítě, musí být objekt ConfigMap pojmenován jako istio-shared-configmap-asm-1-18. Konfiguraci sítě je potřeba poskytnout v rámci datového oddílu v rámci sítě.

    Příklad:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: istio-shared-configmap-asm-1-18
      namespace: aks-istio-system
    data:
      mesh: |-
        accessLogFile: /dev/stdout
        defaultConfig:
          holdApplicationUntilProxyStarts: true
    

    Hodnoty v defaultConfig rámci sítě se použijí pro proxy sajdkáře Envoy.

Upozornění

Výchozí objekt ConfigMap (například istio-asm-1-18 pro revizi asm-1-18) se vytvoří v oboru názvů v aks-istio-system clusteru, když je povolen doplněk Istio. Tento výchozí objekt ConfigMap se však odsouhlasí spravovaným doplňkem Istio, a proto by uživatelé neměli přímo upravovat tuto mapu ConfigMap. Místo toho by uživatelé měli v oboru názvů aks-istio-istio vytvořit specifickou sdílenou mapu ConfigMap (například istio-shared-configmap-asm-1-18 revizní asm-1-18) a potom řídicí rovinu Istio sloučí s výchozím objektem ConfigMap s výchozím nastavením, které má přednost.

Konfigurace a upgrady sítě

Při provádění kanárového upgradu pro Istio musíte před zahájením kanárového upgradu vytvořit samostatnou mapu ConfigMap pro novou revizi v aks-istio-system oboru názvů. Tímto způsobem je konfigurace dostupná, když je v clusteru nasazena řídicí rovina nové revize. Pokud například upgradujete síť z asm-1-18 na asm-1-19, budete muset zkopírovat změny, aby istio-shared-configmap-asm-1-18 se v aks-istio-system oboru názvů vytvořil nový objekt ConfigMap.istio-shared-configmap-asm-1-19

Po dokončení nebo vrácení upgradu zpět můžete odstranit objekt ConfigMap revize, která byla odebrána z clusteru.

Povolené, podporované a blokované hodnoty MeshConfig

Pole jsou MeshConfig klasifikována jako allowed, supportednebo blocked. Další informace o těchto kategoriích najdete v zásadách podpory pro funkce doplňku Istio a možnosti konfigurace.

Konfigurace sítě a seznam povolených nebo podporovaných polí jsou revizí specifické pro účet přidaných nebo odebraných polích napříč revizemi. Úplný seznam povolených polí a podporovaných nebo nepodporovaných polí v seznamu povolených polí najdete v následující tabulce. Při zpřístupnění nové revize sítě jsou v této tabulce zaznamenány všechny změny povolené a podporované klasifikace polí.

MeshConfig

Pole, která jsou k dispozici v referenční dokumentaci open source MeshConfig, která nejsou zahrnuta v následující tabulce, jsou blokovaná. Například configSources je zablokovaný.

Pole Podporované nebo povolené Poznámky
proxyListenPort Povoleno -
proxyInboundListenPort Povoleno -
proxyHttpPort Povoleno -
connectTimeout Povoleno Konfigurovatelné v cílovémru
tcpKeepalive Povoleno Konfigurovatelné v cílovémru
defaultConfig Podporováno Slouží ke konfiguraci služby ProxyConfig.
outboundTrafficPolicy Podporováno Konfigurovatelné také v Sajdkáře CR
extensionProviders Povoleno -
defaultProviders Povoleno -
accessLogFile Podporováno Toto pole řeší generování protokolů přístupu. Spravované prostředí pro shromažďování a dotazování protokolů najdete v azure Monitor Container Insights v AKS. Doporučujeme nakonfigurovat protokolování přístupu prostřednictvím rozhraní API telemetrie.
accessLogFormat Podporováno Toto pole řeší generování protokolů přístupu. Informace o spravovaném prostředí pro shromažďování a dotazování protokolů najdete v Azure Monitor Container Insights v AKS.
accessLogEncoding Podporováno Toto pole řeší generování protokolů přístupu. Informace o spravovaném prostředí pro shromažďování a dotazování protokolů najdete v Azure Monitor Container Insights v AKS.
enableTracing Povoleno Doporučujeme nakonfigurovat trasování prostřednictvím rozhraní API telemetrie.
enableEnvoyAccessLogService Podporováno Toto pole řeší generování protokolů přístupu. Informace o spravovaném prostředí pro shromažďování a dotazování protokolů najdete v Azure Monitor Container Insights v AKS.
disableEnvoyListenerLog Podporováno Toto pole řeší generování protokolů přístupu. Informace o spravovaném prostředí pro shromažďování a dotazování protokolů najdete v Azure Monitor Container Insights v AKS.
trustDomain Povoleno -
trustDomainAliases Povoleno -
caCertificates Povoleno Konfigurovatelné v cílovémru
defaultServiceExportTo Povoleno Konfigurovatelné ve službě ServiceEntry
defaultVirtualServiceExportTo Povoleno Konfigurovatelné ve službě VirtualService
defaultDestinationRuleExportTo Povoleno Konfigurovatelné v cílovémru
localityLbSetting Povoleno Konfigurovatelné v cílovémru
dnsRefreshRate Povoleno -
h2UpgradePolicy Povoleno Konfigurovatelné v cílovémru
enablePrometheusMerge Povoleno -
discoverySelectors Podporováno -
pathNormalization Povoleno -
defaultHttpRetryPolicy Povoleno Konfigurovatelné ve službě VirtualService
serviceSettings Povoleno -
meshMTLS Povoleno -
TlsDefaults Povoleno -
ingressService Povoleno Název služby Kubernetes používané pro kontroler příchozího přenosu dat istio.
ingressSelector Povoleno Definuje, které nasazení brány se má použít jako kontroler příchozího přenosu dat. Toto pole odpovídá poli Gateway.selector a bude nastaveno jako istio: INGRESS_SELECTOR.

ProxyConfig (meshConfig.defaultConfig)

Pole, která jsou k dispozici v referenční dokumentaci open source MeshConfig, která nejsou zahrnuta v následující tabulce, jsou blokovaná.

Pole Podporované nebo povolené Poznámky
tracingServiceName Povoleno Doporučujeme nakonfigurovat trasování prostřednictvím rozhraní API telemetrie.
drainDuration Podporováno -
statsUdpAddress Povoleno -
proxyAdminPort Povoleno -
trasování Povoleno Doporučujeme nakonfigurovat trasování prostřednictvím rozhraní API telemetrie.
souběžnost Podporováno -
envoyAccessLogService Povoleno Doporučujeme nakonfigurovat trasování prostřednictvím rozhraní API telemetrie.
envoyMetricsService Povoleno Doporučujeme nakonfigurovat shromažďování metrik prostřednictvím rozhraní API telemetrie.
proxyMetadata Povoleno -
statusPort Povoleno -
extraStatTags Povoleno -
proxyStatsMatcher Povoleno -
terminationDrainDuration Podporováno -
meshId Povoleno -
holdApplicationUntilProxyStarts Podporováno -
caCertificatesPem Povoleno -
privateKeyProvider Povoleno -

Upozornění

Rozsah konfigurací podpory: Konfigurace sítě umožňuje poskytovatelům rozšíření, jako jsou instance Zipkinu nebo Apache Skywalkingu, nakonfigurovat pomocí doplňku Istio. Tito poskytovatelé rozšíření jsou však mimo rozsah podpory doplňku Istio. Všechny problémy související s nástroji rozšíření jsou mimo hranice podpory doplňku Istio.

Běžné chyby a tipy pro řešení potíží

  • Ujistěte se, že je sada MeshConfig odsazená mezerami místo tabulátoru.
  • Ujistěte se, že upravujete pouze sdílené objekty ConfigMap specifické pro revizi (například istio-shared-configmap-asm-1-18) a nepokoušejte se upravit výchozí objekt ConfigMap (například istio-asm-1-18).
  • ConfigMap musí následovat název istio-shared-configmap-<asm-revision> a být v aks-istio-system oboru názvů.
  • Ujistěte se, že jsou všechna pole MeshConfig napsaná správně. Pokud nejsou nerozpoznané nebo pokud nejsou součástí seznamu povolených, řízení přístupu takové konfigurace odmítne.
  • Připrováděních
  • Některé MeshConfig možnosti, jako je například accessLogging, můžou zvýšit spotřebu prostředků envoy a zakázání některých z těchto nastavení může zmírnit využití prostředků roviny dat Istio. Také je vhodné použít discoverySelectors pole ve službě MeshConfig, které pomáhá zmírnit spotřebu paměti pro Istiod a Envoy.
  • concurrency Pokud je pole v MeshConfig chybně nakonfigurované a nastavené na nulu, způsobí, že envoy použije všechna jádra procesoru. Místo toho, pokud toto pole není nastavené, počet pracovních vláken, která se mají spustit, se automaticky určí na základě požadavků nebo limitů procesoru.
  • Podmínky závodu podu a sajdkáře, ve kterých se aplikace spouští před voláním, je možné zmírnit pomocí holdApplicationUntilProxyStarts pole ve službě MeshConfig.