配置资源管理

配置资源管理:

Secret

Configmap*:1.2加入的新特征。

Secret:保存密码,token,敏感的k8s资源。

这类数据可以直接存放在镜像当中,但是放在secret当中可以更方便的控制,减少暴露的风险。

Secrets的类型

查看

kubectl get secrets

配置资源管理_第1张图片

四种方式:

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/serviceaccount.

pod如何来引用secret

3种方式:

1,挂载的方式,secret挂载到pod当中一个或者多个容器的卷里面。

2,把secret作为容器的环境变量

3,docker-registry可以作为集群拉取镜像时使用。使用secret可以实现免密登录

创建方式:

1,陈述式创建

指定文件提取信息

先创建两个文件

kubectl create secret generic mysecret --from-file=/opt/username.txt --from-file=/opt/password.txt

配置资源管理_第2张图片

generic 默认类型,Opaque加密方式

2,声明式创建

将加密信息的方式

配置资源管理_第3张图片

把数据加密

vim secret.yaml

配置资源管理_第4张图片

配置资源管理_第5张图片

data中保存的加密信息。

使用方式:

1,挂载,(最多的方式)

vim test1.yaml

配置资源管理_第6张图片

配置资源管理_第7张图片

把加密的信息传到指定容器的指定目录当中去,在容器中不是加密的

还可以传文件

kubectl create secret generic mysecret2 --from-file=/etc/passwd --from-file=/etc/shadow

配置资源管理_第8张图片

2,传递为容器的环境变量

配置资源管理_第9张图片

#我给nginx1.22这个容器里面传了两个环境变量,这两个变量的值从secret来, 分别是两条mysecret1的加密信息

kubectl exec -it mypod1 bash

配置资源管理_第10张图片

3,免密登录harbor仓库

kubectl create secret docker-registry myharbor --docker-server=192.168.176.64 --docker-username=admin --docker-password=123456

配置资源管理_第11张图片

配置资源管理_第12张图片

配置资源管理_第13张图片

指定节点拉取

配置资源管理_第14张图片

secret的三种方式:

创建可以是陈述式创建

也可以是声明式

引用方式:

挂载使用

设定环境变量

docker-registry

ConfigMap:

保存的是不需要加密的信息。configmap的1.2引入的功能,应用程序会从配置文件,免密参数,以及环境变量中读取配置信息 configmap在创建容器中,给他主任我们需要的配置信息。即可以是单个的属性也可以是整个容器的配置文件。

创建方式:

1,陈述式

mkdir configmap

vim cc.txt

vim cc1.txt

创建

kubectl create configmap game --from-file=/opt/configmap/cc.txt --from-file=/opt/configmap/cc1.txt

查看

信息不是加密的

配置资源管理_第15张图片

从指定文件创建,可以是一个,也可以是多个文件

使用字面值创建

kubectl create configmap game1 --from-literal=cc=youqian --from-literal=chen=bianyq

配置资源管理_第16张图片

声明式方式创建:

vim configmap.yaml

配置资源管理_第17张图片

都是以键值对的方式保存的

配置资源管理_第18张图片

引用:

1,作为环境变量

vim configmap.yaml

配置资源管理_第19张图片

传入

配置资源管理_第20张图片

2,数据卷使用configMap

准备好一个nginx.conf的配置文件

配置资源管理_第21张图片

创建configMap

kubectl create configmap nginx-con --from-file=/opt/nginx-configmap/nginx.conf

配置资源管理_第22张图片

vim nginx1.yaml

配置资源管理_第23张图片

配置资源管理_第24张图片

配置资源管理_第25张图片

找不到,因为nginx.conf中工作目录错误

1,我们通过数据卷的形式,把配置文件传给了pod内部容器。

2,config的热更新,在pod运行的情况下,对config的配置信息进行修改。直接生效(反应到容器当中)

3,configmap的热更新不会触发pod的滚动更新机制(deployment)

热更新不会重启

直接通过nginx-con更改

kubectl edit cm nginx-con

配置资源管理_第26张图片

但nginx没有重启

配置资源管理_第27张图片

version/config来触发滚动更新

kubectl patch deployments.apps nginx1 --patch '{"spec": {"template": {"metadata": {"annotations": {"version/confgi": "20240116"}}}}}'

配置资源管理_第28张图片

secret:主要作用的保存加密文件,主要的使用方式就是挂载方式

configMap:主要作用把配置信息传给容器。主要方式也是挂载方式

configMap的热更新:热更新可以直接反映到容器的内部,也不会触发pod的更新机制。如果不是需要重启的配置,都可以直接生效。

version/config来触发滚动更新

kubectl patch deployments.apps nginx1 --patch '{"spec": {"template": {"metadata": {"annotations": {"version/confgi": "20240116"}}}}}'

需要重启的,可以重启pod。

更新:就是把配置信息重新传到容器内,重启也是一样

configMap:就是把配置信息传给容器,键偉对形式保存的,非加密的信息。

你可能感兴趣的:(kubernetes,运维,pod)