Mengonfigurasi alamat IP eksternal untuk Google Distributed Cloud (khusus software) untuk VMware dengan load balancer F5 BIG-IP

Penginstalan Cloud Service Mesh default di Google Distributed Cloud (khusus software) untuk VMware mengasumsikan bahwa alamat IP eksternal dialokasikan secara otomatis untuk layanan LoadBalancer. Hal ini tidak berlaku untuk Google Distributed Cloud (khusus software) untuk VMware dengan load balancer F5 BIG-IP. Karena itu, Anda perlu mengalokasikan satu atau lebih alamat IP eksternal, bergantung pada konfigurasi mesh layanan Anda:

  • Satu alamat IP eksternal untuk resource ingress Gateway Cloud Service Mesh, untuk contoh gateway yang digunakan pelanggan untuk mengakses workload Anda dari di seluruh internet.
  • Alamat IP eksternal lain untuk cluster Anda agar dapat saling berkomunikasi jika ada di jaringan yang berbeda dalam mesh layanan Anda. Hal ini disebut sebagai gateway timur-barat.

Mengonfigurasi alamat IP gateway masuk

Untuk mengonfigurasi alamat IP eksternal bagi gateway masuk, ikuti petunjuk di salah satu bagian tersebut, tergantung pada Google Distributed Cloud (khusus software) untuk mode load balancing VMware:

    Mode terintegrasi

  1. Tambahkan patch konfigurasi Layanan istio-ingressgateway dengan alamat IP eksternal untuk gateway masuk:
    kubectl patch svc istio-ingressgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "INGRESS_GATEWAY_IP"}]'
  2. Mode manual

  3. Lihat konfigurasi layanan istio-ingressgateway di shell Anda:
    kubectl get svc -n istio-system istio-ingressgateway -o yaml
    Setiap port untuk gateway Cloud Service Mesh ditampilkan. Output perintahnya akan terlihat seperti berikut:
      ...
      ports:
      - name: status-port
        nodePort: 30391
        port: 15020
        protocol: TCP
        targetPort: 15020
      - name: http2
        nodePort: 31380
        port: 80
        protocol: TCP
        targetPort: 80
      - name: https
        nodePort: 31390
        port: 443
        protocol: TCP
        targetPort: 443
      - name: tcp
        nodePort: 31400
        port: 31400
        protocol: TCP
        targetPort: 31400
      - name: https-kiali
        nodePort: 31073
        port: 15029
        protocol: TCP
        targetPort: 15029
      - name: https-prometheus
        nodePort: 30253
        port: 15030
        protocol: TCP
        targetPort: 15030
      - name: https-grafana
        nodePort: 30050
        port: 15031
        protocol: TCP
        targetPort: 15031
      - name: https-tracing
        nodePort: 31204
        port: 15032
        protocol: TCP
        targetPort: 15032
      - name: tls
        nodePort: 30158
        port: 15443
        protocol: TCP
        targetPort: 15443
      ...
  4. Ekspos port ini melalui load balancer Anda.

    Misalnya, port layanan bernama http2 memiliki port 80 dan nodePort 31380. Misalkan alamat node untuk cluster pengguna Anda adalah 192.168.0.10, 192.168.0.11, dan 192.168.0.12, serta load balancer Anda VIP adalah 203.0.113.1.

    Konfigurasikan load balancer Anda agar traffic yang dikirim ke 203.0.113.1:80 diteruskan ke 192.168.0.10:31380, 192.168.0.11:31380, atau 192.168.0.12:31380. Anda dapat memilih port layanan yang ingin Anda tampilkan pada VIP ini.

Pastikan gateway masuk telah diberi alamat IP eksternal. Ada mungkin ada sedikit keterlambatan yang mengharuskan Anda mengulangi perintah ini sampai Anda melihat hasil yang diharapkan:

kubectl --context="${CTX_CLUSTER1}" get svc istio-ingressgateway -n istio-system

Berikut adalah output yang diinginkan:

NAME                    TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)   AGE
istio-ingressgateway   LoadBalancer   10.80.6.124   34.75.71.237   ...       51s

Mengonfigurasi alamat IP gateway timur-barat

Guna mengonfigurasi alamat IP eksternal untuk gateway east-west, ikuti petunjuk di salah satu bagian tersebut, tergantung pada Google Distributed Cloud (khusus software) untuk mode load balancing VMware:

    Mode terintegrasi

  1. Tambahkan patch konfigurasi Layanan istio-eastwestgateway dengan alamat IP eksternal untuk gateway east-west:
    kubectl patch svc istio-eastwestgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "EAST_WEST_GATEWAY_IP"}]'
  2. Mode manual

  3. Lihat konfigurasi layanan istio-eastwestgateway di shell Anda:
    kubectl get svc -n istio-system istio-eastwestgateway -o yaml
    Setiap port untuk gateway Cloud Service Mesh ditampilkan. Output perintahnya akan terlihat seperti berikut:
      ports:
      - name: status-port
        nodePort: 31781
        port: 15021
        protocol: TCP
        targetPort: 15021
      - name: tls
        nodePort: 30498
        port: 15443
        protocol: TCP
        targetPort: 15443
      - name: tls-istiod
        nodePort: 30879
        port: 15012
        protocol: TCP
        targetPort: 15012
      - name: tls-webhook
        nodePort: 30336
        port: 15017
        protocol: TCP
        targetPort: 15017
      ...
  4. Ekspos port ini melalui load balancer Anda.

    Misalnya, port layanan bernama http2 memiliki port 80 dan nodePort 31380. Misalkan alamat node untuk cluster pengguna Anda adalah 192.168.0.10, 192.168.0.11, dan 192.168.0.12, serta load balancer Anda VIP adalah 203.0.113.1.

    Konfigurasikan load balancer Anda agar traffic yang dikirim ke 203.0.113.1:80 diteruskan ke 192.168.0.10:31380, 192.168.0.11:31380, atau 192.168.0.12:31380. Anda dapat memilih port layanan yang ingin Anda tampilkan pada VIP ini.

Pastikan gateway timur-barat sudah diberi alamat IP eksternal. Ada mungkin ada sedikit keterlambatan yang mengharuskan Anda untuk menjalankan perintah ini melihat hasil yang diharapkan:

kubectl --context="${CTX_CLUSTER1}" get svc istio-eastwestgateway -n istio-system

Berikut adalah output yang diinginkan:

NAME                    TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)   AGE
istio-eastwestgateway   LoadBalancer   10.80.6.124   34.75.71.237   ...       51s

Apa langkah selanjutnya?