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
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" }
Vytvořte objekt ConfigMap s názvem
istio-shared-configmap-<asm-revision>
vaks-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 jakoistio-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
, supported
nebo 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říkladistio-asm-1-18
). - ConfigMap musí následovat název
istio-shared-configmap-<asm-revision>
a být vaks-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žítdiscoverySelectors
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.
Azure Kubernetes Service