全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Deskripsi CRD ASMEgressTrafficPolicy

更新时间:Nov 11, 2025

Pada instans Service Mesh (ASM) versi 1.16.4 dan yang lebih baru, Anda dapat menggunakan CustomResourceDefinition (CRD) ASMEgressTrafficPolicy untuk mendefinisikan cara gerbang keluar mengelola akses ke trafik eksternal. Dengan mengombinasikan proxy sidecar dan kebijakan otorisasi, Anda dapat meningkatkan pengaturan trafik. Topik ini menyediakan contoh YAML serta menjelaskan bidang-bidang dalam CRD ASMEgressTrafficPolicy.

Contoh YAML

Contoh 1: Izinkan akses ke layanan eksternal tertentu melalui gerbang keluar

Layanan sleep-a di namespace mytest dapat mengakses http://www.httpbin.org pada port 80 melalui gerbang keluar bernama egressgateway-a.

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMEgressTrafficPolicy
metadata:
  name: egress-by-egressgateway-a  # Konvensi penamaan: Nama harus sama dengan nama gerbang keluar.
  namespace: istio-egress                # Konvensi namespace: Namespace harus istio-egress.
spec:
  byEgressGateway:
    name: egressgateway-a
  egressRules:
  - from:
    - namespace: mytest
      workloadSelector:
        app: sleep-a
    to:
    - name: httpbin-service-http
      hosts:
      - www.httpbin.org  # Beberapa nama domain harus diselesaikan ke alamat IP yang sama oleh DNS.
      - httpbin.org      # Beberapa nama domain harus diselesaikan ke alamat IP yang sama oleh DNS.
      port:
        name: http
        number: 80
        protocol: HTTP
      byEgressGateway:
        port: 80        # Sidecar → 80 Gateway → 80 Layanan (httpbin.org)

Contoh 2: Mengizinkan beberapa layanan untuk mengakses layanan eksternal tertentu melalui gateway egress dan meningkatkan permintaan HTTP menjadi permintaan HTTPS

  • Layanan sleep-a di namespace mytest dapat mengakses http://www.httpbin.org pada port 80 melalui gerbang keluar bernama egressgateway-a, yang kemudian meningkatkan permintaan HTTP menjadi HTTPS.

  • Layanan sleep-a di namespace mytest dapat mengakses https://www.httpbin.org pada port 444 melalui gerbang keluar bernama egressgateway-a.

  • Layanan sleep-b di namespace mytest dapat mengakses https://www.aliyun.com pada port 445 melalui gerbang keluar bernama egressgateway-a.

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMEgressTrafficPolicy
metadata:
  name: egress-by-egressgateway-a  # Konvensi penamaan: Nama harus sama dengan nama gerbang keluar.
  namespace: istio-egress                # Konvensi namespace: Namespace harus istio-egress.
spec:
  byEgressGateway:
    name: egressgateway-a
  egressRules:
  - from:
     - namespace: mytest
       workloadSelector:
          app: sleep-a
    to:
    - name: httpbin-service-http
      hosts:
      - www.httpbin.org  # Beberapa nama domain harus diselesaikan ke alamat IP yang sama oleh DNS.
      - httpbin.org      # Beberapa nama domain harus diselesaikan ke alamat IP yang sama oleh DNS.
      port:
        name: http
        number: 80
        protocol: HTTP
      byEgressGateway:
        port: 80        # Sidecar → 80 Gateway → 80 Layanan (httpbin.org)
      httpsUpgrade:
        enabled: true   # Jika enabled diatur ke false, port yang ditentukan dalam httpsUpgrade tidak berlaku.
        port: 443       # Sidecar → 80 Gateway → 443 Layanan (httpbin.org)
    - name: httpbin-service-https
      hosts:
      - www.httpbin.org
      - httpbin.org
      port:
        name: https
        number: 443
        protocol: HTTPS
      byEgressGateway:
        port: 444
  - from:
     - namespace: mytest
       workloadSelector:
          app: sleep-b
    to:
    - name: aliyun-service-https
      hosts:
      - www.aliyun.com
      port:
        name: https
        number: 443
        protocol: HTTPS
      byEgressGateway:
        port: 445

Contoh 3: Akses layanan eksternal melalui HTTP dan TCP serta tetapkan port gerbang keluar secara otomatis

