【云原生】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
相关推荐
亿牛云爬虫专家1 小时前
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
分布式·python·架构·kubernetes·爬虫代理·监测·采集
乌鸦不像写字台2 小时前
【docker部署】在服务器上使用docker
服务器·docker·容器
艾伦_耶格宇6 小时前
【docker】-1 docker简介
运维·docker·容器
IvanCodes7 小时前
二、Docker安装部署教程
docker·容器
Andy杨10 小时前
20250707-4-Kubernetes 集群部署、配置和验证-K8s基本资源概念初_笔记
笔记·容器·kubernetes
容器魔方12 小时前
中选名单出炉|18位学生入选开源之夏KubeEdge课题,欢迎加入!
云原生·容器·云计算
love530love14 小时前
Docker 稳定运行与存储优化全攻略(含可视化指南)
运维·人工智能·windows·docker·容器
人生匆匆14 小时前
docker进入启动失败的容器
运维·docker·容器
退役小学生呀16 小时前
十、K8s集群资源合理化分配
linux·云原生·容器·kubernetes·k8s
yanjiaweiya17 小时前
云原生-集群管理
java·开发语言·云原生