首页 > 解决方案 > K8s 使用 EnvFrom 创建部署

问题描述

我正在尝试在我的集群上启动一个 influxdb 实例。

我正在遵循一些不同的指南,并试图让它使用 envFrom 运算符将秘密公开为环境变量。不幸的是,我总是在Environment: <none>部署之后得到结果。对我期望的环境变量进行回显也会产生一个空白值。

我正在运行这个命令来部署(下面的脚本在 influxdb.yaml 中):kubectl create deploymentinfluxdb --image=influxdb

这是我的部署脚本:

 apiVersion: extensions/v1beta1
 kind: Deployment
 metadata:
   creationTimestamp: null
   generation: 1
   labels:
     app: influxdb
     project: pihole
   name: influxdb
 spec:
   progressDeadlineSeconds: 600
   replicas: 1
   revisionHistoryLimit: 10
   selector:
     matchLabels:
       app: influxdb
   strategy:
     rollingUpdate:
       maxSurge: 25%
       maxUnavailable: 25%
     type: RollingUpdate
   template:
     metadata:
       creationTimestamp: null
       labels:
         app: influxdb
     spec:
       containers:
       - name: influxdb
         envFrom:
         - secretRef:
             name: influxdb-creds
         image: docker.io/influxdb:1.7.6
         imagePullPolicy: IfNotPresent
         resources: {}
         terminationMessagePath: /dev/termination-log
         terminationMessagePolicy: File
         volumeMounts:
         - mountPath: /var/lib/influxdb
           name: var-lib-influxdb
       dnsPolicy: ClusterFirst
       restartPolicy: Always
       schedulerName: default-scheduler
       securityContext: {}
       terminationGracePeriodSeconds: 30
       volumes:
       - name: var-lib-influxdb
         persistentVolumeClaim:
           claimName: influxdb
 status: {}

kubectl describe secret influxdb-creds 的输出是这样的:

Name:         influxdb-creds
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
INFLUXDB_USERNAME:  4 bytes
INFLUXDB_DATABASE:  6 bytes
INFLUXDB_HOST:      8 bytes
INFLUXDB_PASSWORD:  11 bytes

标签: kubernetes

解决方案


答案是我错误地创建了部署。我使用的kubectl create deployment influxdb --image=influxdb是创建空白部署的命令,而我应该使用kubectl create -f influxdb.yamlinfluxdb.yaml 是我的文件来创建它,该文件包含原始问题中的部署定义。

我错误地假设创建部署命令以相同的名称读取 yaml 文件,但事实并非如此。


推荐阅读