Gerbang Service Mesh (ASM) berfungsi sebagai titik masuk lalu lintas bisnis Anda. Meningkatkan ketersediaan tinggi gerbang ASM penting untuk menghindari gangguan layanan. Topik ini menjelaskan cara meningkatkan ketersediaan tinggi gerbang ASM.
Prasyarat
Instans ASM telah dibuat. Untuk informasi selengkapnya, lihat Create an ASM instance.
-
Kluster Container Service for Kubernetes (ACK) atau kluster ACK Serverless telah dibuat. Untuk informasi selengkapnya, lihat Create an ACK managed cluster atau Create an ACK Serverless cluster.
Tingkatkan ketersediaan tinggi gerbang ASM di kluster ACK
Di kluster ACK, konfigurasikan kebijakan pod anti-affinity dalam file YAML saat membuat gerbang ASM. Hal ini mendistribusikan Pod gerbang ASM ke node atau zona yang berbeda, sehingga meningkatkan ketersediaan tinggi gerbang ASM.
-
Konfigurasikan parameter podAntiAffinity gerbang ASM untuk mendistribusikan Pod gerbang ASM ke node yang berbeda.
apiVersion: istio.alibabacloud.com/v1beta1 kind: IstioGateway metadata: name: ingressgateway-1 namespace: istio-system spec: clusterIds: - "c954ee9df88f64f229591f0ea4c61****" cpu: targetAverageUtilization: 80 externalTrafficPolicy: Local maxReplicas: 4 minReplicas: 2 ports: - name: status-port port: 15020 targetPort: 15020 - name: http2 port: 80 targetPort: 80 - name: https port: 443 targetPort: 80 - name: tls port: 15443 targetPort: 15443 replicaCount: 1 resources: limits: cpu: '2' memory: 2G requests: cpu: 200m memory: 256Mi sds: enabled: true resources: requests: cpu: 100m memory: 128Mi limits: cpu: 2000m memory: 1024Mi serviceType: LoadBalancer affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - istio-ingressgateway-1 topologyKey: kubernetes.io/hostname weight: 100 rollingMaxSurge: "100%" rollingMaxUnavailable: "25%"-
preferredDuringSchedulingIgnoredDuringExecution: menunjukkan bahwa pod anti-affinity merupakan kebijakan afinitas lunak. Jika tidak ada node yang memenuhi persyaratan yang dikonfigurasi, Pod tetap dapat dijadwalkan.
-
matchExpressions: atur key menjadi app, operator menjadi In, dan values menjadi istio-ingressgateway-1. Pengaturan ini menentukan bahwa Pod tidak dapat dideploy pada node yang sama dengan Pod yang memiliki label
app=istio-ingressgateway-1. Dengan kata lain, setiap node hanya dapat menjalankan satu Pod dengan labelapp=istio-ingressgateway-1. -
topologyKey: menentukan dimensi tempat pod anti-affinity berlaku.
Pada contoh ini,
kubernetes.io/hostnameditentukan, yang berarti kebijakan tersebut berlaku dalam domain topologi node.
-
-
Konfigurasikan parameter podAntiAffinity gerbang ASM untuk mendistribusikan Pod gerbang ASM ke zona yang berbeda.
apiVersion: istio.alibabacloud.com/v1beta1 kind: IstioGateway metadata: name: ingressgateway-1 namespace: istio-system spec: clusterIds: - "c954ee9df88f64f229591f0ea4c61****" cpu: targetAverageUtilization: 80 externalTrafficPolicy: Local maxReplicas: 4 minReplicas: 2 ports: - name: status-port port: 15020 targetPort: 15020 - name: http2 port: 80 targetPort: 80 - name: https port: 443 targetPort: 80 - name: tls port: 15443 targetPort: 15443 replicaCount: 1 resources: limits: cpu: '2' memory: 2G requests: cpu: 200m memory: 256Mi sds: enabled: true resources: requests: cpu: 100m memory: 128Mi limits: cpu: 2000m memory: 1024Mi serviceType: LoadBalancer affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - istio-ingressgateway-1 topologyKey: topology.kubernetes.io/zone weight: 100 rollingMaxSurge: "100%" rollingMaxUnavailable: "25%"-
preferredDuringSchedulingIgnoredDuringExecution: menunjukkan bahwa pod anti-affinity merupakan kebijakan afinitas lunak. Jika tidak ada node yang memenuhi persyaratan yang dikonfigurasi, Pod tetap dapat dijadwalkan.
-
matchExpressions: atur key menjadi app, operator menjadi In, dan values menjadi istio-ingressgateway-1. Pengaturan ini menentukan bahwa Pod tidak dapat dideploy di zona yang sama dengan Pod yang memiliki label
app=istio-ingressgateway-1. Dengan kata lain, setiap zona hanya dapat menjalankan satu Pod dengan labelapp=istio-ingressgateway-1. -
topologyKey: menentukan dimensi tempat pod anti-affinity berlaku.
Pada contoh ini,
topology.kubernetes.io/zoneditentukan, yang berarti kebijakan tersebut berlaku dalam domain topologi zona.
-
Tingkatkan ketersediaan tinggi gerbang ASM di kluster ACK Serverless
Kluster ACK Serverless tidak mendukung kebijakan penjadwalan pod anti-affinity. Namun, Pod Elastic Container Instance (ECI) dapat dibuat di kluster ACK Serverless dan didistribusikan ke zona yang berbeda untuk meningkatkan ketersediaan tinggi gerbang ASM.
-
Konfigurasikan beberapa zona di kluster ACK Serverless. Untuk informasi selengkapnya, lihat Create ECIs across zones.
-
Gunakan
pod annotationpada gerbang ASM untuk mengaitkan Pod dengan zona.apiVersion: istio.alibabacloud.com/v1beta1 kind: IstioGateway metadata: name: ingressgateway namespace: istio-system spec: clusterIds: - "c954ee9df88f64f229591f0ea4c61****" cpu: targetAverageUtilization: 80 externalTrafficPolicy: Local maxReplicas: 4 minReplicas: 2 ports: - name: status-port port: 15020 targetPort: 15020 - name: http2 port: 80 targetPort: 80 - name: https port: 443 targetPort: 80 - name: tls port: 15443 targetPort: 15443 replicaCount: 1 resources: limits: cpu: '2' memory: 2G requests: cpu: 200m memory: 256Mi sds: enabled: true resources: requests: cpu: 100m memory: 128Mi limits: cpu: 2000m memory: 1024Mi serviceType: LoadBalancer podAnnotations: k8s.aliyun.com/eci-vswitch: "vsw-bp1b07j0miob3khtn****,vsw-bp12b85hh323se8ft****" k8s.aliyun.com/eci-schedule-strategy: "VSwitchRandom" rollingMaxSurge: "100%" rollingMaxUnavailable: "25%"-
k8s.aliyun.com/eci-vswitch: ID vSwitch yang berbeda di virtual private cloud (VPC). vSwitch digunakan untuk mengaitkan Pod dengan zona.
-
k8s.aliyun.com/eci-schedule-strategy: kebijakan penjadwalan untuk Pod ECI. Pada topik ini, kebijakan
VSwitchRandomharus digunakan, yang menjadwalkan Pod ECI secara acak ke beberapa zona.
-