Kubernetes v1.17
documentation non maintenue. Vous consultez une version statique. Pour une documentation à jour, veuillez consulter:
dernière version.
Cette fonctionnalité est actuellement dans un état beta, c’est-à-dire :
Les noms de version contiennent: beta (par ex. v2beta3).
Le code est bien testé. L’activation de cette fonctionnalité est considérée comme sûre. Elle est activée par défaut.
La prise en charge de l’ensemble de la fonctionnalité ne sera pas supprimée, bien que des détails puissent changer.
Le schéma et/ou la sémantique des objets peuvent changer de manière incompatible dans une version bêta ou stable ultérieure. Lorsque cela se produira, nous vous fournirons des instructions pour migrer vers la prochaine version. Cela peut nécessiter la suppression, l’édition et la recréation d’objets API. Le processus de changement de version peut nécessiter une certaine réflexion. Cela peut aussi nécessiter une interruption de service pour les applications qui s’appuient sur cette fonctionnalité.
Recommandé uniquement pour les utilisations non critiques en raison du risque de changements incompatibles dans les versions ultérieures. Si vous avez plusieurs clusters qui peuvent être mis à niveau indépendamment, vous pouvez assouplir cette restriction.
Donnez votre avis sur cette fonctionnalité bêta ! Une fois qu’elle aura quitté la version bêta, ce sera probablement moins évident pour nous d’apporter d’autres changements.
Dans les prochaines versions, Cloud Controller Manager sera le moyen privilégié d’intégrer Kubernetes à n’importe quel cloud.
Cela garantira que les fournisseurs de cloud peuvent développer leurs fonctionnalités indépendamment des cycles de publication de Kubernetes.
Cette fonctionnalité est actuellement dans un état alpha, ce qui signifie :
Les noms de version contiennent: alpha (par ex. v1alpha1).
La fonctionnalité peut contenir des bugs. L’activation de cette fonctionnalité peut donc vous exposer aux effets de ces bugs. La fonctionnalité est désactivée par défaut.
La prise en charge de cette fonctionnalité peut être supprimée à tout moment sans préavis.
La retro-compatibilité n’est pas assurée pour les prochaines versions.
Recommandé pour une utilisation uniquement dans les clusters de test de courte durée, en raison d’un risque accru de bugs et d’un manque de support à long terme.
Avant d’expliquer comment créer votre propre gestionnaire de contrôleur de cloud, il est utile d’avoir quelques informations sur son fonctionnement interne.
Le cloud controller manager est un code de kube-controller-manager utilisant des interfaces Go pour permettre la mise en œuvre d’implémentations depuis n’importe quel cloud.
La plupart des implémentations de contrôleurs génériques seront au cœur du projet, mais elles seront toujours exécutées sur les interfaces de cloud fournies, à condition que l’interface du fournisseur de cloud soit satisfaite.
Pour approfondir un peu les détails de la mise en œuvre, tous les gestionnaires de contrôleurs de nuage vont importer des packages à partir de Kubernetes core, la seule différence étant que chaque projet enregistre son propre fournisseur de nuage en appelant cloudprovider.RegisterCloudProvider où une variable globale des fournisseurs de cloud disponibles est mise à jour.
Utilisez main.go dans cloud-controller-manager de Kubernetes core en tant que modèle pour votre main.go. Comme mentionné ci-dessus, la seule différence devrait être le package cloud qui sera importé.