Kubernetes教程

Kubernetes Secret

Secret 可以定义为 Kubernetes 对象,用于存储用户名和密码等敏感数据并加密。
在 Kubernetes 中有多种创建秘密的方法。
从 txt 文件创建。 从 yaml 文件创建。

从文本文件创建

为了从文本文件创建机密,例如用户名和密码,我们首先需要将它们存储在一个 txt 文件中并使用以下命令。
$ kubectl create secret generic tomcat-passwd –-from-file = ./username.txt –fromfile = ./.
password.txt

从 Yaml 文件创建

apiVersion: v1
kind: Secret
metadata:
name: tomcat-pass
type: Opaque
data:
   password: <User Password>
   username: <User Name>

创造秘密

$ 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 定义下,我们使用机密作为复制控制器中的环境变量。

作为卷挂载的秘密

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"
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4