Heim > Backend-Entwicklung > Golang > Wie füge ich mithilfe von Golang Umgebungsvariablen zur Kubernetes-Bereitstellung hinzu?

Wie füge ich mithilfe von Golang Umgebungsvariablen zur Kubernetes-Bereitstellung hinzu?

王林
Freigeben: 2024-02-08 23:45:28
nach vorne
586 Leute haben es durchsucht

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

PHP-Editor Apple bringt Ihnen einen Artikel darüber, wie Sie mit Golang Umgebungsvariablen zur Kubernetes-Bereitstellung hinzufügen. Bei der Kubernetes-Bereitstellung ist die Einstellung von Umgebungsvariablen sehr wichtig und kann uns dabei helfen, das Verhalten der Anwendung zu konfigurieren. Mit Golang können Sie problemlos Umgebungsvariablen in Kubernetes-Pods einfügen, um eine flexiblere und konfigurierbarere Bereitstellung zu erreichen. Als nächstes werden wir detailliert beschreiben, wie man Golang verwendet, um dieses Ziel zu erreichen.

Frageninhalt

Ich muss mithilfe von Golang Umgebungsvariablen für eine vorhandene Kubernetes-Bereitstellung festlegen oder hinzufügen. Es sollte nach dem Neustart zur Konfiguration hinzugefügt werden.

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")
    }
}
Nach dem Login kopieren

Workaround

Nach der Bereitstellung können Sie Umgebungsvariablen auf folgende Weise hinzufügen.

# 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",
        },
}
Nach dem Login kopieren

Unnötig zu erwähnen, dass Sie, wenn Sie bereits einige Umgebungsvariablen in Ihrem Container haben, diese besser append() verwenden sollten, da Sie sie sonst überschreiben.

Außerdem müssen Sie in Ihrer Bereitstellung einen Anruf an update() (或 createorupdate()) senden.

Das obige ist der detaillierte Inhalt vonWie füge ich mithilfe von Golang Umgebungsvariablen zur Kubernetes-Bereitstellung hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage