Maison > développement back-end > Golang > le corps du texte

Créer un opérateur Kubernetes pour les mises à jour progressives

WBOY
Libérer: 2024-02-09 22:18:19
avant
437 Les gens l'ont consulté

构建 Kubernetes Operator 用于滚动更新

L'éditeur php Xiaoxin est là pour vous présenter comment créer un opérateur Kubernetes pour les mises à jour progressives. Un opérateur Kubernetes est un contrôleur personnalisé qui étend les fonctionnalités de la plateforme Kubernetes. Les mises à jour progressives sont un moyen de mettre à jour progressivement une application sans interrompre le service. En créant un opérateur spécifiquement pour les mises à jour progressives, nous pouvons gérer les mises à niveau et les restaurations de l'application de manière plus flexible. Cet article présentera les étapes de base de la création d'un opérateur Kubernetes et expliquera en détail comment implémenter la fonction de mise à jour continue. Regardons de plus près!

Contenu de la question

J'ai créé une application Kubernetes (par exemple, déployer D1, en utilisant l'image Docker I1) qui s'exécutera sur un cluster client.

Exigence 1 :

Maintenant, je souhaite effectuer une mise à jour continue à chaque fois que je mets à jour mon image Docker I1 sans aucun effort du côté client (D'une manière ou d'une autre, le cluster client devrait automatiquement extraire la dernière image Docker)

Exigence 2 :

Chaque fois que je mets à jour une configMap spécifique, le cluster client devrait automatiquement démarrer en utilisant la nouvelle configMap

Comment dois-je atteindre cet objectif ?

  1. Vous utilisez les tâches Cron Kubernetes ?
  2. Opérateur Kubernetes ?
  3. ou autre chose ?

J'ai entendu dire que l'opérateur k8s est utile

Solution de contournement

Commencez par Exigence 2 :

Chaque fois que je mets à jour une configMap spécifique, le cluster client doit Commencez automatiquement à utiliser le nouveau configMap

Si la carte de configuration est installée dans le déploiement, elle sera automatiquement mise à jour, mais si elle est injectée en tant qu'environnement, le redémarrage est la seule option, sauf si vous utilisez une solution side-car ou redémarrez le processus.

Référence : Mettre à jour la carte de configuration sans redémarrer le POD

Comment dois-je y parvenir ?

  • ImagePullpolicy n'est pas une bonne option, cependant, dans ce cas, une intervention manuelle est nécessaire pour redémarrer le déploiement, et Extrayez la dernièreimage du client et elle ne le sera pas de manière contrôlée.

Vous utilisez des tâches Cron Kubernetes ?

  • De quel côté allez-vous exécuter vos cronjobs ? Si c'est un client, c'est tout Comme ça aussi.

    Sinon, vous pouvez utiliser l'API exposée pour poursuivre le déploiement, ce qui exécutera le travail pour Lorsque vous transférez une image, mettez à jour le déploiement avec la dernière balise à votre registre Docker.

Opérateur Kubernetes ?

    L'opérateur
  • est une excellente option native K8 que vous pouvez écrire dans Go, Python ou votre langage préféré avec/sans framework Operator ou bibliothèques client.

ou autre chose ?

Si vous souhaitez simplement mettre à jour le déploiement, exécuter l'API dans un déploiement ou un travail, vous pouvez le planifier de manière contrôlée et il n'y aura aucun problème avec l'opérateur, ce sera un problème plus natif si vous peut créer, Pour gérer et déployer une méthode, alors c'est une bonne façon de le faire.

Si à l'avenir vous devez gérer tous vos clusters (déploiements, services, pare-feu, réseaux) sur plusieurs clients à partir d'une seule source de vérité, vous pouvez explorer Anthos.

Gestion de la configuration Antos pour la synchronisation du référentiel Git

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal