在 Kubernetes 中,Secrets 是用于存储敏感信息(如密码、API 密钥、证书等)的一种资源类型。它提供了一种安全地存储和管理这些敏感信息的方式,并可以在 Pod 中进行引用。

以下是一些关于 Kubernetes 中 Secrets 的管理操作:

1. 创建 Secret:
   使用 kubectl create secret 命令可以创建 Secret。例如,创建一个基于字面量的 Secret:
   kubectl create secret generic my-secret --from-literal=username=admin --from-literal=password=secretpassword

   你还可以从文件中创建 Secret,例如,从文件 mysecret.txt 中读取密码:
   kubectl create secret generic my-secret --from-file=password=mysecret.txt

2. 查看 Secrets:
   使用 kubectl get secrets 命令可以查看集群中的 Secrets 列表:
   kubectl get secrets

3. 查看 Secret 详细信息:
   使用 kubectl describe secret 命令可以查看 Secret 的详细信息:
   kubectl describe secret my-secret

4. 在 Pod 中使用 Secret:
   在 Pod 的配置中引用 Secret 可以将敏感信息注入到容器中。例如,在 Pod 的配置文件中引用上述创建的 Secret:
   apiVersion: v1
   kind: Pod
   metadata:
     name: mypod
   spec:
     containers:
     - name: mycontainer
       image: nginx
       env:
       - name: DB_USERNAME
         valueFrom:
           secretKeyRef:
             name: my-secret
             key: username
       - name: DB_PASSWORD
         valueFrom:
           secretKeyRef:
             name: my-secret
             key: password

   上述配置将 Secret 中的 username 和 password 注入到 Pod 的环境变量中。

5. 更新 Secret:
   使用 kubectl apply 命令可以更新 Secret。例如,更新密码:
   kubectl create secret generic my-secret --from-literal=password=newsecretpassword --dry-run=client -o yaml | kubectl apply -f -

   上述命令使用 --dry-run=client 选项生成更新后的 Secret 配置,然后通过管道传递给 kubectl apply。

6. 删除 Secret:
   使用 kubectl delete secret 命令可以删除 Secret:
   kubectl delete secret my-secret

以上是一些基本的 Secrets 管理操作。在实际应用中,你可能还会涉及到 Secrets 的加密、使用 Helm 等工具进行 Secrets 的模板化管理等高级操作。 Secrets 的内容是 Base64 编码的,因此在处理时需要注意不要泄露敏感信息。


转载请注明出处:http://www.pingtaimeng.com/article/detail/9903/Kubernetes