【云原生】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 小时前
OpenStack on Kubernetes 生产部署实战(十三)
容器·kubernetes·openstack
晚霞的不甘2 小时前
Flutter for OpenHarmony天气卡片应用:用枚举与动画打造沉浸式多城市天气浏览体验
前端·flutter·云原生·前端框架
Tadas-Gao2 小时前
TCP粘包现象的深度解析:从协议本质到工程实践
网络·网络协议·云原生·架构·tcp
礼拜天没时间.3 小时前
深入Docker架构——C/S模式解析
linux·docker·容器·架构·centos
切糕师学AI3 小时前
Helm Chart 是什么?
云原生·kubernetes·helm chart
猫头虎3 小时前
如何使用Docker部署OpenClaw汉化中文版?
运维·人工智能·docker·容器·langchain·开源·aigc
会周易的程序员3 小时前
openplc runtimev4 Docker 部署
运维·c++·物联网·docker·容器·软件工程·iot
陈桴浮海3 小时前
【Linux&Ansible】学习笔记合集三
linux·运维·云原生·ansible
小Pawn爷4 小时前
1.Docker基础
运维·docker·容器
chinesegf4 小时前
清理docker残留镜像images
运维·docker·容器