全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Deskripsi bidang ASMSwimLaneGroup dan ASMSwimLane

更新时间:Jun 28, 2025

Service Mesh (ASM) memungkinkan Anda mengimplementasikan kemampuan jalur lalu lintas untuk rantai panggilan layanan menggunakan CustomResourceDefinitions (CRD) ASMSwimLaneGroup dan ASMSwimLane. ASM memungkinkan Anda mengisolasi layanan versi tertentu dari aplikasi atau aplikasi dengan karakteristik tertentu ke dalam lingkungan runtime independen (dikenal sebagai jalur). Kemudian, Anda dapat mengonfigurasi aturan jalur untuk merutekan permintaan yang memenuhi aturan tersebut ke layanan versi tertentu dari aplikasi atau aplikasi dengan karakteristik tertentu.

Contoh konfigurasi

Konfigurasi berikut menunjukkan bahwa sebuah grup jalur bernama mock dibuat untuk layanan mocka, mockb, dan mockc di namespace default dari kluster Kubernetes. Grup jalur tersebut berisi dua jalur lalu lintas, v1 dan v2. Jalur v1 dan v2 sesuai dengan versi v1 dan v2 dari layanan ini masing-masing. Versi dibedakan oleh label versi pada pod. Saat layanan mocka, mockb, dan mockc saling memanggil, hanya layanan dengan versi yang sama yang dipanggil. Ini memisahkan layanan v1 dan v2. Selain itu, layanan virtual dibuat berdasarkan gateway Istio bernama ingressgateway di namespace istio-system untuk merutekan permintaan ke dua jalur tersebut.

Tampilkan File YAML

apiVersion: istio.alibabacloud.com/v1
kind: ASMSwimLaneGroup
metadata:
  name: mock
spec:
  ingress:
    gateway:
      name: ingressgateway
      namespace: istio-system
      type: ASM
  services:
  - name: mocka
    namespace: default
  - name: mockb
    namespace: default
  - name: mockc
    namespace: default
---
apiVersion: istio.alibabacloud.com/v1
kind: ASMSwimLane
metadata:
  labels:
    swimlane-group: mock
  name: v1
spec:
  ingressRules:
  - hosts:
    - '*'
    match:
      uri:
        exact: /mock
    name: r1
    online: true
    route:
      destination:
        host: mocka.default.svc.cluster.local
  labelSelector:
    version: v1
---
apiVersion: istio.alibabacloud.com/v1
kind: ASMSwimLane
metadata:
  labels:
    swimlane-group: mock
  name: v2
spec:
  ingressRules:
  - hosts:
    - '*'
    match:
      uri:
        exact: /mock
    name: r2
    online: true
    route:
      destination:
        host: mocka.default.svc.cluster.local
  labelSelector:
    version: v2

Deskripsi bidang ASMSwimLaneGroup

ASMSwimLaneGroup mendefinisikan grup jalur lalu lintas. Grup jalur lalu lintas mendefinisikan informasi yang dibagikan di antara beberapa jalur lalu lintas, termasuk layanan untuk mana jalur lalu lintas perlu dibuat dan gateway Istio berdasarkan layanan virtual yang digunakan untuk pengaturan routing permintaan yang perlu dibuat. Grup jalur lalu lintas dapat dikaitkan dengan beberapa jalur lalu lintas. Anda dapat mengaitkan jalur lalu lintas dengan grup jalur lalu lintas dengan menentukan swimlane-group: {Nama grup jalur lalu lintas}.

ASMSwimLaneGroupSpec

ASMSwimLaneGroupSpec, bagian spec dalam contoh sebelumnya, adalah konfigurasi inti dari ASMSwimLaneGroup.

Bidang

Tipe

Diperlukan

Deskripsi

services

ClusterServiceRef[]

Ya

Menentukan Layanan dalam kluster Kubernetes untuk mana jalur perlu dibuat. Anda dapat mereferensikan Layanan dalam kluster Kubernetes dengan menentukan nama, namespace, ID kluster, dan nama kluster dari Layanan Kubernetes.

ingress

SwimLaneGroupIngressConfiguration

Ya

Menentukan konfigurasi gateway masuk dari grup jalur lalu lintas. Gateway masuk terutama digunakan untuk merutekan permintaan ke beberapa versi Layanan dalam grup jalur.

isPermissive

bool

Tidak

Menentukan mode grup jalur lalu lintas. Nilai valid:

  • true: mode permissive.

  • false atau dibiarkan kosong: mode ketat.

