k8s的配置资源管理

发布时间:2024年01月16日

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"}}}}}'

12、总结
(1)secret:主要作用是保存加密文件,主要的使用方式就是挂载方式
(2)configmap:把配置文件传给容器,主要方式也是挂载方式
(3)configmap的热更新:热更新可以在直接反映到容器的内部,也不会触发pod的更新机制,如果不是需要重启的配置,都可以直接生效
(4)version/config来触发滚动更新,需要重启的,可以重启pod
(5)更新:就是把配置信息重新传到容器内,重启也是一样
(6)configmap就是把配置信息传给容器,键值对形式保存的,非加密的信息

文章来源:https://blog.csdn.net/weixin_48145965/article/details/135627218
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。