Service Directory untuk Google Kubernetes Engine (GKE) menyediakan satu tampilan semua layanan di seluruh deployment GKE Anda dan lainnya. Anda dapat menambahkan berbagai jenis layanan GKE, memberi anotasi, lalu melihat layanan tersebut di Service Directory.
Service Directory untuk GKE menawarkan fitur berikut:
- Anda dapat menemukan layanan melalui gRPC dan HTTP, serta menyelesaikan layanan melalui DNS menggunakan zona DNS Service Directory. Integrasi Direktori Layanan dan Cloud DNS memungkinkan Anda mengonfigurasi zona DNS Direktori Layanan.
- Service Directory mendaftarkan layanan di luar GKE, sehingga layanan GKE dan non-GKE dapat saling menemukan dengan mudah.
- Service Directory menerapkan izin IAM dan pemeriksaan Kontrol Layanan VPC untuk memastikan keamanan dan privasi yang tepat atas data pelanggan.
- Anda dapat mengonfigurasi Direktori Layanan untuk GKE dengan cluster GKE Autopilot atau cluster GKE Standard. Untuk mengetahui informasi tentang kedua mode, lihat Memilih mode operasi GKE.
Untuk mempelajari cara mengonfigurasi Direktori Layanan agar otomatis mendaftarkan layanan GKE Anda ke Direktori Layanan, lihat Mengonfigurasi Direktori Layanan untuk GKE.
Pemetaan layanan
Saat Anda mendaftarkan layanan dengan Service Directory, layanan akan dibuat di project Google Cloud fleet menggunakan nama namespace Kubernetes dan region cluster GKE. Tabel berikut menjelaskan cara properti di layanan GKE dipetakan ke properti di layanan yang dibuat di Service Directory untuk semua jenis layanan GKE.
Properti tingkat teratas
| Properti Service Directory | Properti GKE |
| Project | Project fleet |
| Wilayah | Region cluster |
| Namespace | Namespace Kubernetes |
LoadBalancer jenis layanan
Contoh berikut menunjukkan cara layanan LoadBalancer GKE
dipetakan ke Service Directory. Layanan Service Directory ada di
namespace dengan nama yang sama dengan namespace Kubernetes di
project dan region fleet cluster GKE.
| Properti Service Directory | Properti GKE |
| Nama layanan | Nama layanan |
| Nama endpoint | Dibuat otomatis oleh Pengontrol Service Directory |
| Alamat IP endpoint | Ingress LoadBalancer |
| Port endpoint | Port layanan LoadBalancer |
| Jaringan endpoint | Jaringan VPC cluster |
Berikut adalah contoh layanan LoadBalancer GKE:
apiVersion: v1 kind: Service metadata: name: hello-app annotations: cloud.google.com/load-balancer-type: "Internal" labels: app: hello-app sd-import: "true" spec: ports: - port: 80 targetPort: 8080 protocol: TCP selector: app: hello-app type: LoadBalancer status: loadBalancer: ingress: - ip: 10.140.0.5
Berikut adalah contoh layanan Service Directory:
service: endpoints: - address: 10.140.0.5 metadata: cloud.google.com/load-balancer-type: "Internal" name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-12345 port: 80 network: projects/my-project/locations/global/networks/default name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app
NodePort jenis layanan
Contoh berikut menunjukkan cara Layanan NodePort GKE dipetakan ke Service Directory. Layanan Service Directory ada di namespace dengan nama yang sama dengan namespace Kubernetes di project hub dan region cluster GKE.
| Properti Service Directory | Properti GKE |
| Nama layanan | Nama layanan |
| Nama endpoint | Dibuat otomatis oleh Pengontrol Service Directory |
| Alamat IP endpoint | Alamat IP internal node untuk setiap node yang menjalankan pod untuk layanan |
| Port endpoint | Port node statis |
| Jaringan endpoint | Jaringan VPC cluster |
Berikut adalah contoh layanan NodePort GKE:
apiVersion: v1 kind: Service metadata: name: hello-app annotations: key1: "value1" spec: ports: - nodePort: 30007 port: 80 targetPort: 8080 protocol: TCP selector: app: hello-app type: NodePort
Berikut adalah contoh node GKE:
apiVersion: v1 items: - apiVersion: v1 kind: Node metadata: name: gke-hello-cluster-default-pool-a40cbab6-d2rr status: addresses: - address: 10.142.0.27 type: InternalIP - address: 34.73.248.170 - apiVersion: v1 kind: Node metadata: name: gke-hello-cluster-default-pool-a40cbab6-kb38 status: addresses: - address: 10.142.0.29 type: InternalIP - address: 35.196.219.215 type: ExternalIP - apiVersion: v1 kind: Node metadata: name: gke-hello-cluster-default-pool-a40cbab6-x34q status: addresses: - address: 10.142.0.28 type: InternalIP - address: 34.75.202.26 type: ExternalIP
Berikut adalah contoh layanan Service Directory:
service: endpoints: - address: 10.142.0.27 metadata: key1: value1 name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-12345 port: 30007 network: projects/my-project/locations/global/networks/default - address: 10.142.0.28 metadata: key1: value1 name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-23456 port: 30007 network: projects/my-project/locations/global/networks/default - address: 10.142.0.29 metadata: key1: value1 name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-34567 port: 30007 network: projects/my-project/locations/global/networks/default name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app
Layanan ClusterIP
Contoh berikut menunjukkan cara layanan ClusterIP GKE
dipetakan ke Service Directory. Layanan Service Directory ada di namespace dengan nama yang sama dengan namespace Kubernetes di project fleet dan region cluster GKE.
| Properti Service Directory | Properti GKE |
| Nama layanan | Nama layanan |
| Nama endpoint | Dibuat otomatis oleh Pengontrol Service Directory |
| Alamat IP endpoint | ClusterIP |
| Port endpoint | Port layanan |
| Jaringan endpoint | Jaringan VPC cluster |
Berikut adalah contoh layanan ClusterIP GKE:
apiVersion: v1 kind: Service metadata: name: hello-app annotations: key1: "value1" labels: app: hello-app sd-import: "true" spec: clusterIP: 10.15.254.17 ports: - port: 80 targetPort: 8080 protocol: TCP selector: app: hello-app type: ClusterIP
Berikut adalah contoh layanan Service Directory:
service: endpoints: - address: 10.15.254.17 metadata: key1: value1 name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-12345 port: 80 network: projects/my-project/locations/global/networks/default name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app
Langkah berikutnya
- Untuk mendapatkan ringkasan Direktori Layanan, lihat Ringkasan Direktori Layanan.
- Untuk menemukan solusi atas masalah umum yang mungkin Anda alami saat menggunakan Service Directory, lihat Pemecahan masalah.