L'annuaire des services pour Google Kubernetes Engine (GKE) fournit une vue unique de tous les services de tous vos déploiements GKE et au-delà. Vous pouvez ajouter différents types de services GKE, les annoter, puis les afficher dans l'Annuaire des services.
L'annuaire des services pour GKE offre les fonctionnalités suivantes :
- Il vous permet de découvrir des services via gRPC et HTTP, et de résoudre des services sur DNS à l'aide des zones DNS de l'Annuaire des services. L'intégration de l'annuaire des services et de Cloud DNS vous permet de configurer une zone DNS dans l'annuaire des services.
- L'annuaire des services enregistre les services en dehors de GKE, ce qui permet aux services GKE et non-GKE de se découvrir facilement.
- Annuaire des services applique les autorisations IAM et les vérifications VPC Service Controls pour assurer la sécurité et la confidentialité des données client.
- Vous pouvez configurer Annuaire des services pour GKE avec des clusters GKE Autopilot ou GKE Standard. Pour en savoir plus sur les deux modes, consultez Choisir un mode de fonctionnement GKE.
Pour savoir comment configurer l'annuaire des services afin d'enregistrer automatiquement vos services GKE dans l'annuaire des services, consultez Configurer l'annuaire des services pour GKE.
Mappage de services
Lorsque vous enregistrez un service dans l'Annuaire des services, un service est créé dans le projet de Google Cloud flotte à l'aide du nom de l'espace de noms Kubernetes et de la région du cluster GKE. Le tableau suivant décrit comment les propriétés du service GKE sont mappées aux propriétés du service créé dans Annuaire des services pour tous les types de services GKE.
Propriétés de premier niveau
| Propriété Annuaire des services | Propriété GKE |
| Projet | Projet de parc |
| Région | Région du cluster |
| Espace de noms | Espace de noms Kubernetes |
LoadBalancer type de service
L'exemple suivant montre comment un service LoadBalancer GKE est mappé à l'Annuaire des services. Le service Annuaire des services existe dans un espace de noms portant le même nom que l'espace de noms Kubernetes dans le projet de parc et la région du cluster GKE.
| Propriété Annuaire des services | Propriété GKE |
| Nom du service | Nom du service |
| Nom du point de terminaison | Généré automatiquement par le contrôleur Service Directory |
| Adresse IP du point de terminaison | Entrée LoadBalancer |
| Port du point de terminaison | Port du service LoadBalancer |
| Réseau de points de terminaison | Réseau VPC du cluster |
Voici un exemple de service 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
Voici un exemple de service Annuaire des services :
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 type de service
L'exemple suivant montre comment un service GKE NodePort est mappé à l'Annuaire des services. Le service Annuaire des services existe dans un espace de noms portant le même nom que l'espace de noms Kubernetes dans le projet du hub et la région du cluster GKE.
| Propriété Annuaire des services | Propriété GKE |
| Nom du service | Nom du service |
| Nom du point de terminaison | Généré automatiquement par le contrôleur Service Directory |
| Adresse IP du point de terminaison | Adresse IP interne du nœud pour chaque nœud exécutant un pod pour le service |
| Port du point de terminaison | Port de nœud statique |
| Réseau de points de terminaison | Réseau VPC du cluster |
Voici un exemple de service 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
Voici un exemple de nœuds 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
Voici un exemple de service Annuaire des services :
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
Service ClusterIP
L'exemple suivant montre comment un service ClusterIP GKE est mappé à l'Annuaire des services. Le service Annuaire des services existe dans un espace de noms portant le même nom que l'espace de noms Kubernetes dans le projet de parc et la région du cluster GKE.
| Propriété Annuaire des services | Propriété GKE |
| Nom du service | Nom du service |
| Nom du point de terminaison | Généré automatiquement par le contrôleur Service Directory |
| Adresse IP du point de terminaison | ClusterIP |
| Port du point de terminaison | Port de service |
| Réseau de points de terminaison | Réseau VPC du cluster |
Voici un exemple de service 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
Voici un exemple de service Annuaire des services :
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
Étapes suivantes
- Pour obtenir une présentation de l'annuaire des services, consultez la présentation de l'annuaire des services.
- Pour trouver des solutions aux problèmes courants que vous pouvez rencontrer lors de l'utilisation de l'Annuaire des services, consultez la page Dépannage.