Mengaktifkan Ingress dengan Cloud Service Mesh

Topik ini menunjukkan cara menginstal Cloud Service Mesh, yang sudah diinstal sebelumnya dengan Ingress Gateway. Dengan Cloud Service Mesh, Anda dapat mengonfigurasi resource Ingress Kubernetes untuk Deployment jika Anda memerlukan pengontrol Ingress. Topik ini memberikan contoh yang menunjukkan cara mengonfigurasi contoh resource Deployment dan Ingress.

Penginstalan Cloud Service Mesh terdiri dari dua bagian utama:

  1. Menginstal versi tertentu dari bidang kontrol yang dikelola pelanggan Cloud Service Mesh dan Ingress Gateway.
  2. Melabeli namespace dengan label revisi dan men-deploy ulang workload untuk memasukkan proxy sidecar.

Jika hanya perlu menggunakan objek Ingress menggunakan pengontrol Ingress, Anda tidak perlu memasukkan proxy sidecar ke dalam Pod workload. Namun, jika Anda menginginkan manfaat keamanan yang disediakan Cloud Service Mesh, dan jika Anda ingin memanfaatkan kemampuan perutean traffic, Anda harus menyuntikkan proxy sidecar.

Sebelum memulai

Sebelum Anda mulai menggunakan GKE di AWS, pastikan Anda telah melakukan tugas berikut:

Menginstal Anthos Service Mesh

Ikuti langkah-langkah di Menginstal Cloud Service Mesh.

Membuat contoh Deployment

Di bagian ini, Anda akan menginstal aplikasi contoh dan membuat endpoint Ingress untuknya.

  1. Buat Deployment hello-app dan ClusterIP untuk deployment. Salin YAML berikut ke dalam file bernama hello-app.yaml.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: hello-app
      name: hello-app
    spec:
      selector:
        matchLabels:
          app: hello-app
      replicas: 3
      template:
        metadata:
          labels:
            app: hello-app
        spec:
          containers:
          - name: hello
            image: "gcr.io/google-samples/hello-app:2.0"
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: hello-app
      name: hello-app
    spec:
      type: ClusterIP
      selector:
        app: hello-app
      ports:
      - protocol: TCP
        port: 8080
        targetPort: 8080
    
  2. Terapkan YAML ke cluster Anda dengan kubectl apply.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app.yaml
    
  3. Buat Kubernetes Ingress untuk aplikasi contoh. Salin YAML berikut ke dalam file bernama hello-app-ingress.yaml

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      annotations:
        kubernetes.io/ingress.class: istio
      labels:
        app: hello-app
      name: hello-app
    spec:
      rules:
      - host:
        http:
          paths:
          - backend:
              serviceName: hello-app
              servicePort: 8080
    
  4. Buat Ingress dengan menerapkan konfigurasi dengan kubectl apply.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f hello-app-ingress.yaml
    
  5. Periksa status gateway Anda dengan kubectl get svc.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get ingress hello-app
    

    Kolom ADDRESS harus memiliki nama domain ELB. Jika ADDRESS tetap pending, konfirmasi pelabelan VPC dan Subnet Anda.

  6. Anda dapat memeriksa URL gateway Ingress dengan menyusun host dan port. Untuk mendapatkan URL gateway, jalankan perintah berikut:

    export INGRESS_URL=$(env HTTPS_PROXY=http://localhost:8118 \
    kubectl get ingress hello-app -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
    echo "Your hello-app Ingress URL is: http://"$INGRESS_URL
    

    Perintah terakhir mencetak endpoint Ingress Anda.

  7. Jika Anda membuat Ingress publik, Anda dapat melihat halaman web default hello-app di curl dengan membuka http://$INGRESS_URL/.

    curl $INGRESS_URL/
    

Pembersihan

Anda menghapus komponen hello-app dengan kubectl delete.

env HTTPS_PROXY=http://localhost:8118 \
  kubectl delete -f hello-app.yaml &&\
  kubectl delete -f hello-app-ingress.yaml

Jika Anda ingin menghapus Cloud Service Mesh, lihat Menghapus Cloud Service Mesh.

Langkah berikutnya

Pelajari lebih lanjut: