k8s---配置资源管理

内容预知

目录

内容预知

secret资源配置

secert的几种模式

pod如何来引用secret

陈述式创建secret

声明式+base64编码配置secret

将secret用vlumes的方式挂载到pod中

传参的方式将环境变量导入pod

如何通过secret加密方式获取仓库密码

configmap的资源配置

陈述式创建configmap资源配置

声明式配置configmap资源

如何在pod引用?

数据卷使用configmap(挂载方式实现configmap)

configmap的热更新

总结

secret和configMap的区别


secret资源配置

Secret 是用来保存密码、token、密钥等敏感数据的 k8s 资源,这类数据虽然也可以存放在 Pod 或者镜像中,但是放在 Secret 中是为了更方便的控制如何使用数据,并减少暴露的风险。

secert的几种模式

[root@master01 opt]# kubectl create secret 
docker-registry  generic          tls   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

pod如何来引用secret

3种方式:

  • 1.挂载方式,secret挂载到pod当中的一个或者多个容器上的卷 里面。
  • 2.把secret作为容器的环境变量
  • 3.docker-registry可以作为集群拉取镜像时使用。使用secret可以实现免密登录。

陈述式创建secret

echo "zzr" > username.txt
echo "123" > passwd.txtkubectl create secret generic mysecret --from-file=/opt/username.txt --from-file=/opt/passwd.txtkubectl get sercet默认类型的加密方式: Opaque

声明式+base64编码配置secret

echo username.txt | base64
echo password.txt | base64

apiVersion: v1
kind: Secret
metadata:name: mysecret
type:Opaque
data:username: dXNlcm5hbWUudHh0Cg==passwd: cGFzc3dkLnR4dAo=

将secret用vlumes的方式挂载到pod中

apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: nginximage: nginx:1.22volumeMounts:- name: secretmountPath: "/etc/secrets"readOnly: falsevolumes:- name: secretssecret:secretName: mysecret1

传参的方式将环境变量导入pod

-----------创建mysecret1---------------------
echo username.txt | base64
echo username1.txt | base64
vim sec.yaml
apiVersion: v1
kind: Secret
metadata:name: mysecret1
type:Opaque
data:username: dXNlcm5hbWUudHh0Cg==username1: dXNlcm5hbWUxLnR4dAo=
wq
------------创建完毕-------------------------------------将环境变量引入-----------------------apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: nginximage: nginx:1.22env:- name: USERvalueFrom:secretKeyRef:name: mysecret1key: username- name: USER1valueFrom:secretKeyRef:name: mysecret1key: username1我给nginx1.22这个容器里面传了两个环境变量,这两个变量的值从secret来,分别是两条mysecret1的加密信息。
wq
-------------------

进入容器观察

如何通过secret加密方式获取仓库密码

kubectl create secret docker-registry myharbor --docker-server=20.0.0.64 --docker-username=admin --docker-password=123456kubectl describe secrets myharbor

apiVersion: v1
kind: Pod
metadata:name: mypod2
spec:containers:- name: nginx1image: hub.zzr.com/v1/nginx:zzrimagePullSecrets:- name: myharbornodeName: master01wq
kubectl apply -f sec3.yaml

configmap的资源配置

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

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

陈述式创建configmap资源配置

cd /opt
mkdir configmap
cd configmapvim game.txt
emo=123
kda=445vim abc.txt
zzr=123
hj=456kubectl create configmap game --from-file=/opt/configmap/game.txt --from-file=/opt/configmap/abc.txt

声明式配置configmap资源

apiVerdion: v1
kind: ConfigMap
metadata:name: game
data:hj: aaazzr: bbb
data里面要键值对形式

如何在pod引用?

apiVersion: v1
kind: Pod
metadata:name: mypod2
spec:containers:- name: nginx1image: nginx:1.22env:- name: USER1valueFrom:configMapKeyRef:name: gamekey: zzr- name: USER2valueFrom:configMapKeyRef:name: gamekey: hj