Mulai dari versi 1.24.6.45, Anda dapat menggunakan ASMEgressTrafficPolicy untuk mengonfigurasi layanan eksternal berbasis TCP. Karena layanan TCP yang berbeda memerlukan port gerbang keluar yang berbeda, ASM mendukung penetapan otomatis port pengalihan untuk gerbang keluar. Rentang port default untuk penetapan tersebut adalah 10.000 hingga 20.000. Anda tidak perlu memodifikasi port-port ini secara manual karena tidak memengaruhi layanan Anda. Contoh kode berikut memberikan ilustrasi:

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMEgressTrafficPolicy
metadata:
  name: egress-by-egressgateway-a  # Konvensi penamaan: Nama harus sama dengan nama gerbang keluar.
  namespace: istio-egress                # Konvensi namespace: Namespace harus istio-egress.
spec:
  byEgressGateway:
    name: egressgateway-a
  egressRules:
  - from:
    - namespace: default
      workloadSelector:
        app: sleep
    to:
    - name: aliyun-com-http  # entri rute http
      hosts:
      - aliyun.com
      port:
        name: http
        number: 80
        protocol: HTTP
    - name: aliyun-https    # entri rute https
      hosts:
      - aliyun.com
      port:
        name: https
        number: 443
        protocol: HTTPS
    - name: https-upgrade  # http ditingkatkan menjadi https
      hosts:
      - taobao.com
      port:
        name: http
        protocol: HTTP
        number: 80
      httpsUpgrade:
        enabled: true
        port: 443
    - name: tcp-svc1      # svc tcp 1
      hosts:
      - 1.1.1.1
      port:
        name: tcp
        protocol: TCP
        number: 44
    - name: tcp-svc2      # svc tcp 2
      hosts:
      - test-tcp.com
      port:
        name: tcp
        protocol: TCP
        number: 444
Penting

Untuk mengakses layanan TCP eksternal menggunakan nama domain, pastikan fitur Proxy DNS ASM diaktifkan. Untuk informasi selengkapnya, lihat Gunakan Proxy DNS di ASM.

Deskripsi Bidang

Spec

Bidang

Tipe

Diperlukan

Deskripsi

byEgressGateway

ByEgressGateway

Ya

Gerbang keluar yang digunakan untuk mengakses layanan eksternal.

egressRules

EgressRule[]

Ya

Aturan trafik keluar.

ByEgressGateway

Bidang

Tipe

Diperlukan

Deskripsi

name

string

Ya

Nama gerbang keluar. Disarankan agar nama gerbang tidak melebihi 32 karakter.

  • Untuk bidang byEgressGateway di bawah Spec, Anda hanya perlu menentukan nama, bukan port.

port

uint32

Tidak

Port gerbang keluar.

  • Untuk bidang byEgressGateway di dalam To, Anda hanya perlu menentukan port, bukan nama.

EgressRule

Bidang

Tipe

Diperlukan

Deskripsi

name

string

Tidak

Nama aturan.

from

From[]

Ya

Sumber trafik egress, yaitu pemula permintaan.

to

To[]

Ya

Tujuan trafik egress, yaitu layanan target eksternal dari permintaan.

From

Bidang

Tipe

Diperlukan

Deskripsi

namespace

string

Ya

Namespace tempat layanan yang memulai permintaan berada.

workloadSelector

map[string]string

Tidak

Filter yang digunakan untuk memilih layanan sumber trafik keluar berdasarkan label.

To

Bidang

Tipe

Diperlukan

Deskripsi

name

string

Ya

Nama layanan eksternal.

hosts

string[]

Ya

Nama domain layanan eksternal. Anda dapat mengonfigurasi beberapa nama domain, tetapi semuanya harus mengarah ke situs yang sama.

port

Port

Ya

Port layanan eksternal.

byEgressGateway

ByEgressGateway

Ya

Mengakses layanan eksternal melalui port tertentu dari gerbang keluar.

  • Mulai dari ASM 1.24.6.45, jika semua bidang byEgressGateway dalam bagian To suatu ASMEgressTrafficPolicy kosong, ASM akan secara otomatis menetapkan port untuk semua layanan.

httpsUpgrade

HttpsUpgrade

Tidak

Menentukan apakah permintaan ditingkatkan menjadi HTTPS. Permintaan HTTP yang diajukan oleh layanan untuk mengakses layanan eksternal ditingkatkan menjadi permintaan HTTPS oleh gerbang keluar.

HttpsUpgrade

Bidang

Tipe

Diperlukan

Deskripsi

enabled

bool

Ya

Menentukan apakah permintaan ditingkatkan menjadi HTTPS.

port

uint32

Ya

Port HTTPS dari layanan eksternal.

Referensi

Kelola trafik keluar menggunakan ASMEgressTrafficPolicy