探索k8s集群的配置资源(secret和configmap)

2024-06-04 07:36

本文主要是介绍探索k8s集群的配置资源(secret和configmap),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

ConfigMap


ConfigMap(主要是将配置目录或者文件挂载到k8s里面使用)

与Secret类似,区别在于ConfigMap保存的是不需要加密配置的信息。(例如:配置文件
ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。ConfigMap API 给我们提供了向容器中注入配置信息的机制,ConfigMap 可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制大对象。
应用场景:应用配置

创建 ConfigMap

以文件的形式创建

//--from-file 指定在目录下的所有文件都会被用在 ConfigMap 里面创建一个键值对,键的名字就是文件名,值就是文件的内容

 

还有两个文件依次使用同样的方法去创建cm

 以文件目录的形式创建

 将其中的两个文件加入到configmap中

 可以用多个--from-file指定多个文件或者目录

小总结: 将文件或者目录作为键,里面的内容作为值

 

 通过--from-literal创建键值

把之前手动创建的cm删除

 

创建以文件和键值形式的cm

 

 使用cm资源

1.当作数据卷挂载使用,把cm当作数据卷挂载到pod容器里面使用

 

 

 

 

 comfigMap热更新(动态更新)

在线修改

随后等个10秒左右,进入到pod里面查看 

 

 使用 ConfigMap 来替代环境变量  环境变量不支持热更新

第一种:

 

第二种:

 先创建一个新的cm

 

 

demo2的配置文件内容 

 ​​​​​​

 

 

 所有的的cm-ky00里面的内容都在env里面查看到

 同时还可以设置command操作

demo2.yaml的配置文件内容


导入配置文件方式

导入nginx.conf配置文件 (以文件的形式挂载)不支持热更新!!!

 

nginx.conf里面的内容已经变成挂载的内容

不支持热更新 测试一下:

 

 随后,去pod里面查看是否有更新

 

 配置文件以文件的形式挂载,不支持热更新 外面cm修改,在pod里面不生效

 在容器配置中用volumeMoumts.subPath字段指定文件名,实现将卷挂载到容器种指定的文件上(不支持热更新)

 

 

secret(以加密的方式保存)

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

  有四种类型: 

kubernetes.io/service-account-token:由 Kubernetes 自动创建(1.27版本之前),用来访问 APIServer 的 Secret,Pod 会默认使用这个 Secret 与 APIServer 通信, 并且会自动挂载到 Pod 的 /run/secrets/kubernetes.io/serviceaccount 目录中;
●Opaque :base64 编码格式的 Secret,用来存储用户自定义的密码、密钥等,默认的 Secret 类型;
●kubernetes.io/dockerconfigjson :用来存储私有 docker registry 的认证信息

●kubernetes.io/tls; 用来存储Tls证书和私钥信息。

 serviceaccount如果不指定的情况下,默认都是用defalut的账户,当pod作为主键访问apiservier时,就会通过account-token去验证

举例:

Pod 需要先引用才能使用某个 secret,Pod 有 3 种方式来使用 secret:

●作为挂载到一个或多个容器上的卷 中的文件。
●作为容器的环境变量。
●由 kubelet 在为 Pod 拉取镜像时使用。

 

创建secret  文件形式  ●Opaque,base64 编码格式的 Secret,用来存储用户自定义的密码、密钥等,默认的 Secret 类型;

 

 解密:

 创建secret 以键值形式

 secret挂载方式 将secret以挂载的方式到pod里面

 

 

 

 secret环境变量方式

 

环境变量里面都有

 

 类型三:kubernetes.io/dockerconfigjson

在 Docker harbor 节点(192.168.88.7)上操作

1.1关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

1.2 安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
yum install -y docker-ce
systemctl start docker.service
systemctl enable docker.service
docker version

 

建议不要使用最新版本的 Docker,会存在与 api-server 版本不兼容,安装20版本的docker 

yum install -y docker-ce-20.10.18 docker-ce-cli-20.10.18

 、部署 Harbor 服务

2.1修改配置

​tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
vim /usr/local/harbor/harbor.cfg
--5行--修改,设置为Harbor服务器的IP地址或者域名
hostname = 192.168.246.14cd /usr/local/harbor/
./install.sh

 

yum install -y docker-ce-20.10.18 docker-ce-cli-20.10.18

 

 

上传软件表到 /opt 目录中 

上传 docker-compose 和 harbor-offline-installer-v1.2.2.tgz 到 /opt 目录中

上传 docker-compose 和 harbor-offline-installer-v1.2.2.tgz 到 /opt 目录中cd /opt
chmod +x docker-compose
mv docker-compose /usr/local/bin/

 在 Harbor 中创建一个新项目

(1)浏览器访问:http://192.168.246.14登录 Harbor WEB UI 界面,默认的管理员用户名和密码是 admin/Harbor12345
(2)输入用户名和密码登录界面后可以创建一个新项目。点击“+项目”按钮
(3)填写项目名称为“kgc-project”,点击“确定”按钮,创建新项目

 

创建一个私有的镜像仓库 

在node1 node2节点上将nginx:latest镜像删除

 

随后,在harbor上面下载nginx:1.24版本的镜像

 

 

这篇关于探索k8s集群的配置资源(secret和configmap)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1029463

相关文章

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

k8s部署MongDB全过程

《k8s部署MongDB全过程》文章介绍了如何在Kubernetes集群中部署MongoDB,包括环境准备、创建Secret、创建服务和Deployment,并通过Robo3T工具测试连接... 目录一、环境准备1.1 环境说明1.2 创建 namespace1.3 创建mongdb账号/密码二、创建Sec

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

C#读取本地网络配置信息全攻略分享

《C#读取本地网络配置信息全攻略分享》在当今数字化时代,网络已深度融入我们生活与工作的方方面面,对于软件开发而言,掌握本地计算机的网络配置信息显得尤为关键,而在C#编程的世界里,我们又该如何巧妙地读取... 目录一、引言二、C# 读取本地网络配置信息的基础准备2.1 引入关键命名空间2.2 理解核心类与方法