All Products
Search
Document Center

:Persiapan

Last Updated:Nov 09, 2025

Service Mesh (ASM) mendukung dua mode sidecarless: Mode Ambient Mesh dan mode Alibaba Centralized Mesh Gateway (ACMG). Topik ini menjelaskan cara menerapkan aplikasi contoh dalam kedua mode tersebut. Ini membantu Anda menyiapkan lingkungan terlebih dahulu sehingga Anda dapat segera mencoba fitur dari mode sidecarless.

Prasyarat

  • Sebuah kluster Container Service for Kubernetes (ACK) yang memenuhi kondisi tertentu telah dibuat. Untuk informasi lebih lanjut, lihat bagian "Kluster Kubernetes yang didukung dan konfigurasinya" di Batasan.

  • Sebuah instance ASM telah dibuat dan diaktifkan dengan mode Ambient Mesh atau mode ACMG.

    Di bagian Dataplane Mode pada halaman Create Service Mesh, pilih Enable Ambient Mesh mode atau Enable ACMG Mode. Konfigurasikan pengaturan lainnya sesuai dengan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Buat instance ASM.

  • Kluster ACK telah ditambahkan ke instance ASM. Untuk informasi lebih lanjut, lihat Tambahkan kluster ke instance ASM.

  • Sebuah gateway ingress telah dibuat. Untuk informasi lebih lanjut, lihat Buat gateway ingress.

Terapkan aplikasi contoh

Dalam contoh ini, aplikasi Bookinfo diterapkan. Untuk informasi lebih lanjut, lihat Terapkan aplikasi di kluster ACK yang ditambahkan ke instance ASM.

Terapkan aplikasi contoh di kluster ACK

  1. Masuk ke Konsol ASM. Di panel navigasi sisi kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instance ASM. Di panel navigasi sisi kiri, pilih ASM Instance > Global Namespace.

  3. Aktifkan mode Ambient Mesh atau mode ACMG.

    1. Mode Ambient Mesh

      1. Pada halaman Global Namespace, temukan namespace default dan klik Switch to Ambient Mesh Mode di kolom Dataplane Mode. Di pesan Submit, klik OK.

    2. Mode ACMG

      1. Gunakan kubectl untuk terhubung ke instance ASM berdasarkan informasi dalam file kubeconfig dan aktifkan mode ACMG.

        kubectl label namespace default istio.io/dataplane-mode=acmg
  4. Unduh file YAML aplikasi Bookinfo dari repositori Istio di GitHub. Lalu, jalankan perintah berikut untuk menerapkan aplikasi Bookinfo di namespace default:

    kubectl apply -f  bookinfo.yaml
  5. Terapkan aplikasi sleep.

    1. Buat file sleep.yaml yang berisi konten berikut:

      Perluas untuk melihat file YAML

      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: sleep
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: sleep
        labels:
          app: sleep
          service: sleep
      spec:
        ports:
        - port: 80
          name: http
        selector:
          app: sleep
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: sleep
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: sleep
        template:
          metadata:
            labels:
              app: sleep
          spec:
            terminationGracePeriodSeconds: 0
            serviceAccountName: sleep
            containers:
            - name: sleep
              image: curlimages/curl
              command: ["/bin/sleep", "infinity"]
              imagePullPolicy: IfNotPresent
              volumeMounts:
              - mountPath: /etc/sleep/tls
                name: secret-volume
            volumes:
            - name: secret-volume
              secret:
                secretName: sleep-secret
                optional: true
      ---
    2. Jalankan perintah berikut untuk menerapkan aplikasi sleep di namespace default:

      kubectl apply -f  sleep.yaml
  6. Terapkan aplikasi notsleep.

    1. Buat file notsleep.yaml yang berisi konten berikut:

      Perluas untuk melihat file YAML

      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: notsleep
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: notsleep
        labels:
          app: notsleep
          service: notsleep
      spec:
        ports:
        - port: 80
          name: http
        selector:
          app: notsleep
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: notsleep
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: notsleep
        template:
          metadata:
            labels:
              app: notsleep
          spec:
            affinity:
              podAntiAffinity:
                preferredDuringSchedulingIgnoredDuringExecution:
                - weight: 100
                  podAffinityTerm:
                    labelSelector:
                      matchExpressions:
                      - key: app
                        operator: In
                        values:
                        - productpage
                    topologyKey: kubernetes.io/hostname 
            terminationGracePeriodSeconds: 0
            serviceAccountName: notsleep
            containers:
            - name: notsleep
              image: curlimages/curl
              command: ["/bin/sleep", "3650d"]
              imagePullPolicy: IfNotPresent
              volumeMounts:
              - mountPath: /etc/sleep/tls
                name: secret-volume
            volumes:
            - name: secret-volume
              secret:
                secretName: notsleep-secret
                optional: true
      ---
    2. Jalankan perintah berikut untuk menerapkan aplikasi notsleep di namespace default:

      kubectl apply -f  notsleep.yaml

Terapkan sumber daya mesh di instance ASM

  1. Buat file bookinfo-gateway.yaml yang berisi konten berikut.

    File YAML digunakan untuk membuat gateway Istio dan layanan virtual.

    Perluas untuk melihat file bookinfo-gateway.yaml

    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
      name: bookinfo-gateway
    spec:
      selector:
        istio: ingressgateway # gunakan controller default istio
      servers:
      - port:
          number: 80
          name: http
          protocol: HTTP
        hosts:
        - "*"
    ---
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: bookinfo
    spec:
      hosts:
      - "*"
      gateways:
      - bookinfo-gateway
      http:
      - match:
        - uri:
            exact: /productpage
        - uri:
            prefix: /static
        - uri:
            exact: /login
        - uri:
            exact: /logout
        - uri:
            prefix: /api/v1/products
        route:
        - destination:
            host: productpage
            port:
              number: 9080
    
  2. Gunakan kubectl untuk terhubung ke instance ASM berdasarkan informasi dalam file kubeconfig, lalu jalankan perintah berikut untuk menerapkan sumber daya mesh:

    kubectl apply -f bookinfo-gateway.yaml

Verifikasi fitur dasar

  1. Jalankan perintah berikut untuk mengonfigurasi variabel lingkungan untuk gateway ingress:

    export GATEWAY_HOST=istio-ingressgateway.istio-system
    export GATEWAY_SERVICE_ACCOUNT=ns/istio-system/sa/istio-ingressgateway
  2. Jalankan perintah berikut untuk menguji apakah aplikasi Bookinfo bekerja dengan baik dengan atau tanpa gateway ingress.

    1. Jalankan perintah berikut:

      kubectl exec deploy/sleep -- curl -s "http://$GATEWAY_HOST/productpage" | grep -o "<title>.*</title>"

      Output yang diharapkan:

      <title>Simple Bookstore App</title>
    2. Jalankan perintah berikut:

      kubectl exec deploy/sleep -- curl -s http://productpage:9080/ | grep -o "<title>.*</title>"

      Output yang diharapkan:

      <title>Simple Bookstore App</title>
    3. Jalankan perintah berikut:

      kubectl exec deploy/notsleep -- curl -s http://productpage:9080/ | grep -o "<title>.*</title>"

      Output yang diharapkan:

      <title>Simple Bookstore App</title>

      Output sebelumnya menunjukkan bahwa aplikasi Bookinfo dapat bekerja dengan baik dengan atau tanpa gateway ingress.