Istio-alapú service mesh bővítmény konfigurálása az Azure Kubernetes Service-hez
A nyílt forráskódú Istio a MeshConfig használatával határozza meg az Istio szolgáltatásháló hálószintű beállításait. Az AKS Istio-alapú service mesh bővítménye a MeshConfigra épül, és a különböző tulajdonságokat támogatottnak, engedélyezettnek és letiltottnak sorolja be.
Ez a cikk bemutatja, hogyan konfigurálhatja az Istio-alapú service mesh bővítményt az Azure Kubernetes Service-hez, valamint az ilyen konfigurációra vonatkozó támogatási szabályzatot.
Előfeltételek
Ez az útmutató feltételezi, hogy követte a dokumentációt , hogy engedélyezze az Istio bővítményt egy AKS-fürtön.
Konfiguráció beállítása fürtön
Megtudhatja, hogy az Istio melyik változata van üzembe helyezve a fürtön:
az aks show --name $CLUSTER --resource-group $RESOURCE_GROUP --query 'serviceMeshProfile'
Hozam:
{ "istio": { "certificateAuthority": null, "components": { "egressGateways": null, "ingressGateways": null }, "revisions": [ "asm-1-18" ] }, "mode": "Istio" }
Hozzon létre egy konfigurációtérképet a névtérben szereplő
aks-istio-system
névvelistio-shared-configmap-<asm-revision>
. Ha például a fürt a mesh ASM-1-18 változatát futtatja, akkor a ConfigMap nevet kell adniistio-shared-configmap-asm-1-18
. A hálókonfigurációt a mesh adatszakaszában kell megadni.Példa:
apiVersion: v1 kind: ConfigMap metadata: name: istio-shared-configmap-asm-1-18 namespace: aks-istio-system data: mesh: |- accessLogFile: /dev/stdout defaultConfig: holdApplicationUntilProxyStarts: true
Az alatta lévő
defaultConfig
értékek az envoy sidecar proxyra alkalmazott hálószintű beállítások.
Figyelemfelhívás
Az Istio bővítmény engedélyezésekor a rendszer létrehoz aks-istio-system
egy alapértelmezett konfigurációtérképet (például istio-asm-1-18
az asm-1-18-as verzióhoz). Ezt az alapértelmezett ConfigMap-et azonban a felügyelt Istio bővítmény egyezteti, így a felhasználóknak nem szabad közvetlenül szerkeszteniük ezt a ConfigMap-et. Ehelyett a felhasználóknak létre kell hozniuk egy változatspecifikus Istio megosztott konfigurációtérképet (például istio-shared-configmap-asm-1-18
az asm-1-18 verzióhoz) az aks-istio-system névtérben, majd az Istio vezérlősíkja egyesíti ezt az alapértelmezett ConfigMap-tal, és az alapértelmezett beállítások elsőbbséget élveznek.
Mesh-konfiguráció és -frissítések
Az Istio kanári-frissítésének végrehajtásakor létre kell hoznia egy külön ConfigMap-et az új változathoz a aks-istio-system
névtérben, mielőtt elindítja a kanári-frissítést. Így a konfiguráció akkor érhető el, ha az új változat vezérlősíkja üzembe van helyezve a fürtön. Ha például a hálót asm-1-18-ról asm-1-19-re frissíti, át kell másolnia a módosításokat istio-shared-configmap-asm-1-18
, hogy létrehozhasson egy új ConfigMap-et istio-shared-configmap-asm-1-19
a aks-istio-system
névtérben.
A frissítés befejezése vagy visszaállítása után törölheti a fürtről eltávolított változat konfigurációtérképét.
Engedélyezett, támogatott és letiltott MeshConfig-értékek
A mezők besorolása MeshConfig
allowed
: , supported
vagy blocked
. Ha többet szeretne megtudni ezekről a kategóriákról, tekintse meg az Istio bővítményfunkcióinak és konfigurációs beállításainak támogatási szabályzatát .
A mesh-konfiguráció és az engedélyezett/támogatott mezők listája a korrektúrák között hozzáadott/eltávolított mezők figyelembe vételével történik. Az engedélyezett mezők és a támogatott/nem támogatott mezők teljes listája az alábbi táblázatban található. Ha új hálóváltozat érhető el, a mezők engedélyezett és támogatott besorolásának módosításait ebben a táblázatban jegyezzük fel.
MeshConfig
A nyílt forráskód MeshConfig-referenciadokumentációban szereplő, az alábbi táblázatban nem szereplő mezők le vannak tiltva. Például configSources
le van tiltva.
Mező | Támogatott/Engedélyezett | Jegyzetek |
---|---|---|
proxyListenPort | Engedélyezve | - |
proxyInboundListenPort | Engedélyezve | - |
proxyHttpPort | Engedélyezve | - |
connectTimeout | Engedélyezve | Konfigurálható a DestinationRule-ban |
tcpKeepalive | Engedélyezve | Konfigurálható a DestinationRule-ban |
defaultConfig | Támogatott | ProxyConfig konfigurálására szolgál |
outboundTrafficPolicy | Támogatott | A Sidecar CR-ben is konfigurálható |
extensionProviders | Engedélyezve | - |
defaultProviders | Engedélyezve | - |
accessLogFile | Támogatott | Ez a mező a hozzáférési naplók generálását kezeli. A naplók gyűjtésével és lekérdezésével kapcsolatos felügyelt élményért tekintse meg az Azure Monitor Container Insightst az AKS-en. Javasoljuk, hogy a hozzáférés-naplózást a Telemetria API-val konfigurálja. |
accessLogFormat | Támogatott | Ez a mező a hozzáférési naplók generálását kezeli. A naplók gyűjtésével és lekérdezésével kapcsolatos felügyelt élményért tekintse meg az Azure Monitor Container Insightst az AKS-en |
accessLogEncoding | Támogatott | Ez a mező a hozzáférési naplók generálását kezeli. A naplók gyűjtésével és lekérdezésével kapcsolatos felügyelt élményért tekintse meg az Azure Monitor Container Insightst az AKS-en |
enableTracing | Engedélyezve | Javasoljuk, hogy a nyomkövetést a Telemetria API-val konfigurálja. |
enableEnvoyAccessLogService | Támogatott | Ez a mező a hozzáférési naplók generálását kezeli. A naplók gyűjtésével és lekérdezésével kapcsolatos felügyelt élményért tekintse meg az Azure Monitor Container Insightst az AKS-en |
disableEnvoyListenerLog | Támogatott | Ez a mező a hozzáférési naplók generálását kezeli. A naplók gyűjtésével és lekérdezésével kapcsolatos felügyelt élményért tekintse meg az Azure Monitor Container Insightst az AKS-en |
trustDomain | Engedélyezve | - |
trustDomainAliases | Engedélyezve | - |
caCertificates | Engedélyezve | Konfigurálható a DestinationRule-ban |
defaultServiceExportTo | Engedélyezve | Konfigurálható a ServiceEntryben |
defaultVirtualServiceExportTo | Engedélyezve | Konfigurálható a VirtualService-ben |
defaultDestinationRuleExportTo | Engedélyezve | Konfigurálható a DestinationRule-ban |
localityLbSetting | Engedélyezve | Konfigurálható a DestinationRule-ban |
dnsRefreshRate | Engedélyezve | - |
h2UpgradePolicy | Engedélyezve | Konfigurálható a DestinationRule-ban |
enablePrometheusMerge | Engedélyezve | - |
discoverySelectors | Támogatott | - |
pathNormalization | Engedélyezve | - |
defaultHttpRetryPolicy | Engedélyezve | Konfigurálható a VirtualService-ben |
serviceSettings | Engedélyezve | - |
meshMTLS | Engedélyezve | - |
tlsDefaults | Engedélyezve | - |
ingressService | Engedélyezve | Az istio bejövőforgalom-vezérlőhöz használt Kubernetes-szolgáltatás neve. |
ingressSelector | Engedélyezve | Meghatározza, hogy melyik átjáró üzembe helyezését használja bejövőforgalom-vezérlőként. Ez a mező a Gateway.selector mezőnek felel meg, és istio: INGRESS_SELECTOR lesz beállítva. |
ProxyConfig (meshConfig.defaultConfig)
A nyílt forráskód MeshConfig-referenciadokumentációban szereplő, az alábbi táblázatban nem szereplő mezők le vannak tiltva.
Mező | Támogatott/Engedélyezett | Jegyzetek |
---|---|---|
tracingServiceName | Engedélyezve | Javasoljuk, hogy a nyomkövetést a Telemetria API-val konfigurálja. |
drainDuration | Támogatott | - |
statsUdpAddress | Engedélyezve | - |
proxyAdminPort | Engedélyezve | - |
Nyomkövetés | Engedélyezve | Javasoljuk, hogy a nyomkövetést a Telemetria API-val konfigurálja. |
Konkurencia | Támogatott | - |
envoyAccessLogService | Engedélyezve | Javasoljuk, hogy a nyomkövetést a Telemetria API-val konfigurálja. |
envoyMetricsService | Engedélyezve | Javasoljuk, hogy a metrikák gyűjtését a Telemetria API-val konfigurálja. |
proxyMetadata | Engedélyezve | - |
statusPort | Engedélyezve | - |
extraStatTags | Engedélyezve | - |
proxyStatsMatcher | Engedélyezve | - |
terminationDrainDuration | Támogatott | - |
meshId | Engedélyezve | - |
holdApplicationUntilProxyStarts | Támogatott | - |
caCertificatesPem | Engedélyezve | - |
privateKeyProvider | Engedélyezve | - |
Figyelemfelhívás
A konfigurációk támogatási hatóköre: A Mesh-konfiguráció lehetővé teszi a bővítményszolgáltatók, például a Zipkin vagy az Apache Skywalking ön által felügyelt példányainak konfigurálását az Istio bővítményrel. Ezek a bővítményszolgáltatók azonban nem tartoznak az Istio bővítmény támogatási hatókörébe. A bővítményeszközökkel kapcsolatos problémák kívül vannak az Istio bővítmény támogatási határain.
Gyakori hibák és hibaelhárítási tippek
- Győződjön meg arról, hogy a MeshConfig lapfülek helyett szóközökkel van behúzva.
- Győződjön meg arról, hogy csak az adott megosztott konfigurációtérképet szerkeszti (például
istio-shared-configmap-asm-1-18
), és nem próbálja szerkeszteni az alapértelmezett konfigurációtérképet (példáulistio-asm-1-18
). - A konfigurációtérképnek követnie kell a nevet
istio-shared-configmap-<asm-revision>
, és aaks-istio-system
névtérben kell lennie. - Győződjön meg arról, hogy minden MeshConfig-mező helyesen van beírva. Ha nincsenek felismerve, vagy ha nem részei az engedélyezett listának, a belépés-vezérlés tagadja az ilyen konfigurációkat.
- A kanári-frissítések végrehajtásakor ellenőrizze a változatspecifikus konfigurációtérképeket, és győződjön meg arról, hogy léteznek konfigurációk a fürtön üzembe helyezett változatokhoz.
- Bizonyos
MeshConfig
beállítások, például az accessLogging növelhetik az envoy erőforrás-felhasználását, és néhány beállítás letiltása csökkentheti az Istio adatsíkok erőforrás-kihasználtságát. Javasoljuk továbbá, hogy adiscoverySelectors
MeshConfig mezője segítségével enyhítse az Istiod és az Envoy memóriahasználatát. - Ha a
concurrency
MeshConfig mezője helytelenül van konfigurálva, és nullára van állítva, az az Envoy számára az összes processzormag használatát eredményezi. Ha ez a mező nem található meg, a futtatandó feldolgozói szálak száma automatikusan meg lesz határozva a CPU-kérések/korlátok alapján. - Pod- és oldalkocsis versenyfeltételek , amelyekben az alkalmazás az Envoy előtt indul el, a MeshConfig mező használatával
holdApplicationUntilProxyStarts
enyhíthető.
Azure Kubernetes Service