Google Distributed Cloud permet d'utiliser OpenStack comme plate-forme cloud privée. Ce guide explique comment configurer un cluster Google Distributed Cloud pour qu'il fonctionne avec un fournisseur de cloud externe. L'exécution de clusters Google Distributed Cloud sur OpenStack vous permet d'utiliser les services OpenStack suivants :
Infrastructure as a Service (IaaS)
Load balancing as a Service (LBaaS)
Stockage
Pour configurer un cluster afin qu'il fonctionne avec OpenStack, procédez comme suit :
Lorsque vous créez le cluster, vous ajoutez une annotation
baremetal.cluster.gke.io/external-cloud-provider
.Cette annotation entraîne l'ajout d'un indicateur kubelet
cloud-provider=external
par Google Distributed Cloud.Le kubelet ajoute ensuite des rejets
node.cloudprovider.kubernetes.io/uninitialized:NoSchedule
aux nœuds du cluster.
Cette configuration vous permet, à vous et à OpenStack, d'être propriétaire des processus d'initialisation du nœud. Par exemple, vous pouvez déployer Google Distributed Cloud sur OpenStack pour provisionner automatiquement des ressources LBaaS (Load Balancing as a Service) OpenStack ou pour utiliser d'autres fonctionnalités OpenStack. Les ressources LBaaS peuvent remplacer les ressources MetalLB pour exposer les services exécutés sur vos clusters Google Distributed Cloud à 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.
Exemples associés
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éployez un cluster Google Distributed Cloud sur OpenStack vous explique comment déployer un cluster hybride Google Distributed Cloud 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 cloud OpenStack pour Kubernetes vous explique comment installer le fournisseur cloud OpenStack sur un cluster Google Distributed Cloud déployé sur OpenStack. Le fournisseur de cloud OpenStack n'est pas tenu d'utiliser Google Distributed Cloud avec OpenStack.
Avant de commencer
Déterminez les clusters GKE 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 GKE 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 leproviderID
que vous avez spécifié dans le fichier de configuration du cluster.