All Products
Search
Document Center

Alibaba Cloud Service Mesh:Kelola traffic egress ke layanan eksternal

Last Updated:Sep 25, 2026

Service Mesh menyediakan tiga metode untuk mengakses layanan eksternal: mengonfigurasi kebijakan traffic outbound, membuat service entry, dan mengonfigurasi Blok CIDR untuk intersepsi traffic. Topik ini menjelaskan cara mengelola akses ke layanan eksternal dari instans Service Mesh.

Tetapkan kebijakan traffic outbound

Di Service Mesh, Anda dapat menetapkan Outbound Traffic Policy untuk mengontrol akses ke layanan eksternal, yaitu layanan yang tidak didefinisikan dalam registrasi layanan internal Istio.

Catatan

Login ke Konsol ASM, klik nama instans ASM yang dituju, lalu di panel navigasi kiri pilih Instance Information > Network Status untuk melihat layanan dalam registrasi layanan Istio.

  • Jika kebijakan ini diatur ke ALLOW_ANY, proxy sidecar mengizinkan permintaan passthrough ke layanan yang tidak dikenal. Hal ini memberikan akses langsung ke layanan eksternal tetapi mengorbankan pemantauan dan kontrol traffic tingkat mesh.

    Penting

    Kami sangat menyarankan untuk menghindari metode ini saat mengakses layanan eksternal seperti database guna mencegah konflik akses.

    Definisikan service entry untuk setiap layanan eksternal guna mengontrol traffic secara eksplisit dan mencegah potensi masalah.

  • Jika kebijakan ini diatur ke REGISTRY_ONLY, proxy sidecar memblokir traffic ke host mana pun yang tidak didefinisikan sebagai layanan atau service entry dalam mesh.

  1. Login ke Konsol ASM.

  2. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  3. Pada halaman Mesh Management, temukan instans ASM yang ingin dikonfigurasi. Klik nama instans ASM tersebut atau klik Manage di kolom Actions.

  4. Pada halaman detail instans ASM, di panel navigasi kiri pilih Data Plane Component Management > Sidecar Proxy Setting.

  5. Pada halaman Configure the agent parameters of the injected Sidecar, di tab global, klik Outbound Traffic Policy, atur Outbound Traffic Policy ke ALLOW_ANY, lalu klik Update Settings.

    Dalam kontainer aplikasi tempat proxy sidecar diinjeksikan, jalankan perintah curl untuk mengakses layanan HTTP atau HTTPS eksternal. Perintah tersebut akan mengembalikan respons sukses.

    • Akses layanan HTTP eksternal.

      curl -I  http://www.aliyun.com/

      Output yang diharapkan:

      HTTP/1.1 301 Moved Permanently
      server: envoy
      date: Mon, 07 Sep 2020 09:28:54 GMT
      content-type: text/html
      content-length: 239
      location: https://www.aliyun.com/
      eagleeye-traceid: 0be3e0a615994709353116335ea5ea
      timing-allow-origin: *
      x-envoy-upstream-service-time: 67
    • Akses layanan HTTPS eksternal.

      curl -I  https://www.aliyun.com/

      Output yang diharapkan:

      HTTP/2 200
      server: Tengine
      date: Mon, 07 Sep 2020 09:16:31 GMT
      content-type: text/html; charset=utf-8
      vary: Accept-Encoding
      vary: Accept-Encoding
      strict-transport-security: max-age=31536000
      x-download-options: noopen
      x-content-type-options: nosniff
      x-xss-protection: 1; mode=block
      x-readtime: 0
      eagleeye-traceid: 0b57ff8715994701916963132ec7ad
      strict-transport-security: max-age=0
      timing-allow-origin: *

Konfigurasi service entry

Jika Anda menetapkan Outbound Traffic Policy ke REGISTRY_ONLY, menjalankan perintah curl dari kontainer aplikasi dengan proxy sidecar yang diinjeksikan untuk mengakses layanan HTTP atau HTTPS eksternal akan gagal.

  • Akses layanan HTTP eksternal.

    curl -I  http://www.aliyun.com/

    Output yang diharapkan:

    HTTP/1.1 502 Bad Gateway
    date: Mon, 07 Sep 2020 09:25:58 GMT
    server: envoy
    transfer-encoding: chunked
  • Akses layanan HTTPS eksternal.

    curl -I https://www.aliyun.com/

    Output yang diharapkan:

    curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to www.aliyun.com:443

