secrets的类型
Kubernetes里Secret的类型(type)主要有以下几种:
一、Opaque(不透明的Secret)
Opaque是默认的Secret类型,表示任意数据都可以用base64编码存储进去。
示例:
apiVersion: v1
kind: Secret
metadata:
name: my-secret
type: Opaque # 类型名称
data:
username: dXNlcm5hbWU= # base64编码后的字符串("username")
password: cGFzc3dvcmQ= # base64编码后的字符串("password")
二、kubernetes.io/service-account-token(Service Account令牌)
自动由Kubernetes创建,用于标识Pod访问Kubernetes API。
示例(一般由Kubernetes自动创建):
apiVersion: v1
kind: Secret
metadata:
name: default-token-xxxxx
namespace: default
annotations:
kubernetes.io/service-account.name: default
type: kubernetes.io/service-account-token # 特殊类型
data:
ca.crt: <base64证书数据>
namespace: ZGVmYXVsdA== # "default"
token: ZXlKaGJHY2lPaUpJVXp... # JWT token数据
三、kubernetes.io/dockercfg 和 kubernetes.io/dockerconfigjson(Docker Registry凭证)
用于验证Docker镜像仓库,支持Pod从私有Docker仓库拉取镜像。
示例:
apiVersion: v1
kind: Secret
metadata:
name: docker-registry-secret
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: eyJhdXRocyI6IHsidXJsIjp7ImF1dGgiOiJiYXNlNjR1c2VycGFzcyJ9fX0=
# .dockerconfigjson的值是Docker认证凭证JSON经过base64编码
(原始JSON格式示例)
{
"auths": {
"https://index.docker.io/v1/": {
"username": "myuser",
"password": "mypassword",
"auth": "bXl1c2VyOm15cGFzc3dvcmQ="
}
}
}
四、kubernetes.io/basic-auth 和 kubernetes.io/ssh-auth (基本或SSH认证信息)
可用于存储SSH密钥文件或用户名密码认证信息。
基本认证示例:
apiVersion: v1
kind: Secret
metadata:
name: basic-auth-secret
type: kubernetes.io/basic-auth
data:
username: <base64 用户名>
password: <base64 密码>
SSH认证示例:
apiVersion: v1
kind: Secret
metadata:
name: ssh-auth-secret
type: kubernetes.io/ssh-auth
data:
ssh-privatekey: <base64编码后的私钥>
五、kubernetes.io/tls(存储TLS证书私钥)
用于存储HTTPS/TLS通信密钥与证书。
示例:
apiVersion: v1
kind: Secret
metadata:
name: tls-secret
type: kubernetes.io/tls
data:
tls.crt: <base64编码的证书内容(cert)>
tls.key: <base64编码的私钥内容(private key)>
总结:
- Opaque 类型:一般用途,存储任意敏感数据。
- service-account-token 类型:Kubernetes自动管理的,标识Pod与Kubernetes API交互权限。
- dockerconfigjson/docker-cfg 类型:存储Docker镜像仓库认证凭证。
- basic-auth 和 ssh-auth 类型:存放基本认证或SSH认证的敏感信息。
- tls 类型:用于存储TLS证书和密钥相关信息,便于Ingress或负载均衡器配置使用。
以上是K8s中主要的Secret类型及对应示例,实际中根据具体需求选择正确的Secret类型使用。
浙公网安备 33010602011771号