Mengonfigurasi alamat IP eksternal untuk Google Distributed Cloud
Penginstalan Cloud Service Mesh default di Google Distributed Cloud mengasumsikan bahwa alamat IP eksternal dialokasikan secara otomatis untuk layanan LoadBalancer
.
Hal ini tidak berlaku di Google Distributed Cloud. Oleh karena itu, Anda perlu
mengalokasikan satu atau beberapa alamat IP eksternal, bergantung pada konfigurasi
service mesh:
- Satu alamat IP eksternal untuk resource Gateway ingress Cloud Service Mesh, misalnya gateway yang digunakan pelanggan untuk mengakses workload Anda dari seluruh internet.
- Alamat IP eksternal lain agar cluster Anda dapat berkomunikasi satu sama lain jika berada 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 untuk gateway traffic masuk, ikuti salah satu bagian di bawah, bergantung pada mode load balancing Google Distributed Cloud Anda:
- Lakukan patch pada konfigurasi Layanan
istio-ingressgateway
dengan alamat IP eksternal untuk gateway traffic masuk:kubectl patch svc istio-ingressgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "INGRESS_GATEWAY_IP"}]'
-
Lihat konfigurasi layanan
istio-ingressgateway
di shell Anda: Setiap port untuk gateway Cloud Service Mesh akan ditampilkan. Output perintahnya akan terlihat seperti berikut:kubectl get svc -n istio-system istio-ingressgateway -o yaml
... 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 ...
-
Ekspos port ini melalui load balancer Anda.
Misalnya, port layanan bernamahttp2
memilikiport
80 dannodePort
31380. Misalkan alamat node untuk cluster pengguna Anda adalah192.168.0.10
,192.168.0.11
, dan192.168.0.12
, dan VIP load balancer Anda adalah203.0.113.1
.
Konfigurasikan load balancer Anda sehingga traffic yang dikirim ke203.0.113.1:80
diteruskan ke192.168.0.10:31380
,192.168.0.11:31380
, atau192.168.0.12:31380
. Anda dapat memilih port layanan yang ingin ditampilkan di VIP tertentu ini.
Mode terintegrasi
Mode manual
Pastikan gateway masuk diberi alamat IP eksternal. Mungkin ada sedikit penundaan yang mengharuskan Anda mengulangi perintah ini hingga melihat hasil yang diinginkan:
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 east-west
Untuk mengonfigurasi alamat IP eksternal untuk gateway east-west, ikuti salah satu bagian di bawah, bergantung pada mode load balancing Google Distributed Cloud Anda:
- Lakukan patch pada konfigurasi Layanan
istio-eastwestgateway
dengan alamat IP eksternal untuk gateway timur-barat:kubectl patch svc istio-eastwestgateway -n istio-system --type='json' -p '[{"op": "add", "path": "/spec/loadBalancerIP", "value": "EAST_WEST_GATEWAY_IP"}]'
-
Lihat konfigurasi layanan
istio-eastwestgateway
di shell Anda: Setiap port untuk gateway Cloud Service Mesh akan ditampilkan. Output perintahnya akan terlihat seperti berikut:kubectl get svc -n istio-system istio-eastwestgateway -o yaml
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 ...
-
Ekspos port ini melalui load balancer Anda.
Misalnya, port layanan bernamahttp2
memilikiport
80 dannodePort
31380. Misalkan alamat node untuk cluster pengguna Anda adalah192.168.0.10
,192.168.0.11
, dan192.168.0.12
, dan VIP load balancer Anda adalah203.0.113.1
.
Konfigurasikan load balancer Anda sehingga traffic yang dikirim ke203.0.113.1:80
diteruskan ke192.168.0.10:31380
,192.168.0.11:31380
, atau192.168.0.12:31380
. Anda dapat memilih port layanan yang ingin ditampilkan di VIP tertentu ini.
Mode terintegrasi
Mode manual
Pastikan gateway east-west diberi alamat IP eksternal. Mungkin ada sedikit penundaan yang mengharuskan Anda menjalankan ulang perintah ini hingga melihat hasil yang diinginkan:
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