数据卷使用configmap(挂载方式实现configmap)

cd /opt
mkdir nginx-configmap
cd nginx-configmapvim nginx.conf
kubectl create configmap nginx-conf --from-file=/opt/nginx-configmap/nignx.confkubectl get cm
kubectl describe nginx-conf

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: 8081volumeMounts:- name: nginx-configmountPath: /etc/nginx- name: nginx-mountmountPath: /usr/share/nginx/htmlvolumes:- name: nginx-configconfigMap:name: nginx-conf- name: nginx-mounthostPath:path: /opt/htmltype: DirectoryOrCreatewq

由于configmap的热更新机制,可以直接对文件进行修改

kubectl edit cm nginx-conflocation
root /usr/share/nginx/html
kubectl patch deployments.apps nginx1 --patch '{"spec": {"template": {"metadata": {"annotations": {"version/confgi": "20240116"}}}}}'更新完配置文件重启更新

configmap的热更新

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

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

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

version/config来触发滚动更新。

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

总结

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

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

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

version/config来触发热更新

需要重启的,可以重启pod

在工作中configMap就是将配置信息传递给容器。通过键值对形式保存的非加密信息。

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

secret和configMap的区别

secret是加密的信息。

configMap是非加密信息。可以传递配置信息给容器

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

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

相关文章

ubuntu 22 搭建git服务

第一步,安装git: sudo apt-get install git 创建用户信息 git config --global user.name soft 第二步,创建一个git用户,用来运行git服务: sudo adduser git 创建git仓库的存储目录、更改文件目录属主为代码仓库…

2.3数据链路层02

2.3 数据链路层 2.3.5 以太网 1、以太网概念 以太网是一种计算机局域网技术。IEEE(电气与电子工程师协会:Institute of Electrical and Electronics Engineers)组织的IEEE802.3标准制定了以太网的技术标准,它规定了包括物理层的…

Gartner发布CPS安全2024年预测:安全形势动荡的四大向量

随着威胁形势、自动化和人工智能采用的步伐以及供应商形势不断快速发展,我们为安全和风险管理领导者提供了四项预测,以规划 2024 年及以后 CPS 安全的未来发展方向。 主要发现 随着人工智能的采用加速增加网络物理系统( CPS)的“智…

openssl3.2 - 官方demo学习 - cms - cms_comp.c

