Maison  >  Article  >  développement back-end  >  Comment ajouter des variables d'environnement au déploiement de Kubernetes à l'aide de Golang ?

Comment ajouter des variables d'environnement au déploiement de Kubernetes à l'aide de Golang ?

王林
王林avant
2024-02-08 23:45:28522parcourir

如何使用 golang 将环境变量添加到 kubernetes 部署?

Éditeur PHP Apple vous propose un article sur la façon d'utiliser Golang pour ajouter des variables d'environnement au déploiement de Kubernetes. Dans le déploiement Kubernetes, la définition des variables d'environnement est très importante et peut nous aider à configurer le comportement de l'application. Grâce à Golang, vous pouvez facilement injecter des variables d'environnement dans les pods Kubernetes pour obtenir un déploiement plus flexible et configurable. Nous détaillerons ensuite comment utiliser Golang pour atteindre cet objectif.

Contenu de la question

Je dois définir ou ajouter des variables d'environnement à un déploiement Kubernetes existant à l'aide de Golang. Il doit être ajouté à la configuration après le redémarrage.

func (r *SparkETLReconciler) DoRestart(w http.ResponseWriter, req *http.Request) {
    ctx := context.TODO()
    r.Log.Info("restart hit!")
    fmt.Fprintf(w, "Hi there, I love %s!", req.URL.Path[1:])
    found := &appsv1.Deployment{}
    err := r.Get(ctx, types.NamespacedName{
        Name:      "vmc-etl-test",
        Namespace: "ndl",
    }, found)

    if err != nil {
        r.Log.Error(err, "deploy check failed")
    } else {
        fmt.Fprintf(w, "I found the deployment!")
    }

    deleteErr := r.DeleteAllOf(ctx, &corev1.Pod{}, client.InNamespace("ndl"), client.MatchingLabels{"operatorETLName": req.URL.Path[1:])

    if deleteErr != nil {
        r.Log.Error(deleteErr, "deletion of deployment's pods failed")
    } else {
        fmt.Fprintf(w, "Deployment's pods deleted, restarting")
    }
}

Solution de contournement

Après avoir été déployé, vous pouvez ajouter des variables d'environnement de la manière suivante.

# Assuming you have only 1 container in the Pod
found.Spec.Template.Spec.Containers[0].Env = []v1.EnvVar{
        {
            Name:  "ENV_VARIABLE_NAME",
            Value: "ENV_VARIABLE_VALUE",
        },
}

Inutile de dire que si vous avez déjà des variables d'environnement dans votre conteneur, vous feriez mieux de les append(), sinon vous les écraserez.

De plus, vous devez envoyer un appel à update() (或 createorupdate()) dans votre déploiement.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer