邯郸网站建设公司排名友情链接页面
1、configmap*:1.2加入新的特征(重点)
2、secret:保存密码,token,保存敏感的k8s资源(保存加密的信息)
(1)敏感的k8s资源,这类数据可以直接存放在镜像中,但是放在secret中可以更方便的控制,减少暴露的风险,保存加密的信息
3、secret的类型
(1)查看secret:kubectl get secrets

(2)创建secret:kubectl create secret
| secret的类型 | |
| docker-registry | 存储docker仓库的认证信息,以及docker组件的认证信息(私有) |
| generic | secret的默认模式,加密类型Opaque,base64加密编码的secret信息,存储的是用户自定义的密码、密钥等等信息 |
| tls | TLS/SSL,用于存储证书和私钥,https |
| 系统自带的类型:kubernetes.io/service-account-token 用来访问系统的apiserver,pod会默认使用这个kubernetes.io/service-account-token创建的secret和apiserver通信,而且会自动挂载到pod的/run/secret/kubernetes.io/service-account目录中 | |
4、pod引用secret的三种方式
(1)挂载:把secret挂载到pod当中的一个或者多个容器上的卷里面
(2)把secret作为容器的环境变量,设定环境变量
(3)docker-registry可以作为集群拉取镜像时使用,使用secret可以实现免密登录
6、创建方式(以generic为例)
(1)第一种:指定文件提取信息
①陈述式
echo "hyde" > username.txt
echo "123" > password.txt

创建generic实例:
kubectl create secret generic mysecret --from-file=/opt/username.txt --from-file=/opt/password.txt


②声明式:

* data中保存的是加密的内容

7、secret的引用方式
(1)第一种:挂载的方式,将加密的信息传到容器的指定目录中(保存的是加密的内容,容器内部可以解密,可以直接引用)
①陈述式
kubectl create secret generic mysecret2 --from-file=/etc/passwd --from-file=/etc/shadow
kubectl apply -f guazai.yaml



②声明式



(2)第二种:把secret作为容器的环境变量



(3)第三种:docker-registry可以作为集群拉取镜像时使用,使用secret可以实现免密登录
kubectl create secret docker-registry myharbor --docker-server=20.0.0.72 --docker-username=admin --docker-password=123456



8、secret总结
(1)创建方式:陈述式、申明式创建
(2)引用方式:挂载使用、设定环境变量、docker-registry
9、Configmap(重)
(1)Configmap:保存不需要加密的信息
(2)Configmap是1.2引用的功能,应用程序会从配置文件、命令参数、以及环境变量中读取配置信息
(3)configmap在创建容器中,给其注入需要的配置信息,既可以是单个的属性,也可以是整个容器的配置文件
(4)configmap是键值对形式
10、configmap的创建方式
(1)陈述式
①指定文件创建,可以是一个文件,也可以是多个文件



kubectl create configmap hobby --from-file=/opt/configmap/hyde.txt --from-file=/opt/configmap/yyy.txt


②使用字面值直接创建
kubectl create configmap hobby1 --from-literal=hyde=choccy --from-literal=yyy=ice

(2)声明式(以键值对的形式保存)


11、configmap的引用
(1)设置环境变量



(2)数据卷使用configmap(重)
①配置nginx的配置文件


②创建configmap:
kubectl create configmap nginx-con --from-file=/opt/nginx-configmap/nginx.conf


③创建pod



(3)configmap的热更新

| ①通过数据卷的形式,把配置文件传给了pod内部容器 ②configmap的热更新:在pod运行的情况下,对configmap的配置信息进行修改,直接生效,反映到容器当中 ③configmap的热更新不会触发pod的滚动更新机制(deployment) ④version/config来触发滚动更新的机制 |
①修改configmap


②配置文件同步生效




③version/config来触发滚动更新的机制
kubectl patch deployments.apps nginx2 --patch '{"spec": {"template": {"metadata": {"annotations": {"version/config": "20240116"}}}}}'


