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

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

王林
王林nach vorne
2024-02-08 23:45:28522Durchsuche

如何使用 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")
    }
}

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",
        },
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen