gpt4 book ai didi

node.js - 从 .env 文件创建 kubernetes env var secret

转载 作者:行者123 更新时间:2023-12-04 00:53:04 28 4
gpt4 key购买 nike

我有一个 nodejs 应用程序,它将变量存储在环境变量中。
我正在使用 dotenv模块,所以我有一个 .env文件看起来像:

VAR1=value1
VAR2=something_else
我目前正在设置一个 BitBucket Pipeline 以将其自动部署到 Kubernetes 集群。
我对 Kubernetes 的 secret 不是很熟悉,虽然我是 reading up on them .
我在想 :
有没有一种简单的方法可以将我在 .env 中定义的所有环境变量发送到 Docker-container/kubernetes-deployment文件以便它们在我的应用程序运行的 pod 中可用?
我希望有一个例子 secrets.yml.env 获取所有内容的文件或类似文件并进入容器中的环境变量。但它也可以在 BitBucket 管道级别或 Docker 容器级别完成..我不确定......

最佳答案

第一步:使用您的 .env 创建一个 k8s key 文件:

# kubectl create secret generic <secret-name> --from-env-file=<path-to-env-file> 

$ kubectl create secret generic my-env-list --from-env-file=.env
secret/my-env-list created
第二步:验证 secret :
$ kubectl get secret my-env-list -o yaml
apiVersion: v1
data:
VAR1: dmFsdWUx
VAR2: c29tZXRoaW5nX2Vsc2U=
kind: Secret
metadata:
name: my-env-list
namespace: default
type: Opaque
第三步:添加 env到您的 pod 的容器:
apiVersion: v1
kind: Pod
metadata:
name: demo-pod
spec:
containers:
- name: demo-container
image: k8s.gcr.io/busybox
command: [ "/bin/sh", "-c", "env" ]
envFrom:
- secretRef:
name: my-env-list # <---- here
restartPolicy: Never
第四步:运行 pod 并检查 env存在与否:
$ kubectl apply -f pod.yaml 
pod/demo-pod created

$ kubectl logs -f demo-pod
KUBERNETES_PORT=tcp://10.96.0.1:443
KUBERNETES_SERVICE_PORT=443
HOSTNAME=demo-pod
SHLVL=1
HOME=/root
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
VAR1=value1 # <------------------------------------------------------here
VAR2=something_else # <-----------------------------------------------here
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_SERVICE_PORT_HTTPS=443
PWD=/
KUBERNETES_SERVICE_HOST=10.96.0.1

关于node.js - 从 .env 文件创建 kubernetes env var secret,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64872206/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com