Ce guide présente les base de la gestion des ressources à l'aide de Config Connector en vous montrant comment effectuer les tâches suivantes :
- activer une API Google Cloud ;
- créez et gérez un sujet Pub/Sub.
Avant de commencer
Avant de commencer les exercices de cette page, effectuez les tâches suivantes :
Installez Config Connector en suivant toutes les étapes de la section Installer avec le module complémentaire GKE, y compris Configurer un cluster GKE, Créer une identité, Configurer Config Connector et Spécifier où créer vos ressources.
Configurez Config Connector pour utiliser un espace de noms par défaut. L'espace de noms que vous avez défini par défaut doit être le même que celui auquel vous avez ajouté une annotation lorsque vous avez spécifié l'emplacement où créer vos ressources.
- Config Connector utilise l'API Service Usage pour activer les API de service. Pour effectuer ces opérations, vous devez activer l'API Service Usage. Vous pouvez activer cette API à l'aide de la CLI Google Cloud:
gcloud services enable serviceusage.googleapis.com
Découvrir les ressources Google Cloud disponibles
Pour connaître les types de ressources Google Cloud que vous pouvez créer avec Config Connector, exécutez la commande suivante :
kubectl get crds --selector cnrm.cloud.google.com/managed-by-kcc=true
Le résultat est une liste de toutes les ressources que votre version de Config Connector peut créer et gérer.
Par exemple, vous pouvez afficher la description de l'API pour la ressource PubSubTopic
avec kubectl describe
:
kubectl describe crd pubsubtopics.pubsub.cnrm.cloud.google.com
Vous pouvez également consulter des informations sur les ressources disponibles sur la page Ressources de Config Connector.
Activer le service Pub/Sub
Utilisez Config Connector pour activer l'API Pub/Sub en appliquant une configuration YAML à votre cluster :
Créez un fichier nommé
enable-pubsub.yaml
et copiez-y le YAML ci-dessous :apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1 kind: Service metadata: name: pubsub.googleapis.com spec: projectRef: external: projects/PROJECT_ID
Remplacez
PROJECT_ID
par l'ID de votre projet Google Cloud.Utilisez
kubectl apply
pour appliquer la configuration à votre cluster. Pour activer l'API Pub/Sub, exécutez la commande suivante :kubectl apply -f enable-pubsub.yaml
Créer une instance Pub/Sub
Créez un fichier nommé pubsub-topic.yaml
avec le contenu suivant :
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
labels:
LABEL_KEY:LABEL_VALUE
name: TOPIC_NAME
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet Google Cloud.LABEL_KEY:LABEL_VALUE
: paire clé-valeur de libellés. Par exemple,environment:production
.TOPIC_NAME
: nom du sujet Pub/Sub
Lorsque vous créez une ressource, Config Connector crée la ressource si elle n'existe pas. Si une ressource Google Cloud existe déjà avec le même nom, Config Connector acquiert la ressource et la gère. Pour en savoir plus sur l'acquisition d'une ressource existante, consultez la page Gérer et supprimer des ressources.
Utilisez la commande kubectl apply
pour créer des ressources. Pour créer le sujet Pub/Sub, exécutez la commande suivante :
kubectl apply -f pubsub-topic.yaml
Décrire une ressource
Utilisez kubectl describe
pour obtenir des détails sur une ressource.
Par exemple, pour afficher tous vos sujets Pub/Sub, exécutez la commande suivante :
kubectl describe pubsubtopics
Le sujet Pub/Sub que vous avez créé dans la section précédente doit s'afficher dans cette liste.
Vérifier qu'une ressource est prête
Après avoir créé un sujet Pub/Sub, vous pouvez vérifier son status.condition
.
Par exemple, pour vérifier si votre ressource de sujet Pub/Sub est prête, exécutez la commande suivante :
kubectl wait --for=condition=READY pubsubtopics TOPIC_NAME
Remplacez TOPIC_NAME
par le nom de votre sujet Pub/Sub.
Un résultat semblable aux lignes suivantes doit s'afficher :
pubsubtopic.pubsub.cnrm.cloud.google.com/TOPIC_NAME condition met
Mettre à jour une ressource
Vous pouvez mettre à jour les métadonnées pour vos ressources en mettant à jour votre fichier YAML et en le réappliquant avec kubectl
.
Pour modifier le libellé du sujet Pub/Sub que vous avez créé dans la section précédente, procédez comme suit :
Modifiez la section
metadata
de votre fichierpubsub-topic.yaml
pour modifier le libellé :apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: annotations: cnrm.cloud.google.com/project-id: PROJECT_ID labels: NEW_LABEL_VALUE name: TOPIC_NAME
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet Google Cloud.NEW_LABEL_VALUE
: valeur mise à jour pour le libellé que vous avez ajouté précédemment. Exemple :environment: staging
.TOPIC_NAME
: nom du sujet Pub/Sub
Utilisez
kubectl apply
pour mettre à jour la ressource. Exécutez la commande suivante :kubectl apply -f pubsub-topic.yaml
Vérifiez l'instance Pub/Sub pour le changement de nom :
kubectl describe pubsubtopics
Le sujet doit avoir nouveau libellé.
Supprimer une ressource
Utilisez kubectl delete
pour supprimer des ressources. Par exemple, pour supprimer le fichier PubSubTopic
que vous avez créé précédemment, exécutez kubectl delete
avec votre fichier pubsub-topic.yaml
:
kubectl delete -f pubsub-topic.yaml
Vous recevez une confirmation indiquant la suppression de la ressource :
pubsubtopic.pubsub.cnrm.cloud.google.com "TOPIC_NAME" deleted
Par défaut, Config Connector supprime la ressource PubSubTopic
. Si vous préférez conserver cette ressource, consultez les instructions de gestion et suppression des ressources.
Étapes suivantes
- Découvrez comment Config Connector modélise les ressources Google Cloud à l'aide des structures de Kubernetes.
- Consultez les ressources Google Cloud que Config Connector peut gérer.
- Utilisez Config Connector pour gérer vos ressources Google Cloud existantes.
- Découvrez les bonnes pratiques concernant les applications cloud courantes en explorant les solutions Config Connector du kit Cloud Foundation.
- Consultez d'autres exemples d'utilisation de Config Connector sur le dépôt GitHub.
- Découvrez comment Kubernetes gère la configuration déclarative des objets.