Comment utiliser Kubernetes et OpenStack ensemble
Le travail est effectué en collaboration des deux côtés et des systèmes de support sont en place pour OpenStack et Kubernetes.
Dans l'enquête auprès des utilisateurs d'OpenStack 2021, la majorité des personnes interrogées ont déclaré utiliser Kubernetes comme outil d'orchestration de conteneurs ou de plateforme en tant que service (PaaS) pour gérer leurs applications OpenStack. En termes simples, OpenStack et Kubernetes travaillent ensemble au profit des administrateurs système, des développeurs et des utilisateurs.
C'est une chose de dire que les utilisateurs s'appuient sur ces deux technologies, mais je voulais savoir comment. J'ai trouvé plusieurs cas d'utilisation typiques.
Kubernetes sur OpenStack
Kubernetes doit s'exécuter quelque part, et cela peut se trouver quelque part dans une machine virtuelle OpenStack. OpenStack ayant été conçu et implémenté pour être exécuté à grande échelle, il permet à un cluster Kubernetes de faire de même. Les API d'OpenStack fournissent une couche d'abstraction cohérente à laquelle Kubernetes peut s'intégrer.
OpenStack dans un conteneur Kubernetes
Les conteneurs Kubernetes offrent une indépendance et un échafaudage relativement léger pour exécuter une infrastructure hautement disponible. L’une des raisons d’utiliser des conteneurs est qu’ils permettent un déploiement et un démontage rapides de l’infrastructure avec une grande flexibilité. L’exécution d’un OpenStack conteneurisé vous offre les avantages des conteneurs, ainsi que toute la puissance et l’évolutivité d’OpenStack.
Il s'agit d'un script de démarrage que j'ai vu utiliser et qui démontre la facilité avec laquelle on peut créer un nouvel hôte et une instance Kubernetes sur OpenStack :
#!/usr/bin/env bash
CWD="$(pwd)"
${OSH_INFRA_PATH:="../openstack-helm-infra"}
pushd ${OSH_INFRA_PATH}
make dev-deploy setup-host
make dev-deploy k8s
popd
OpenStack autonome avec Kubernetes
Peut-être avez-vous un autre fournisseur d'infrastructure pour exécuter votre cluster Kubernetes, mais vous souhaitez capitaliser sur la façon dont vous stockez les données et vous n'aimez pas les solutions du fournisseur. Eh bien, plusieurs services OpenStack ont été adaptés pour fonctionner sans Nova pour le calcul. Le fournisseur de cloud SIG propose une variété de plugins disponibles pour l'intégration avec un cluster Kubernetes. Il existe des plugins non seulement pour le stockage, mais également pour le contrôle des entrées, la réparation automatique, l'autorisation d'authentification des webhooks et la gestion des clés. Si vous n'avez pas besoin de tout ce qu'OpenStack apporte mais que vous souhaitez tout de même tirer parti de certains de ses services avec Kubernetes, vous pouvez également le faire.
(Kendall Nelson, CC BY-SA 4.0)
Kubernetes sur le matériel fourni par Ironic
Ironic, le service de provisionnement sans système d'exploitation d'OpenStack, configure l'infrastructure requise pour exécuter les conteneurs. Cela donne aux conteneurs Kubernetes l'avantage de s'intégrer directement aux ressources de calcul, de réseau et de stockage. Habituellement, les environnements d'exécution des conteneurs masquent cela aux utilisateurs pour des raisons de sécurité, mais dans les déploiements où les utilisateurs n'ont pas besoin de séparation, les opérateurs peuvent interagir avec le cluster et apporter des modifications plus rapidement. L'exécution de conteneurs Kubernetes directement sur le matériel fourni par Ironic permet à l'agilité des conteneurs d'alléger les difficultés quotidiennes des opérateurs telles que le déploiement et les mises à niveau.
Pour plus de détails sur les différentes manières dont Kubernetes et OpenStack fonctionnent ensemble, consultez cette présentation PyCon.
Prochaine étape : essayez-le !
Et maintenant ? Maintenant que vous savez comment utiliser OpenStack et Kubernetes ensemble, lancez-vous ! Essayez-les avec une installation DevStack locale et voyez s'il existe une combinaison qui fonctionne pour vous. Selon le cas d'utilisation, il peut y avoir une fusion des deux communautés qui apporte de la valeur à vos efforts. Ou, si vous voyez un écart qui doit être comblé, impliquez-vous et portez-le à l’attention des communautés !
Deux communautés open source, un monde d'infrastructure ouverte
Bien qu'il existe de nombreuses façons techniques d'articuler ces projets, le véritable message est que votre infrastructure peut être encore meilleure et résoudre davantage de problèmes de vos utilisateurs lorsque vous tirez parti de deux communautés open source qui travaillent ensemble. .
Le travail est effectué en collaboration des deux côtés et des systèmes de support sont en place pour OpenStack et Kubernetes.
Les équipes de projet d'OpenStack travaillent à rendre leurs services autonomes et à mettre à niveau les services de déploiement pour les intégrer à Kubernetes. Ils développent et améliorent des projets comme Kuryr pour relier les conteneurs et le réseau OpenStack. Les équipes des services OpenStack sont toujours à la recherche d'aide. Vous avez des commentaires ou vous rencontrez un obstacle ? Contactez la liste de diffusion openstack-discuss.
Du côté de Kubernetes, SIG Cloud Provider travaille au développement et à l'élargissement de la liste des plugins disponibles dans Cloud Provider OpenStack pour compléter et intégrer les conteneurs Kubernetes. Ils testent les points d'intégration pour s'assurer que leur projet fonctionne sur une infrastructure OpenStack. Vous ne savez pas comment configurer le plugin ou vous vous demandez ce qu'une option permet ? Rejoignez la chaîne Slack #provider-openstack k8s et demandez !
Les personnes qui composent les communautés Kubernetes et OpenStack font tout leur possible pour collaborer. Pendant longtemps, dans la communauté technologique, une idée fausse répandue était que les deux projets seraient opposés pour toujours, rivalisant pour la domination, mais le récit a changé. Kubernetes et OpenStack fonctionnent ensemble. Ils intègrent à peu près tous les moyens nécessaires pour rendre la vie des opérateurs plus facile et les capacités des utilisateurs plus flexibles et plus rapides.
Compte tenu du nombre de développeurs, de rédacteurs de documentation, d'utilisateurs et d'opérateurs travaillant tous à rendre les deux projets logiciels meilleurs et plus synergiques, pourquoi ne les utiliseriez-vous pas ensemble ? Deux communautés distinctes peuvent prendre en charge Kubernetes et OpenStack, mais nous travaillons tous ensemble pour favoriser le progrès et le succès d'un monde d'infrastructure ouverte.