Untuk informasi lebih lanjut tentang jalur lalu lintas dalam mode ketat dan permissive, lihat Ikhtisar jalur lalu lintas.

permissiveModeConfiguration

PermissiveSwimLaneGroupConfiguration

Tidak

Konfigurasi grup jalur dalam mode permissive. Anda harus mengonfigurasi bidang ini saat grup jalur berada dalam mode permissive.

ClusterServiceRef

Setiap ClusterServiceRef mereferensikan satu layanan yang diterapkan dalam kluster Kubernetes. Jalur dibuat berdasarkan referensi layanan.

Bidang

Tipe

Diperlukan

Deskripsi

name

string

Ya

Nama Layanan Kubernetes.

namespace

string

Ya

Namespace tempat Layanan Kubernetes berada.

cluster

ClusterRef

Tidak

Informasi referensi tentang kluster Kubernetes.

ClusterRef

ClusterRef menyediakan informasi referensi tentang kluster Kubernetes yang ditambahkan ke instance ASM.

Bidang

Tipe

Diperlukan

Deskripsi

name

string

Tidak

Nama tampilan kluster Kubernetes.

id

string

Tidak

ID kluster Kubernetes.

SwimLaneGroupIngressConfiguration

SwimLaneGroupIngressConfiguration mendefinisikan informasi tentang gateway masuk yang digunakan untuk merutekan permintaan untuk layanan dalam grup jalur.

Bidang

Tipe

Diperlukan

Deskripsi

gateway

SwimLaneGatewayConfiguration

Ya

Informasi tentang gateway Istio yang terkait dengan gateway masuk.

ingressRouting

SwimLaneGroupIngressRouteConfiguration

Tidak

Konfigurasi aturan routing permintaan yang digunakan untuk merutekan permintaan untuk Layanan dalam grup jalur.

Catatan

Hanya instance ASM V1.21.6.92 dan yang lebih baru yang mendukung bidang ini.

SwimLaneGatewayConfiguration

SwimLaneGatewayConfiguration mendefinisikan informasi tentang gateway Istio yang terkait dengan gateway masuk.

Bidang

Tipe

Diperlukan

Deskripsi

name

string

Ya

Nama gateway Istio.

namespace

string

Ya

Namespace tempat gateway Istio berada.

type

string

Ya

Jenis gateway Istio. Anda harus menetapkan bidang ini ke ASM, yang menunjukkan gateway Istio yang disediakan oleh ASM.

SwimLaneGroupIngressRouteConfiguration

SwimLaneGroupIngressRouteConfiguration menentukan konfigurasi aturan routing permintaan yang digunakan untuk merutekan permintaan untuk layanan dalam grup jalur.

Bidang

Tipe

Diperlukan

Deskripsi

ingressRoutingStrategy

string

Tidak

Kebijakan yang digunakan untuk merutekan permintaan untuk Layanan dalam grup jalur. Nilai valid:

  • rule_based: kebijakan routing permintaan default. Setiap jalur menggunakan bidang ingressRules untuk menentukan aturan routing permintaannya sendiri. Permintaan yang cocok dengan aturan routing permintaan dikirim ke jalur yang sesuai.

  • weighted: kebijakan routing permintaan berbasis bobot. Semua Layanan dalam grup jalur mencocokkan permintaan berdasarkan aturan routing permintaan yang seragam. Permintaan yang cocok dikirim ke Layanan dalam jalur berbeda dengan rasio tertentu.

weightedRoutingRule

WeightedSwimLaneIngressConfiguration

Tidak

Aturan routing permintaan seragam yang digunakan untuk mencocokkan semua permintaan saat kebijakan routing permintaan berbasis bobot digunakan. Bidang ini hanya berlaku jika bidang ingressRoutingStrategy diatur ke weighted.

WeightedSwimLaneIngressConfiguration

WeightedSwimLaneIngressConfiguration menentukan konfigurasi aturan pencocokan permintaan seragam yang digunakan untuk mencocokkan semua permintaan saat kebijakan routing permintaan berbasis bobot digunakan.

Bidang

Tipe

Diperlukan

Deskripsi

hosts

[]string

Ya

Host yang cocok dengan permintaan. Host harus dideklarasikan di gateway Istio yang terkait dengan grup jalur.

requestMatches

SwimLaneIngressRequestMatch

Tidak

Aturan pencocokan permintaan yang digunakan untuk mencocokkan URI dan header permintaan.

