【云原生】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
相关推荐
IT人生--MarkGuo2 小时前
容器云后端存储NFS高可用适配
kubernetes
Insist7533 小时前
K8S-Secret资源对象
云原生·容器·kubernetes
-小末5 小时前
使用docker manifest制作本地多架构镜像
docker·容器·多架构镜像
掘金安东尼7 小时前
Amazon Polly :让文字开口说话的云端实践
人工智能·云原生
照物华9 小时前
K8s概念之进程、容器与 Pod 的终极指南
云原生·容器·kubernetes
vvilkim15 小时前
Java主流框架全解析:从企业级开发到云原生
java·运维·云原生
JohnYan1 天前
工作笔记 - CentOS7环境运行Bun应用
javascript·后端·容器
ezreal_pan1 天前
Kubernetes 负载均衡现象解析:为何同一批次请求集中于单个 Pod
运维·云原生·k8s·traefik
小猿姐1 天前
KubeBlocks AI:AI时代的云原生数据库运维探索
数据库·人工智能·云原生·kubeblocks
曼岛_1 天前
[系统架构设计师]云原生架构设计理论与实践(十四)
云原生·系统架构·系统架构设计师