在k8S中,Secret 有哪些使用方式?

简介: 在k8S中,Secret 有哪些使用方式?

在Kubernetes (k8s) 中,Secret 是一种资源对象,用于存储敏感信息(如密码、密钥、凭证等),并以安全的方式将其注入到 Pod 中的容器。以下是 Kubernetes Secret 的几种主要使用方式:

  1. 通过 --from-literal 创建 Secret:
    在命令行中创建 Secret 时,可以使用 kubectl create secret 命令结合 --from-literal 标志来指定各个键值对:
kubectl create secret generic my-secret --from-literal=username=admin --from-literal=password=supersecret
  1. 这将创建一个名为 my-secret 的 Secret,其中包含两个键值对:usernamepassword
  2. 通过 --from-file 创建 Secret:
    如果需要从文件中加载内容作为 Secret 的一部分,可以使用 --from-file 参数,每个文件的内容会被编码后作为 Secret 的一个条目:
kubectl create secret generic db-creds --from-file=connection-string=./dbconn.txt --from-file=sslcert=./cert.pem
  1. 这样会从给定路径读取文件内容,并分别创建 connection-stringsslcert 键。
  2. 通过配置文件创建 Secret:
    可以编写一个 YAML 或 JSON 配置文件来定义 Secret,并使用 kubectl apply -f <config-file>.yaml 来创建或更新 Secret:
apiVersion: v1
kind: Secret
metadata:
name: my-secret
type: Opaque
data:
username: YWRtaW4=
password: c3VwZXJzZWNyZXQ=
  1. 注意,在配置文件中,数据必须是 base64 编码过的字符串。
  2. 在 Pod 中通过环境变量引用 Secret:
    在 Pod 的配置中,可以通过 env 字段下的 valueFrom.secretKeyRef 引用 Secret 中的数据,并将其作为环境变量暴露给容器:
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: mycontainer
image: redis
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: mysecret
key: username
  1. 在 Pod 中挂载 Secret 为卷:
    Secret 也可以作为 Volume 挂载到容器内部的文件系统中,以便应用程序直接读取其中的文件:
apiVersion: v1
kind: Pod
spec:
containers:
- name: mycontainer
image: nginx
volumeMounts:
- name: secret-volume
mountPath: /etc/nginx/secret
readOnly: true
volumes:
- name: secret-volume
secret:
secretName: mysecret
  1. 在这个例子中,Secret mysecret 中的所有数据将以文件形式出现在 /etc/nginx/secret 目录下。

综上所述,通过这些方式,Kubernetes Secret 提供了一种安全机制,确保敏感数据不会明文显示在配置或日志中,同时又能方便地与 Pod 资源关联起来,供应用容器使用。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 Kubernetes 数据安全/隐私保护
k8s学习-Secret(创建、使用、更新、删除等)
k8s学习-Secret(创建、使用、更新、删除等)
1354 0
|
存储 Kubernetes API
Kubernetes 的 secret 并不是真正的 secret(上)
Kubernetes 的 secret 并不是真正的 secret
357 0
|
运维 Kubernetes 容器
【Azure K8S】演示修复因AKS密钥过期而导致创建服务不成功的问题(The provided client secret keys for app ****** are expired)
【Azure K8S】演示修复因AKS密钥过期而导致创建服务不成功的问题(The provided client secret keys for app ****** are expired)
315 2
【Azure K8S】演示修复因AKS密钥过期而导致创建服务不成功的问题(The provided client secret keys for app ****** are expired)
|
Kubernetes 关系型数据库 MySQL
k8s之Secret
k8s之Secret
|
存储 Kubernetes 数据安全/隐私保护
k8s--配置存储 ConfigMap、Secret
k8s--配置存储 ConfigMap、Secret
|
存储 Kubernetes 数据安全/隐私保护
k8s学习笔记之ConfigMap和Secret
k8s学习笔记之ConfigMap和Secret
|
Kubernetes 数据安全/隐私保护 容器
Kubernetes(K8S) 配置管理 Secret 介绍
Kubernetes(K8S) 配置管理 Secret 介绍
268 1
|
Prometheus Kubernetes 数据安全/隐私保护
使用kubeseal加密和管理k8s集群的secret
使用kubeseal加密和管理k8s集群的secret
333 2
|
存储 Kubernetes 数据安全/隐私保护
k8s学习--Secret详细解释与应用
Secret 支持四种类型: - **Opaque Secrets**:存储任意类型机密数据,需自行加密。 - **Service Account Token Secrets**:自动管理 API 访问令牌。 - **Docker Registry Secrets**:存储 Docker 私有仓库认证信息。 - **TLS Secrets**:存储 TLS 证书和私钥,用于加密通信。
1253 0
|
Kubernetes 容器 Perl
在K8S中,请问harbor的secret创建能否直接创建资源清单?
在K8S中,请问harbor的secret创建能否直接创建资源清单?