PermissiveSwimLaneGroupConfiguration

PermissiveSwimLaneGroupConfiguration mendefinisikan parameter yang perlu ditentukan untuk grup jalur lalu lintas dalam mode permissive.

Bidang

Tipe

Diperlukan

Deskripsi

routeHeader

string

Ya

Nama header routing permintaan dari jalur lalu lintas dalam mode permissive.

Header routing permintaan digunakan untuk menentukan jalur permintaan saat permintaan dilewatkan dalam rantai panggilan.

Dalam mode permissive, saat permintaan diteruskan ke Layanan upstream melalui gateway masuk, permintaan tersebut harus membawa header routing permintaan yang digunakan untuk menentukan jalur tempat permintaan berada.

traceHeader

string

Ya

Nama header permintaan end-to-end (E2E) pass-through dari jalur lalu lintas dalam mode permissive.

Header permintaan E2E pass-through harus memiliki karakteristik berikut:

  • Header permintaan E2E pass-through dilewatkan dalam rantai panggilan.

  • Header permintaan E2E pass-through harus berbeda untuk setiap permintaan ketika header permintaan E2E pass-through berbeda dari header routing permintaan. ID jejak dapat digunakan sebagai header permintaan E2E pass-through. Misalnya, Anda dapat menggunakan x-b3-trace-id sebagai header permintaan E2E pass-through.

fallbackTarget

string

Tidak

Nama jalur dasar dalam mode permissive. Jika permintaan gagal dirutekan ke Layanan versi yang sesuai dalam jalur yang diinginkan, permintaan dikembalikan ke versi yang sesuai dari Layanan dalam jalur dasar.

Deskripsi bidang ASMSwimLane

ASMSwimLane mendefinisikan jalur lalu lintas. Jalur lalu lintas mendefinisikan informasi terkait versi tertentu atau karakteristik tertentu dari sebuah layanan. Anda dapat menambahkan label swimlane-group: {Nama grup jalur lalu lintas} ke jalur lalu lintas untuk mengaitkannya dengan grup jalur lalu lintas yang sesuai.

ASMSwimLaneSpec

ASMSwimLaneSpec, yaitu bagian spec, adalah konfigurasi inti dari ASMSwimLane.

Bidang

Tipe

Diperlukan

Deskripsi

labelSelector

map<string, string>

Ya

Satu atau lebih label yang digunakan untuk mencocokkan pod untuk Layanan dalam jalur. Secara umum, Anda dapat menggunakan label dengan informasi versi untuk mencocokkan pod dalam jalur tertentu. Misalnya, Anda dapat menggunakan label version: v1 untuk mencocokkan pod untuk Layanan v1.

services

ClusterServiceRef[]

Tidak

Menentukan Layanan yang diterapkan dalam jalur. Bidang ini mirip dengan bidang services dalam ASMSwimLaneGroupSpec. Anda dapat mereferensikan Layanan dalam kluster Kubernetes dengan menentukan nama, namespace, ID kluster, dan nama kluster dari Layanan Kubernetes.

  • Jika jalur lalu lintas dikaitkan dengan grup jalur dalam mode ketat, Anda tidak perlu menentukan bidang ini. Secara default, jalur harus berisi semua Layanan dari grup jalur.

  • Jika jalur lalu lintas dikaitkan dengan grup jalur dalam mode permissive, Anda harus menentukan bidang ini. Dalam hal ini, bidang services dalam bagian ASMSwimLaneSpec harus merupakan subset dari bidang services dalam bagian ASMSwimLaneGroupSpec. Saat Layanan dalam jalur saling memanggil, jika Layanan yang akan dipanggil tidak ada dalam jalur, permintaan diteruskan ke Layanan yang sama dalam jalur dasar.

ingressRules

SwimLaneIngressRule[]

Tidak

Definisi aturan routing permintaan untuk jalur. Definisi ini secara otomatis dikonversi menjadi layanan virtual untuk gateway masuk yang terkait dengan grup jalur. Layanan virtual merutekan permintaan dari gateway masuk ke Layanan dalam jalur.

Jika Anda tidak menentukan bidang ingressRules, Anda dapat membuat layanan virtual secara manual untuk gateway masuk untuk merutekan permintaan ke Layanan dalam jalur.

ingressWeight

SwimLaneIngressWeight

Tidak

