📅  最后修改于: 2020-11-01 04:14:37             🧑  作者: Mango
可以将机密定义为Kubernetes对象,该对象用于存储敏感数据,例如用户名和带有加密的密码。
在Kubernetes中有多种创建秘密的方法。
为了从文本文件(例如用户名和密码)创建机密,我们首先需要将其存储在txt文件中,并使用以下命令。
$ kubectl create secret generic tomcat-passwd –-from-file = ./username.txt –fromfile = ./.
password.txt
apiVersion: v1
kind: Secret
metadata:
name: tomcat-pass
type: Opaque
data:
password:
username:
$ kubectl create –f Secret.yaml
secrets/tomcat-pass
一旦我们创建了秘密,就可以在pod或复制控制器中将其作为-
为了使用secret作为环境变量,我们将在pod yaml文件的spec部分下使用env 。
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: mysecret
key: tomcat-pass
spec:
volumes:
- name: "secretstest"
secret:
secretName: tomcat-pass
containers:
- image: tomcat:7.0
name: awebserver
volumeMounts:
- mountPath: "/tmp/mysec"
name: "secretstest"
apiVersion: v1
kind: ReplicationController
metadata:
name: appname
spec:
replicas: replica_count
template:
metadata:
name: appname
spec:
nodeSelector:
resource-group:
containers:
- name: appname
image:
imagePullPolicy: Always
ports:
- containerPort: 3000
env: -----------------------------> 1
- name: ENV
valueFrom:
configMapKeyRef:
name: appname
key: tomcat-secrets
在上面的代码中,在env定义下,我们在复制控制器中将secrets作为环境变量使用。
apiVersion: v1
kind: pod
metadata:
name: appname
spec:
metadata:
name: appname
spec:
volumes:
- name: "secretstest"
secret:
secretName: tomcat-pass
containers:
- image: tomcat: 8.0
name: awebserver
volumeMounts:
- mountPath: "/tmp/mysec"
name: "secretstest"