文章目录 openssl3.2 - 官方demo学习 - cms - cms_comp.c概述笔记END openssl3.2 - 官方demo学习 - cms - cms_comp.c 概述 CMS is Cryptographic Message Syntax (CMS) standard 用CMS操作, 将明文压缩 默认编译出来的openssl3.2没有zlib库, 需要添加zlib特性[openssl3.2 - …

JAVA基础---内部类详解

文章目录 1. 内部类概念2. 内部类的分类2.1 内部类2.1.1 实例内部类2.1.2 静态内部类2.2 局部内部类2.3 匿名内部类 1. 内部类概念 当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务&#xff0c…

MPLS基础架构

目录 一、MPLS多协议标签交换概述 1、MPLS是什么 2、MPLS-VPN 3、MPLS起源 (1)、MPLS解决的问题 MPLS解决了三层转发短板问题。 (2)、交换机转发流程 (3)、路由器转发流程 (4)、交换…

【程序员的自我修养11】栈与函数调用过程

绪论 大家好,欢迎来到【程序员的自我修养】专栏。正如其专栏名,本专栏主要分享学习《程序员的自我修养——链接、装载与库》的知识点以及结合自己的工作经验以及思考。编译原理相关知识本身就比较有难度,我会尽自己最大的努力,争…

gradle版本中-bin与-all区别

打开android studio下载的gradle文件,发现-all比-bin多了一个docs文件夹和一个src文件夹。-bin是编译后的二进制发布版,-all还包含了源码和文档,比-bin大了几十兆,两者其余没有区别。 android开发只关注gradle功能不关注实现的情况…

android studio报错:Connect to maven.google.com:443 [mavaen.google.com/

报错很干脆,办法也很干脆。 直接替换 将【https://maven.google.com】替换 为:【http://maven.aliyun.com/nexus/content/groups/public】 或者替换 为:【https://dl.google.com/dl/android/maven2/】

基于K-Means聚类与RFM模型分析顾客消费情况【500010102】

项目说明 本数据集是生成式模拟数据,本项目通过可视化分析对数据进行初步探索,再通过时间序列针对店铺的销售额进行分析,对时序图进行分解,发现数据存在季节性,并且通过auto_arima自动选择参数建立了SARIMA模型&#…

coco标签处理

抽取coco格式训练集中的一部分作为子训练集,用快速测试算法 from pycocotools.coco import COCO import random import copy import json# 原始的 COCO 标注文件路径 original_annotations_path /workspace/datasets/soccer6/yolo/annotations/train.json# 新的 C…

IOS-高德地图路径绘制-Swift

本文展示的是在IOS开发中调用高德地图进行驾车路径绘制,开发语言是Swift。 IOS高德地图集成请看:IOS集成高德地图Api 使用路径规划功能需要集成高德地图的搜索功能。 pod AMapSearch定义AMapSearchAPI 定义主搜索对象 AMapSearchAPI ,并继承…

AI对决:ChatGPT与文心一言的深度比较

. 个人主页:晓风飞 专栏:数据结构|Linux|C语言 路漫漫其修远兮,吾将上下而求索 文章目录 引言ChatGPT与文心一言的比较Chatgpt的看法文心一言的看法Copilot的观点chatgpt4.0的回答 模型的自我评价自我评价 ChatGPT的优势在这里插入图片描述 文…

Linux下的HTTP代理服务器Squid的配置和使用

Squid是一个流行的Linux下的HTTP代理服务器软件。通过Squid,你可以在Linux服务器上设置一个代理服务器,以便为客户端提供安全的网络连接和数据传输。以下是Squid的配置和使用指南。 1. 安装Squid 首先,你需要确保你的Linux系统上已经安装了…

国标GB28181安防视频监控平台EasyCVR视频分享页增加精简模式

智慧安防平台EasyCVR能在复杂的网络环境中(专网、局域网、广域网、VPN、公网等)将前端海量的设备进行统一集中接入与视频汇聚管理,平台支持设备通过4G、5G、WIFI、有线等方式进行视频流的快捷传输,可以兼容各品牌的IPC、NVR、移动…

寒假学习打字:提前实现弯道超车

寒假对于学生来说,通常是一个宝贵的时间段,可以用来放松、充实自己,或者提高一项重要的技能——打字。在这个数字时代,打字技能变得比以往任何时候都更加重要。无论是在学校的论文写作,还是在工作中处理电子邮件&#…

低代码高逻辑谱写IT组织和个人的第二成长曲线 | 专访西门子Mendix中国区总经理王炯

在今天快速演进的数字化转型浪潮中,低代码平台已经成为推动企业敏捷适应市场变化的关键引擎。在此背景下,西门子Mendix作为市场上的领导者,以其创新的低代码解决方案不断地刷新着行业标准。 近日,LowCode低码时代访谈了西门子Men…

C#上位机与欧姆龙PLC的通信12----【再爆肝】上位机应用开发(WPF版)

1、先上图 继上节完成winform版的应用后,今天再爆肝wpf版的,看看看。 可以看到,wpf的确实还是漂亮很多,现在人都喜欢漂亮的,颜值高的,现在是看脸时代,作为软件来说,是交给用户使用的…

探索JavaScript中强大的三元运算符:简洁、灵活、提升代码效率

探索JavaScript中强大的三元运算符:简洁、灵活、提升代码效率 三元运算是一种在编程中常见的条件表达式。它使用三个操作数进行条件判断,并返回两个值中的一个,具体取决于条件的真假。 三元运算符的优势:相比于使用传统的 if-els…

【JavaEE】CAS

作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…