Jika grup jalur menggunakan kebijakan routing permintaan berbasis bobot, bidang ini menentukan bobot routing permintaan dari jalur. Grup jalur meneruskan sebagian permintaan ke layanan masuk jalur berdasarkan bobot routing permintaan yang dideklarasikan untuk jalur berbeda. Bidang ini hanya berlaku jika bidang ingressRoutingStrategy diatur ke weighted.

SwimLaneIngressRule

SwimLaneIngressRule menentukan aturan routing untuk gateway masuk untuk merutekan permintaan ke layanan dalam jalur. Aturan tersebut secara otomatis dikonversi menjadi layanan virtual untuk gateway masuk.

Bidang

Tipe

Diperlukan

Deskripsi

online

bool

Ya

Menentukan apakah aturan routing permintaan berlaku. Layanan virtual yang sesuai untuk gateway masuk hanya dibuat jika bidang online diatur ke true.

hosts

string[]

Ya

Host yang cocok dengan aturan routing permintaan. Bidang ini sesuai dengan bidang hosts dalam layanan virtual.

name

string

Tidak

Nama aturan routing permintaan. Ini sesuai dengan bidang name di bawah bagian http dalam layanan virtual.

match

SwimLaneIngressRequestMatch

Tidak

Kondisi yang harus dipenuhi oleh permintaan agar aturan routing permintaan cocok. Bidang ini secara otomatis dikonversi menjadi bidang match di bawah bagian http dalam layanan virtual.

route

SwimLaneIngressRoute

Ya

Layanan tujuan ke mana permintaan dirutekan. Bidang ini secara otomatis dikonversi menjadi bidang route di bawah bagian http dalam layanan virtual.

SwimLaneIngressWeight

Bidang

Tipe

Diperlukan

Deskripsi

weight

int

Tidak

Bobot routing permintaan dari jalur. Jika bidang ini tidak ditentukan, bobot routing permintaan adalah 0. Nilai bobot digunakan bersama dengan bobot routing permintaan dari jalur lain untuk menentukan rasio routing permintaan.

destination

RouteDestination

Ya

Bidang ini menentukan Layanan tujuan ke mana permintaan diteruskan saat kebijakan routing permintaan berbasis bobot digunakan.

SwimLaneIngressRequestMatch

SwimLaneIngressRequestMatch menentukan kondisi yang harus dipenuhi oleh permintaan agar aturan routing permintaan cocok.

Bidang

Tipe

Diperlukan

Deskripsi

uri

StringMatch

Tidak

Kondisi yang harus dipenuhi oleh URI permintaan agar permintaan yang sesuai cocok. Nilai valid:

  • exact: "value": pencocokan string eksak.

  • prefix: "value": pencocokan awalan.

  • regex: "value": pencocokan ekspresi reguler RE2. Untuk informasi lebih lanjut, lihat Syntax.

headers

map<string, StringMatch>

Tidak

Kondisi yang harus dipenuhi oleh header permintaan agar permintaan yang sesuai cocok. Kunci dalam koleksi Map harus huruf kecil dan berisi tanda hubung (-). Kunci, misalnya x-request-id, mewakili nama header. Nilai dalam koleksi Map adalah tipe StringMatch. Nilai valid:

  • exact: "value": pencocokan string eksak.

  • prefix: "value": pencocokan awalan.

  • regex: "value": pencocokan ekspresi reguler RE2. Untuk informasi lebih lanjut, lihat Syntax.

StringMatch

StringMatch menentukan kondisi pencocokan string, yang mendefinisikan metode untuk mencocokkan URI dan header permintaan.

Bidang

Tipe

Diperlukan

Deskripsi

Tentukan salah satu bidang berdasarkan mode pencocokan

exact

string

Tidak

Pencocokan string eksak.

prefix

string

Tidak

Pencocokan awalan.

regex

string

Tidak

Pencocokan ekspresi reguler RE2. Untuk informasi lebih lanjut, lihat wiki.

SwimLaneIngressRoute

SwimLaneIngressRoute menentukan layanan tujuan ke mana permintaan dirutekan.

Bidang

Tipe

Diperlukan

Deskripsi

destination

RouteDestination

Ya

Menentukan Layanan tujuan ke mana permintaan diteruskan.

RouteDestination

Bidang

Tipe

Diperlukan

Deskripsi

host

string

Ya

Nama domain Layanan Kubernetes. Contoh: mocka.default.svc.cluster.local.

portNum

int

Tidak

Port layanan dari kluster Kubernetes. Contoh: 8000.

Catatan

Instance ASM versi V1.21.4.104 dan yang lebih baru mendukung bidang ini.

Referensi