Gunakan service entry untuk mengaktifkan akses terkontrol ke layanan publik eksternal. Pendekatan ini memungkinkan Anda mengakses layanan eksternal sekaligus mempertahankan kemampuan pemantauan dan kontrol traffic Istio.

  1. Buat service entry.

    1. Login ke Konsol ASM.

    2. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

    3. Pada halaman Mesh Management, temukan instans ASM yang ingin dikonfigurasi. Klik nama instans ASM tersebut atau klik Manage di kolom Actions.

    4. Pada halaman detail instans ASM, di panel navigasi kiri pilih Cluster & Workload Management > External Service(ServiceEntry). Pada halaman yang muncul, klik Create from YAML.

    5. Pilih namespace, tempel konten berikut ke dalam kotak teks, lalu klik Create.

      Tetapkan bidang hosts sesuai kebutuhan Anda. Dalam contoh ini, hosts diatur ke www.aliyun.com.

      apiVersion: networking.istio.io/v1alpha3
      kind: ServiceEntry
      metadata:
        name: aliyun-com-ext
      spec:
        hosts:
        - 'www.aliyun.com'
        ports:
        - number: 80
          name: http
          protocol: HTTP
        - number: 443
          name: https
          protocol: HTTPS  
        resolution: DNS
        location: MESH_EXTERNAL
  2. Akses kembali layanan HTTP atau HTTPS eksternal. Perintah sekarang akan mengembalikan respons sukses.

    • Akses layanan HTTP eksternal.

      curl -I  http://www.aliyun.com/

      Output yang diharapkan:

      HTTP/1.1 301 Moved Permanently
      server: envoy
      date: Mon, 07 Sep 2020 09:49:17 GMT
      content-type: text/html
      content-length: 239
      location: https://www.aliyun.com/
      eagleeye-traceid: 0be3e0a915994721583014504e7b31
      timing-allow-origin: *
      x-envoy-upstream-service-time: 66
    • Akses layanan HTTPS eksternal.

      curl -I https://www.aliyun.com/

      Output yang diharapkan:

      HTTP/2 200
      server: Tengine
      date: Mon, 07 Sep 2020 09:49:31 GMT
      content-type: text/html; charset=utf-8
      vary: Accept-Encoding
      vary: Accept-Encoding
      strict-transport-security: max-age=31536000
      x-download-options: noopen
      x-content-type-options: nosniff
      x-xss-protection: 1; mode=block
      x-readtime: 1
      eagleeye-traceid: 0be3e0b115994721709577294ed9e8
      strict-transport-security: max-age=0
      timing-allow-origin: *
  3. Buat virtual service.

    1. Login ke Konsol ASM.

    2. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

    3. Pada halaman Mesh Management, temukan instans ASM yang ingin dikonfigurasi. Klik nama instans ASM tersebut atau klik Manage di kolom Actions.

    4. Pada halaman detail instans ASM, di panel navigasi kiri pilih Traffic Management Center > VirtualService. Pada halaman yang muncul, klik Create from YAML.

    5. Pilih namespace, tempel konten berikut ke dalam kotak teks, lalu klik Create.

      Buat aturan routing untuk layanan eksternal yang didefinisikan oleh service entry. Contoh ini menambahkan aturan untuk menyisipkan fixedDelay pada panggilan ke layanan www.aliyun.com.

      apiVersion: networking.istio.io/v1alpha3
      kind: VirtualService
      metadata:
        name: aliyun-com-ext
      spec:
        hosts:
          - 'www.aliyun.com'
        http:
        - fault:
            delay:
              percent: 100
              fixedDelay: 5s
          route:
            - destination:
                host: www.aliyun.com
              weight: 100
  4. Verifikasi bahwa aturan routing aktif.

    Waktu real dalam output adalah 5,07 detik, yang menunjukkan bahwa aturan routing aktif.

    time curl -o /dev/null -s -w "%{http_code}\n" http://www.aliyun.com/

    Output yang diharapkan:

    301
    real  0m 5.07s
    user  0m 0.00s
    sys 0m 0.00s

Tetapkan rentang IP untuk intersepsi traffic

Anda dapat menentukan rentang IP untuk intersepsi traffic oleh proxy sidecar. Traffic ke alamat IP di luar rentang tersebut melewati proxy sidecar dan langsung menuju tujuan.

Di Service Mesh, Anda dapat mengonfigurasi Addresses to Which External Access Is Redirected to Sidecar Proxy. Biasanya, Anda mengatur nilai ini ke CIDR layanan kluster Kubernetes Anda. Artinya, traffic ke layanan dalam kluster diintersepsi oleh Service Mesh, sedangkan traffic ke tujuan di luar kluster melewati Service Mesh.

  1. Login ke Konsol ASM.

  2. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  3. Pada halaman Mesh Management, temukan instans ASM yang ingin dikonfigurasi. Klik nama instans ASM tersebut atau klik Manage di kolom Actions.

  4. Pada halaman detail instans ASM, di panel navigasi kiri pilih Data Plane Component Management > Sidecar Proxy Setting.

  5. Pada tab global halaman Configure the agent parameters of the injected Sidecar, klik Enable/Disable Sidecar Proxy by Ports or IP Addresses. Di kotak teks Addresses to Which External Access Is Redirected to Sidecar Proxy, masukkan Blok CIDR yang akan diintersepsi, lalu klik Update Settings.

    Sebagai alternatif, Anda dapat memasukkan Blok CIDR ke dalam kotak teks Addresses to Which External Access Is Not Redirected to Sidecar Proxy. Dalam kasus ini, proxy sidecar mengintersepsi traffic ke semua Blok CIDR lainnya.

    Catatan

    Secara default, bidang Addresses to Which External Access Is Redirected to Sidecar Proxy diatur ke *, yang berarti proxy sidecar mengintersepsi seluruh traffic outbound. Anda dapat mengaturnya ke rentang IP tertentu sesuai kebutuhan. Praktik umum adalah mengaturnya ke CIDR layanan kluster Kubernetes Anda.