k8s---配置资源管理

目录

配置资源管理的方式

secret

pod如何来引用secret???

陈述式创建:

声明式创建

Secret创建加密文件

使用token挂载

环境变量使用

docker-registry

ConfigMap

陈述式

热更新

总结:


配置资源管理的方式

Secret

Configmap(必问)1.2加入的新特征

secret

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

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

通俗来讲就是保存加密信息。

查看加密的token

kubectl get secrets
docker-registry存储docker仓库的认证信息,以及docker组件认证信息。(私有)
generic是secret的默认模式,Opaque base64加密编码的secret。用户自定义的密码、密钥等等。
tlsTLS/SSL 用于存储证书和私钥。https
系统自建的用来访问系统的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可以实现免密登录

主要用于 保存的是加密的内容,容器内部可以解密,可以直接引用。

陈述式创建:

默认类型(Opaque)---从指定文件提取信息

kubectl create secret generic mysecret --from-file=/opt/test/pod-controller/
username.txt --from-file=/opt/test/pod-controller/passwd.txt

声明式创建

Secret创建加密文件

apiVersion: v1
kind: Secret
metadata:name: mysecret2
type:Opaque
data:username: bHl3Cg==password: bGl1eWF3ZWkK

使用token挂载
apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: nginximage: nginx:1.22volumeMounts:- name: secretsmountPath: "/etc/secrets"readOnly: falsevolumes:- name: secretssecret:secretName: mysecret2

执行

kubectl apply -f test.yaml

保存的是加密的内容,容器内部可以解密,可以直接引用。

环境变量使用
apiVersion: v1
kind: Pod
metadata:name: mypod1
spec:containers:- name: nginximage: nginx:1.22env:- name: USERvalueFrom:secretKeyRef:name: mysecret2key: username- name: USER1valueFrom:secretKeyRef:name: mysecret2key: password
#我给nginx1.22这个容器里面传了两个环境变量,这两个变量的值从secret来,分别是两条mysecret1的加密信息

docker-registry

kubectl create secret docker-registry myharbor --docker-server=192.168.10.40 --docker-username=admin --docker-password=123456
apiVersion: v1
kind: Pod
metadata:name: mypod2
spec:containers:- name: nginx2image: hub.test.com/library/nginx:v1imagePullSecrets:- name: myharbornodeName: node01

ConfigMap

ConfigMap:保存的时不需要加密的信息。configmap时1.2引入的功能,应用程序会从配置文件,命令参数,以及环境变量中读取配置信息

configmap在创建容器中,给他注入我们需要的配置文件信息,既可以单个的属性也可以整个容器的配置文件。

陈述式

指定目录文件(定义两个文件1.txt 2.txt)

kubectl create configmap game --from-file=/opt/1.txt --from-file=/opt/2.txt

陈述式---直接定义内容

kubectl create configmap game1 --from-literal=guoqi=shuai --from-literal=wangdefu=sao

声明式

apiVersion: v1
kind: ConfigMap
metadata:name: game
data:guoqi: shuaiwangdefu: saolyw: Liu
#config是键值对形式保存,一个键值对对应一个值

应用:定义达到环境变量

apiVersion: v1
kind: Pod
metadata:name: mypod2
spec:containers:- name: nginx3image: nginx:1.22env:- name: USER1valueFrom:configMapKeyRef:name: gamekey: guoqi- name: USER2valueFrom:configMapKeyRef:name: gamekey: wangdefu- name: USER3valueFrom:configMapKeyRef:name: gamekey: lyw

进入pod

热更新

触发滚动跟新

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

nginx.conf----1

worker_processes  1;
events {worker_connections  1024;
}
http {default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       8080;listen  [::]:8080;server_name  localhost;#access_log  /var/log/nginx/host.access.log  main;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}
}

nginx.yaml

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx1labels:app: nginx1
spec:replicas: 3selector:matchLabels:app: nginx1template:metadata:labels:app: nginx1spec:containers:- name: nginx1image: nginx:1.22ports:- containerPort: 8080volumeMounts:- name: nginx-configmountPath: /etc/nginx/- name: nginx-mountmountPath: /usr/share/nginx/htmlvolumes:- name: nginx-configconfigMap:name: nginx-conn- name: nginx-mounthostPath:path: /opt/htmltype: DirectoryOrCreate

nginx.conf-----2

worker_processes  1;
events {worker_connections  1024;
}
http {default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       8080;listen  [::]:8080;server_name  localhost;#access_log  /var/log/nginx/host.access.log  main;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}
}

执行

kubectl create configmap nginx-con --from-file=/opt/test/secret/configmap/nginx/nginx.conf
#此处用nginx---1kubectl apply -f nginx.yaml
查看创建的podkubectl edit cm nginx-conn
#修改为nginx---2
#修改完成后,大约30s-1min nginx.conf文件会同步为修改后的,修改后的配置文件后要重启nginx服务,此处用滚动更新触发滚动更新:
kubectl patch deployments.apps nginx1 --patch '{"spec": {"template": {"metadata": {"annotations": {"version/confgi": "20240116"}}}}}'

