移动端网站建设公司,怎样做天猫 淘宝网站导购,游戏发号网站源码,少儿英语做游戏网站推荐提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 Secret什么是Secret?Secret四种类型及其特点Secret应用案例#xff08;1#xff09;将明文密码进行base64编码#xff08;2#xff09;编写创建secret的YAML文… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 Secret什么是Secret?Secret四种类型及其特点Secret应用案例1将明文密码进行base64编码2编写创建secret的YAML文件 Secret的两种使用方式1通过环境变量的方式传递给pod2通过volume的方式挂载到pod内建议使用热更新 Secret
什么是Secret?
类似与ConfigMap 区别在于 ConfigMap存储明文 Secret存储密文
ConfigMap可以用作配置文件管理 Secret用于密码、密钥、token等敏感数据配置管理
##Secret特性
1非敏感数据专门用于存储非敏感的配置信息。
2.多种数据源数据可以从命令行、文件、目录等多种来源创建。
3.动态更新更新 ConfigMap 后Pod 可以动态加载新的配置信息需要应用支持热加载
Secret四种类型及其特点
Opaque Secrets不透明Secrets
Opaque Secrets是最通用的Secret类型可以存储任意类型的机密数据如用户名/密码、API密钥等。 数据以Base64编码的形式存储并且要求用户自行对数据进行加密。 Service Account Token Secrets服务账户令牌Secrets
这种类型的Secret由Kubernetes自动生成和管理用于存储与Service Account相关的API访问令牌。 这些Secrets默认会挂载到Pod中以便允许Pod内的应用程序使用与Service Account相关的API访问令牌进行安全通信。 Docker Registry SecretsDocker注册表Secrets
用于存储访问Docker私有注册表所需的认证信息如用户名、密码和邮箱。 这些Secrets通常用于在Kubernetes中拉取私有Docker镜像时进行身份验证。 TLS SecretsTLS证书Secrets
用于存储TLS证书和私钥以便在TLS终止、HTTPS等情况下使用。 这些Secrets可用于在Kubernetes Ingress或Service中配置SSL/TLS终止从而实现加密通信。
Secret应用案例
1将明文密码进行base64编码
Opaque类型密码需要进行base64编码
[rootmaster ~]# echo -n 123 | base64
MTIz假设密码为123,得到的编码为MTIz
2编写创建secret的YAML文件
[rootmaster ~]# vim secret-mysql.yml
apiVersion: v1
kind: Secret
metadata:name: secret-mysql
data:password: MTIz[rootmaster ~]# kubectl apply -f secret-mysql.yml
Secret的两种使用方式
1通过环境变量的方式传递给pod
编写pod的YAML文件使用Secret
[rootmaster ~]# vim pod-mysql-secret.ymlapiVersion: v1
kind: Pod
metadata:name: pod-mysql-secret1
spec:containers:- name: mysqlimage: mysql:5.7env:- name: MYSQL_ROOT_PASSWORDvalueFrom:secretKeyRef:name: secret-mysqlkey: password[rootmaster ~]# kubectl apply -f pod-mysql-secret.yml 等一会因为本地没有所以要下载mysql镜像
进入pod内用传递的密码登录
[rootmaster ~]# kubectl exec -it pod-mysql-secret1 -- bash
[rootmaster ~]# kubectl exec -it pod-mysql-secret1 -- bash
rootpod-mysql-secret1:/# mysql -uroot -p123登录成功即可
2通过volume的方式挂载到pod内建议使用
编写pod的YAML文件使用Secret [rootmaster ~]# vim pod-mysql-secret2.yml
apiVersion: v1
kind: Pod
metadata:name: pod-mysql-secret2
spec:containers:- name: busyboximage: busyboxargs:- /bin/sh- -c- sleep 10000volumeMounts:- name: vol-secretmountPath: /opt/passwdreadOnly: truevolumes:- name: vol-secretsecret:secretName: secret-mysql验证
[rootmaster ~]# kubectl exec pod-mysql-secret2 -- cat /opt/passwd/password
123热更新
[rootmaster ~]# echo -n 123456 | base64
MTIzNDU2
[rootmaster ~]# kubectl edit secrets secret-mysqlpod-mysql-secret2已更新
[rootmaster ~]# kubectl exec pod-mysql-secret2 -- cat /opt/passwd/password
123456pod-mysql-secret1未更新
[rootmaster ~]# kubectl exec -it pod-mysql-secret1 -- bash
rootpod-mysql-secret1:/# mysql -uroot -p123456完成 有问题请指出全天在