k8s-sercret

概念:

Secret 是一种包含少量敏感信息例如密码、令牌或密钥的对象。 这样的信息可能会被放在 Pod 规约中或者镜像中。 使用 Secret 意味着你不需要在应用程序代码中包含机密数据。

由于创建 Secret 可以独立于使用它们的 Pod, 因此在创建、查看和编辑 Pod 的工作流程中暴露 Secret(及其数据)的风险较小。 Kubernetes 和在集群中运行的应用程序也可以对 Secret 采取额外的预防措施, 例如避免将敏感数据写入非易失性存储。

Secret 类似于 ConfigMap 但专门用于保存机密数据,其实只是简单的base64编码 一下

secret 的信息其实是存储在etcd下以base64编码形式存储

secret 并不是很安全:

1.https://zhuanlan.zhihu.com/p/671053753

2.https://kubernetes.io/zh-cn/docs/concepts/configuration/secret/#information-security-for-secrets

使用场景

你可以将 Secret 用于以下场景:

Kubernetes 控制面也使用 Secret; 例如,引导令牌 Secret 是一种帮助自动化节点注册的机制。

Secret 的类型

创建 Secret 时,你可以使用 Secret 资源的 type 字段,或者与其等价的 kubectl 命令行参数(如果有的话)为其设置类型。 Secret 类型有助于对 Secret 数据进行编程处理。

Kubernetes 提供若干种内置的类型,用于一些常见的使用场景。 针对这些类型,Kubernetes 所执行的合法性检查操作以及对其所实施的限制各不相同。

内置类型 用法
Opaque 用户定义的任意数据(默认类型)
kubernetes.io/service-account-token 服务账号令牌
kubernetes.io/dockercfg ~/.dockercfg 文件的序列化形式
kubernetes.io/dockerconfigjson ~/.docker/config.json 文件的序列化形式
kubernetes.io/basic-auth 用于基本身份认证的凭据
kubernetes.io/ssh-auth 用于 SSH 身份认证的凭据
kubernetes.io/tls 用于 TLS 客户端或者服务器端的数据
bootstrap.kubernetes.io/token 启动引导令牌数据

创建和使用

复制代码
#查看命令详情
kubectl create secret <secretName> --help

解密:

复制代码
#1查看secret data 数据
kubectl get secret <secretName> -o jsonpath='{.data}' -n <Namespace>
# 2 base64解密想看的数据
echo '<your secretData>' | base64 -d 
相关推荐
工业一体机老司机7 小时前
Docker部署工控机采集服务 Compose编排与开机自启
运维·docker·容器
DolitD8 小时前
UE像素流与云渲染技术方案对比分析
3d·云原生·ue5·云计算·图形渲染
这个DBA有点耶10 小时前
云数据库半夜卡顿,CPU才30%?深挖云盘IOPS突发限制与内核挂起机制
数据库·mysql·云原生
miaobinfei12 小时前
docker拉取dify镜像,执行docker compose up -d 报错
运维·docker·容器
kobe_OKOK_13 小时前
docker compose命名卷 映射到宿主机的路径
运维·docker·容器
无言听风雨丶14 小时前
Linux 容器本质探秘:Cgroup 与 Namespace 深度解析与实战
linux·运维·服务器·kubernetes
分布式存储与RustFS15 小时前
JuiceFS 接 RustFS 当数据后端:把对象存储挂成本地文件系统
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
孔令飞18 小时前
很多人想学AI Infra,今天推荐一个 AI Agent / AI Infra 学习路线
云原生·go·ai编程
晨陌y18 小时前
Flare自托管导航页教程:Docker部署、多用户、API与公网访问
运维·docker·容器
无言听风雨丶18 小时前
Kubernetes GitOps 持续交付实战:用 Argo CD 让 Git 成为集群事实源
git·elasticsearch·kubernetes