Configurer vos clusters pour utiliser OpenStack

L'exécution du logiciel Distributed Cloud pour Bare Metal sur OpenStack vous permet d'intégrer vos clusters à l'infrastructure as a service (IaaS), à l'équilibrage de charge as a service (LBaaS) et au stockage OpenStack. La configuration de vos clusters pour un fournisseur de services cloud externe délègue le processus d'initialisation des nœuds à OpenStack.

Vous pouvez provisionner automatiquement des ressources LBaaS OpenStack au lieu de MetalLB pour exposer les services exécutés sur vos clusters à d'autres locataires OpenStack ou en dehors du réseau OpenStack. Pour en savoir plus sur les fonctionnalités et les avantages d'OpenStack, consultez la documentation OpenStack.

Ce document explique uniquement comment configurer votre cluster pour l'utiliser avec OpenStack. Les guides suivants vous présentent un exemple de déploiement :

  • Déployer un cluster sur OpenStack vous explique comment déployer un cluster hybride sur des machines virtuelles (VM) OpenStack. Le déploiement utilise un script pour simplifier l'installation. Le guide vous explique également comment activer l'équilibrage de charge en tant que service (LBaaS).

  • Configurer le fournisseur de services cloud OpenStack pour Kubernetes vous explique comment installer le fournisseur de services cloud OpenStack sur un cluster déployé sur OpenStack. Le fournisseur de services cloud OpenStack n'est pas tenu d'utiliser le logiciel Google Distributed Cloud avec OpenStack.

Avant de commencer

  • Déterminez les clusters qui doivent utiliser des ressources LBaaS OpenStack.

    Une fois que vous avez créé un cluster configuré pour utiliser les ressources LBaaS OpenStack, vous ne pouvez plus modifier la configuration pour passer aux ressources MetalLB. Assurez-vous d'initialiser vos clusters avec la configuration du fournisseur cloud approprié.

  • Vérifiez que vous avez accès aux machines que vous essayez de configurer.

Obtenez plus d'informations sur l'exécution de cloud-controller-manager dans la documentation de Kubernetes.

Modifier le fichier de configuration de votre cluster

Le fournisseur cloud OpenStack Kubernetes nécessite que kubelet s'exécute sur tous les nœuds avec l'argument suivant :

cloud-provider: "external"

Pour vous assurer que votre cluster répond à cette exigence, ajoutez l'annotation baremetal.cluster.gke.io/external-cloud-provider: "true" au fichier de configuration de votre cluster dans la section des métadonnées avant de créer le cluster.

L'entrée de votre fichier de configuration doit ressembler à l'exemple suivant :

apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: cluster1
  namespace: cluster-cluster1
  annotations:
    baremetal.cluster.gke.io/external-cloud-provider: "true"
spec:
  ...

Certains fournisseurs cloud sur d'autres plates-formes cloud nécessitent un format spécial pour providerID. Google Distributed Cloud génère un providerID au format baremetal://MACHINE_ADDRESS pour chaque machine de nœud. Si vous souhaitez utiliser une valeur providerID différente, vous pouvez en spécifier une pour chaque nœud en même temps que l'adresse IP.

L'exemple de fichier de configuration de cluster suivant montre comment spécifier providerID pour les nœuds de votre cluster :

 apiVersion: baremetal.cluster.gke.io/v1
 kind: Cluster
 metadata:
   name: cluster1
   namespace: cluster-cluster1
 spec:
   clusterNetwork:
     pods:
       cidrBlocks:
       - 192.168.0.0/16
     services:
       cidrBlocks:
       - 10.96.0.0/20
   controlPlane:
     nodePoolSpec:
       nodes:
       - address: 10.200.0.1
+        providerID: some-prefix://unique-string
       - address: 10.200.0.2
+        providerID: some-prefix2://unique-string2
  ...

---
 apiVersion: baremetal.cluster.gke.io/v1
 kind: NodePool
 metadata:
   name: nodepool1
   namespace: cluster-cluster1
 spec:
   clusterName: cluster1
   nodes:
   - address: 172.18.0.2
+    providerID: some-prefix3://unique-string3

Créer votre cluster

Après avoir modifié le fichier de configuration, utilisez la commande suivante pour initialiser votre cluster :

bmctl create cluster -c cluster1

Pour en savoir plus sur la création de clusters, consultez la page Présentation de la création de clusters.

Configuration des nœuds

Lorsque vous créez un cluster configuré pour OpenStack, les nœuds de cluster subissent les modifications suivantes :

  • Tous les nœuds dans cluster1 s'exécutent maintenant avec l'argument requis : cloud-provider: "external".

  • Tous les nœuds disposent également du rejet suivant ajouté à leurs fichiers de configuration :

    taints:
    - effect: NoSchedule
      key: node.cloudprovider.kubernetes.io/uninitialized
      value: "true"
    

    Ces champs sont supprimés après l'initialisation de votre fournisseur cloud sur ce cluster.

  • kubelet s'exécute avec le providerID que vous avez spécifié dans le fichier de configuration du cluster.

Étapes suivantes