开发手册 欢迎您!
软件开发者资料库

Kubernetes - Secrets

Kubernetes Secrets - 从简单和简单的步骤学习Kubernetes,从基本到高级概念,包括概述,架构,设置,图像,作业,标签和选择器,命名空间,节点,服务,Pod,复制控制器,副本集,Deplyoments,卷,秘密,网络政策,API,Kubectl,Kubectl命令,创建应用程序,应用程序Deplyoment,自动扩展,仪表板设置,监控。

秘密可以定义为用于存储敏感数据的Kubernetes对象,例如用户名和密码加密.

在Kubernetes中有多种创建秘密的方法.

  • 从txt文件创建.

  • 从yaml文件创建.

从文本文件创建

为了从文本文件(如用户名和密码)创建机密,我们首先需要将它们存储在txt文件中,使用以下命令.

$ kubectl create secret generic tomcat-passwd –-from-file = ./username.txt –fromfile = ./.password.txt

从Yaml文件创建

apiVersion: v1kind: Secretmetadata:name: tomcat-passtype: Opaquedata:   password:    username: 

创建秘密

$ kubectl create –f Secret.yamlsecrets/tomcat-pass

使用秘密

一旦我们创建了秘密,它就可以了在pod或复制控制器中消耗为 :

  • 环境变量

作为环境变量

为了将秘密用作环境变量,我们将使用 env 在pod yaml文件的spec部分下.

env:- name: SECRET_USERNAME   valueFrom:      secretKeyRef:         name: mysecret         key: tomcat-pass

As Volume

spec:   volumes:      - name: "secretstest"         secret:            secretName: tomcat-pass   containers:      - image: tomcat:7.0         name: awebserver         volumeMounts:            - mountPath: "/tmp/mysec"            name: "secretstest"

Secret配置为环境变量

apiVersion: v1kind: ReplicationControllermetadata:   name: appnamespec:replicas: replica_counttemplate:   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 defi下我们在复制控制器中使用秘密作为环境变量.

作为卷装载的秘密

apiVersion: v1kind: podmetadata:   name: appnamespec:   metadata:      name: appname   spec:   volumes:      - name: "secretstest"         secret:            secretName: tomcat-pass   containers:      - image: tomcat: 8.0         name: awebserver         volumeMounts:            - mountPath: "/tmp/mysec"            name: "secretstest"