数据卷使用configMap:

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

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

3、configmap的热更新不会触发pod的滚动更新机制(deployment) version/config来触发滚动更新机制(deployment)

主要用于把配置文件传入pod,键值对形式保存的,非加密的信息

总结:

secret:保存加密文件,主要使用方式挂载方式。

configMap:把配置文件传给容器,主要方式也是挂载。

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

version/config来触发滚动更新

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/417327.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发知识点-JAVA-springboot

springboot springbootConfiguration注解的底层核心原理Bean注解的底层核心原理 springboot Configuration注解的底层核心原理 https://www.bilibili.com/video/BV1rq4y1E7gK/?spm_id_from333.999.0.0&vd_sourcef21773b7086456ae21a58a6cc59023be spring.io 全家桶 24…

ETL概念

ETL ETLELT 技术原理ETL 模式应用场景常见工具ETL未来发展方向 ETL 在BI项目中ETL会花掉整个项目至少1/3的时间, ETL设计的好坏直接关接到BI项目的成败。ETL(Extract-Transform-Load) : 用来描述将数据从来源端经过抽取(extract)、转换&…

怎么解决离散型制造业中的7大浪费

企业在生产管理中会产生各种浪费,MES可以巧妙结合精益化生产管理思想消除这些浪费。离散制造中的7大浪费: 1、生产不良 生产过程中出现废品、次品这类质量问题,一方面会消耗原材料、零部件等,另一方面生产、返修过程也会消耗人工…

SpringBoot+dynamic-datasource实现多数据源(msyql、sqlserver、postgresql)手动切换

场景 SpringBootMybatisPlusdynamic-datasources实现连接Postgresql和mysql多数据源: SpringBootMybatisPlusdynamic-datasources实现连接Postgresql和mysql多数据源-CSDN博客 上面实现通过注解和配置文件的方式去进行多数据源操作。 如果业务需求,比…

第一篇【传奇开心果系列】beeware开发移动应用:轮盘抽奖移动应用

系列博文目录 beeware开发移动应用示例系列博文目录一、项目目标二、开发传奇开心果轮盘抽奖安卓应用编程思路三、传奇开心果轮盘抽奖安卓应用示例代码四、补充抽奖逻辑实现五、开发传奇开心果轮盘抽奖苹果手机应用编程思路六、开发传奇开心果轮盘抽奖苹果手机应用示例代码七、…

linux java 8安装

tar -zxf jdk-8u***.tar.gz -C /usr/loacl/ vim /etc/profile i 输入 export JAVA_HOME/usr/local/安装文件名 export PATH${JAVA_HOME}/bin:$PATH ESC :wq 保存退出 source /etc/profile 验证 java -version

【论文阅读】ControlNet、文章作者 github 上的 discussions

文章目录 IntroductionMethodControlNetControlNet for Text-to-Image DiffusionTrainingInference Experiments消融实验定量分析 在作者 github 上的一些讨论消融实验更进一步的探索Precomputed ControlNet 加快模型推理迁移控制能力到其他 SD1.X 模型上其他 Introduction 提…

AWTK 开源串口屏开发(7) - 屏幕保护

现代屏幕其实并不需要屏幕保护,不过屏幕保护程序会衍生一些其它用途。比如: 保护隐私。长时间不操作,通过动画或者其它方式隐藏屏幕内容。数据安全。长时间不操作,需要输入密码才能恢复。美观/广告。长时间不操作,显示…

揭秘!微信高效群发的方法,轻松提升转化率

微信作为一个维护客户关系和营销推广产品与服务的重要平台,对于企业和个人来说都具有非常大的价值。然而,如何高效地给客户群发消息,提高转化率,却是一个让很多人头疼的问题。 下面就给大家介绍几个小技巧,帮助大家实…

tidb Cloud 连接spring boot 项目

一、 免费试用tidbitcloud TiDB Cloud Documentation | PingCAP Docs 1.github账号登录 2.创建集群 3.点击对应集群cludter0 导入数据 导入 本地导入只支持csv文件,其他导入需要AWZ账号使用S3云存储 二、连接spingboot项目 选择java,复制下面的jd…

智汇云舟创始人兼总裁周舟:视频孪生赋能智慧城市多元场景建设

1月18日,由知名科技媒体和产业智库泰伯网主办的WIF2023创新先行者论坛暨企业家会员年会于北京成功举办。共有百余位科技公司创始人、管理者、投资人齐聚,研判产业经济趋势,寻找新形势下企业未来发展的新方向、新机会。智汇云舟创始人兼总裁周…

什么是小红书报备达人,报备流程总结!

随着KOL的崛起,品牌方投放达人是司空见惯的事情。所以,关于品牌投放小红书达人时,一定要知道什么是报备。今天来马文化传媒和大家分享下什么是小红书报备达人,报备流程总结! 一、什么是小红书报备 小红书报备即是&…