使用 kubectl 管理 Secret
准备开始
你必须拥有一个 Kubernetes 的集群,同时你必须配置 kubectl 命令行工具与你的集群通信
创建 Secret
Secret 对象用来存储敏感数据,如 Pod 用于访问服务的凭据。例如,为访问数据库,你可能需要一个 Secret 来存储所需的用户名及密码
你可以通过在命令中传递原始数据,或将凭据存储文件中,然后再在命令行中创建 Secret。以下命令 将创建一个存储用户名 admin 和密码 TtAwpaj4Iy= 的 Secret
执行以下命令
kubectl create secret generic db-user-pass \
--from-literal=username=admin \
--from-literal=password='TtAwpaj4Iy'
说明:你必须使用单引号 ‘’ 转义字符串中的特殊字符,如 $、\、*、=和! 。否则,你的 shell 将会解析这些字符
1、将凭据保存到文件
echo -n 'admin' > ./username.txt
echo -n 'TtAwpaj4Iy=' > ./password.txt
-n 标志用来确保生成文件的文末没有多余的换行符。这很重要,因为当 kubectl 读取文件并将内容编码为 base64 字符串时,额外的换行符也会被编码。 你不需要对文件中包含的字符串中的特殊字符进行转义
2、在 kubectl 命令中传递文件路径
kubectl create secret generic db-user-pass \
--from-file=./username.txt \
--from-file=./password.txt
默认键名为文件名。你也可以通过 --from-file=[key=]source 设置键名,例如
kubectl create secret generic db-user-pass \
--from-file=username=./username.txt \
--from-file=password=./password.txt
验证 Secret
1、查看 Secret 是否已创建
kubectl get secrets
2、输出如下内容
NAME TYPE DATA AGE
db-user-pass Opaque 2 51s
3、查看secret详细信息
kubectl describe secret db-user-pass
解码 Secret
1、查看你所创建的 Secret 内容
2、输出如下内容
3、解码 password 数据:
echo 'UyFCXCpkJHpEc2I9' | base64 --decode
编辑 Secret
要想删除一个 Secret,请执行以下命令:
kubectl delete secret db-user-pass