Ringkasan Service Directory untuk GKE

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