【K8s】专题五(2):Kubernetes 配置之 Secret

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发、订阅专栏!


专栏订阅入口

Linux 专栏 | Docker 专栏 | Kubernetes 专栏


往期精彩文章

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法

【Docker】(全网首发)Kylin V10 下 MySQL 容器内存占用异常的解决方法(续)

【Docker】MySQL 源码构建 Docker 镜像(基于 ARM 64 架构)


目录

一、基本介绍

二、主要特性

三、资源清单(示例)

四、常用操作

1、创建 Secret

2、更新 Secret

3、查看 Secret

4、删除 Secret


一、基本介绍

在 Kubernetes 中,Secret 是一种用于存储敏感信息的资源对象,提供了向 Pod 注入配置信息的能力。

Secret 同 ConfigMap 一样,使用一系列键值对(key-value pairs)为应用程序提供经过 base64 编码的配置信息,使得应用程序的配置更加灵活,并增强了可移植和安全性。

Secret 详细介绍:Secrets | Kubernetes


二、主要特性
  • 敏感信息:Secret 用于存储密码、密钥等敏感信息,而不是将它们以明文形式存储在 Docker 镜像或配置文件中
  • 区分类型:同 ConfigMap 不同,Secret 区分类型,如 Opaque、kubernetes.io/dockerconfigjson 
  • 加密存储:在 Kubernetes 1.7 及以后的版本中,Secret 数据在 etcd 中默认以加密形式存储
  • 命名空间:Secret 是命名空间级别的资源,其作用域被限制在特定的命名空间内
  • API 管理:可以通过 Kubernetes API 来创建、更新和删除 Secret


三、资源清单(示例)
# secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: demo-secret
type: Opaque
data:
  password: MTIzNDU2Cg==           # 键值为 123456 的 base64 编码

🔔 Secret 对象类型
Opaque:任意用户定义的数据
kubernetes.io/service-account-token:服务帐户令牌
kubernetes.io/dockercfg:序列化~/.dockercfg文件
kubernetes.io/dockerconfigjson:用于存储 docker registry 认证信息
kubernetes.io/basic-auth:基本身份验证凭证
kubernetes.io/ssh-auth:SSH身份验证的凭据
kubernetes.io/tls:TLS客户端或服务器的数据
bootstrap.kubernetes.io/token:引导令牌数据

上述 secret.yaml 文件定义了一个名为 demo-secret 的 Secret 对象,Secret 类型为 Opaque,data 下定义了一组键值对作为环境变量,其中键值为 123456 的 base64 编码。

说明:可以通过以下命令查看 Secret 资源清单支持定义的内容

kubectl explain secret --recursive


四、常用操作
1、创建 Secret
# 方式一:使用目录或文件
kubectl create secret generic demo-secret --from-file=<目录名称或文件名称>
 
🔔 说明:本方式创建的 Secret 对象中,每一组键值对的 key 是文件名,value 是文件内容,并对 value 进行 base64 编码
 
# 方式二:使用 env 文件
kubectl create secret generic demo-secret --from-env-file=<env文件名称>
 
🔔 说明:本方式创建的 Secret 对象中,直接将 env 文件中 key=value 形式转换为 key:value 形式,并对 value 进行 base64 编码
 
# 方式三:使用字符串
kubectl create secret generic demo-secret --from-literal=key1=value1 --from-literal=key2=value2
 
# 方式四:使用资源清单
kubectl create -f secret.yaml
或
kubectl apply -f secret.yaml

# 方式五:创建 docker-registry 类型对象
kubectl create secret docker-registry demo-secret \
--docker-server=DOCKER_SERVER \
--docker-username=DOCKER_USER \
--docker-password=DOCKER_PASSWORD

2、更新 Secret
# 方式一:修改文件后重新创建
kubectl create secret generic demo-secret --from-file=<目录名称或文件名称> --dry-run -oyaml | kubectl apply -f -
 
🔔 说明:Secret 对象已经存在的情况下,直接 create 会报错,可以先通过 --dry-run 选项生成资源清单,再通过 apply 进行更新
 
# 方式二:修改资源清单后更新
kubectl apply -f secret.yaml

3、查看 Secret
# 查看实例列表
kubetcl get secret
 
# 查看资源清单
kubetcl get secret demo-secret -o yaml
 
# 查看详细信息
kubectl describe secret demo-secret

4、删除 Secret
# 方式一:命令行
kubectl delete secret demo-secret
 
# 方式二:资源清单
kubectl delete -f secret.yaml

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行者Sun1989

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值