【云原生】Kubernetes之Secret

使用 kubectl 管理 Secret

准备开始

你必须拥有一个 Kubernetes 的集群,同时你必须配置 kubectl 命令行工具与你的集群通信

创建 Secret

Secret 对象用来存储敏感数据,如 Pod 用于访问服务的凭据。例如,为访问数据库,你可能需要一个 Secret 来存储所需的用户名及密码

你可以通过在命令中传递原始数据,或将凭据存储文件中,然后再在命令行中创建 Secret。以下命令 将创建一个存储用户名 admin 和密码 TtAwpaj4Iy= 的 Secret

执行以下命令

c 复制代码
kubectl create secret generic db-user-pass \
    --from-literal=username=admin \
    --from-literal=password='TtAwpaj4Iy'

说明:你必须使用单引号 '' 转义字符串中的特殊字符,如 $、\、*、=和! 。否则,你的 shell 将会解析这些字符

1、将凭据保存到文件

c 复制代码
echo -n 'admin' > ./username.txt
echo -n 'TtAwpaj4Iy=' > ./password.txt

-n 标志用来确保生成文件的文末没有多余的换行符。这很重要,因为当 kubectl 读取文件并将内容编码为 base64 字符串时,额外的换行符也会被编码。 你不需要对文件中包含的字符串中的特殊字符进行转义

2、在 kubectl 命令中传递文件路径

c 复制代码
kubectl create secret generic db-user-pass \
    --from-file=./username.txt \
    --from-file=./password.txt

默认键名为文件名。你也可以通过 --from-file=key=source 设置键名,例如

c 复制代码
kubectl create secret generic db-user-pass \
    --from-file=username=./username.txt \
    --from-file=password=./password.txt

验证 Secret

1、查看 Secret 是否已创建

c 复制代码
kubectl get secrets

2、输出如下内容

c 复制代码
NAME              TYPE       DATA      AGE
db-user-pass      Opaque     2         51s

3、查看secret详细信息

c 复制代码
kubectl describe secret db-user-pass

解码 Secret

1、查看你所创建的 Secret 内容

c 复制代码
kubectl get secret db-user-pass -o jsonpath='{.data}'

2、输出如下内容

c 复制代码
{ "password": "UyFCXCpkJHpEc2I9", "username": "YWRtaW4=" }

3、解码 password 数据:

c 复制代码
echo 'UyFCXCpkJHpEc2I9' | base64 --decode

编辑 Secret

c 复制代码
kubectl edit secrets <secret-name>

要想删除一个 Secret,请执行以下命令:

c 复制代码
kubectl delete secret db-user-pass
相关推荐
cui_hao_nan6 小时前
Docker 学习 5
docker·容器
A黄俊辉A6 小时前
两分钟上手docker
运维·docker·容器
努力努力再努力wz8 小时前
【Docker入门系列】:从架构演进到容器化:一文建立 Docker、虚拟化与 Namespace 的底层心智模型
运维·开发语言·数据结构·c++·docker·容器·架构
吴佳浩 Alben9 小时前
多智能体系统的通信风暴与死锁治理:生产级降级与容灾方案
人工智能·docker·ai·容器·架构
玉&心9 小时前
在dockers desktop上面部署k8s的前端和后端
云原生·容器·kubernetes
wdfk_prog10 小时前
Docker 29 与 containerd image store:镜像为什么会保存两种形态
运维·docker·容器
MC丶科10 小时前
软考架构师90天冲刺|DAY38·第二阶段综合测试-分布式与云原生
分布式·云原生·架构·serverless·service_mesh·软考架构师
hm宋10 小时前
ZooKeeper 容灾切换免重启实践:域名化配置与客户端自动迁移
分布式·zookeeper·云原生
张洛闻Eren10 小时前
云原生k8s【第七课】:集群监控与可观测性
linux·运维·docker·云原生·容器·kubernetes·k8s
Y38153266220 小时前
Docker Compose 服务依赖与健康检查:healthcheck 让容器按正确顺序启动
运维·docker·容器