探索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配置文件kubectl create configmap nginx-config --from-file=nginx.conf取的名字                  配置文件kubectl get cmkubectl describe cm nginx-config   查看nginx-config的详细信息

 

​​​​​​​ 

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版本的镜像

 

随后,修改镜像标签

 再次查看镜像,已经成功了

 

然后完成node节点的docker都部署私有镜像地址,并重启docker

现在harbor中,/etc/docker/daemon.json中 将harbor的配置复制到node 1 node2 同路径下的/etc/docker/daemon.json中 粘贴即可(要将node1 node2指向私有仓库)

 

 

 ​​​​​​

 创建secret账号,基于账号来实现镜像拉取

 里面包含了harbor的用户名跟密码

kubectl create secret docker-registry secret-harbor --docker-username=admin --docker-server=http://192.168.20.18 --docker-password=Harbor12345
//创建私有仓库的账号

apiVersion: v1
kind: Pod
metadata:name: pod03
spec:imagePullSecrets:  #镜像拉取密码- name: secret-harborcontainers:- image: 192.168.20.18/test/lxy-nginx:test #私有仓库拉取镜像name: pod03ports:- containerPort: 80dnsPolicy: ClusterFirstrestartPolicy: Always

 

 

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

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

相关文章

Python深度学习基于Tensorflow(13)目标检测实战

文章目录 RPN 整体代码RPN 具体实现过程数据标注读取标注数据固定图片大小调整目标框使用预训练模型获取 feature_shape定义 RPN 网络生成RPN 的 CLS 和 REG 数据集获取所有的锚点计算锚点与目标框的IOU 定义 RPN loss 和 训练过程 参考资料 这里实现的是二阶段目标检测&#x…

Linux系统下 安装 Nginx

一、下载Nginx安装包 压缩包下载地址:nginx: download 服务器有外网,可直接使用命令下载 wget -c https://nginx.org/download/nginx-1.24.0.tar.gz 二、安装Nginx 1、解压 tar -zxvf nginx-1.24.0.tar.gz 2、安装Nginx所需依赖 yum install -y gc…

线性代数|机器学习-P1课程简介

文章目录 1. 书籍下载2. 正文 1. 书籍下载 链接:https://pan.baidu.com/s/1QbK0enLh0x4nU1c4Tqwlkw 提取码:r7ft 本课程回顾线性代数在概率论、统计学、优化和深度学习中的应用。是GILBERT STRANG教授的有一个经典的课程。课程将线性代数分为如下部分&a…

【第二节】C/C++数据结构之线性表

目录 一、线性表基本说明 1.1 基本概念 1.2 抽象数据类型 1.3 存储结构 1.4 插入与删除的区别 1.5 顺序存储和链式存储的优缺点 二、链表 2.1 基本概念 2.2 抽象数据类型 2.3 单链表的定义 2.4 单链表的基本操作 2.5 单链表模板形式的类定义与实现 三、单向循环链…

探索未来制造,BFT Robotics引领潮流

“买机器人,上BFT” 在这个快速变化的时代,创新和效率是企业发展的关键。BFT Robotics,作为您值得信赖的合作伙伴,专注于为您提供一站式的机器人采购和自动化解决方案。 产品系列: 协作机器人:安全、灵活、…

OpenShift 4 - OpenShift Service Mesh 3 预览

《OpenShift / RHEL / DevSecOps 汇总目录》 了解 OpenShift Service Mesh 3 的变化 OpenShift Service Mesh 是一套在 OpenShift 上安装部署、跟踪监控 Istio 运行环境的实现。红帽在 2023 年底推出了技术预览版的 OpenShift Service Mesh 3,它和目前的 OpenShif…

RERCS系统开发实战案例-Part01 快速启动面板创建新功能启动面板

需求背景:RERCS系统设计合同应收付比例调整界面,目的为合同与应收付款调整关联,保证数据的完整性与准确性。 步骤① 参数化快速启动板事务码 :LPD_CUST_PARAM 选择对应的角色与实例 可以看到系统中的快速启动面板菜单中已有的功能…

顶顶通呼叫中心中间件-asr录音路径修改(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-asr录音路径修改(mod_cti基于FreeSWITCH) 录音路径模板。如果不是绝对路径,会把这个路径追加到FreeSWITCH的recordings后面。支持变量,比如日期 ${strftime(%Y-%m-%d)}。最后一个录音文件路径会保存到变量 ${cti_asr_last_record_…

最大矩形问题

柱状图中最大的矩形 题目 分析 矩形的面积等于宽乘以高,因此只要能确定每个矩形的宽和高,就能计算它的面积。如果直方图中一个矩形从下标为 i 的柱子开始,到下标为 j 的柱子结束,那么这两根柱子之间的矩形(含两端的柱…

Day45 代码随想录打卡|二叉树篇---路径总和

题目(leecode T112): 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;…

Docker搭建ELKF日志分析系统

Docker搭建ELKF日志分析系统 文章目录 Docker搭建ELKF日志分析系统资源列表基础环境一、系统环境准备1.1、创建所需的映射目录1.2、修改系统参数1.3、单击创建elk-kgc网络桥接 二、基于Dockerfile构建Elasticsearch镜像2.1、创建Elasticsearch工作目录2.2、上传资源到指定工作路…

临床应用的深度学习在视网膜疾病的诊断和转诊中的应用| 文献速递-视觉通用模型与疾病诊断

Title 题目 Clinically applicable deep learning for diagnosis and referral in retinal disease 临床应用的深度学习在视网膜疾病的诊断和转诊中的应用 01 文献速递介绍 诊断成像的数量和复杂性正在以比人类专家可用性更快的速度增加。人工智能在分类一些常见疾病的二…

nvm,node不是内部命令,npm版本不支持问题(曾经安装过nodejs)

nvm安装后nvm -v有效,node指令无效 环境变量配置无问题 推荐方案 下载你需要的node版本 Index of /dist/ (nodejs.org) 下载后解压到你的nvm存储版本的位置 cmd进入切换你的使用版本(此时你的nodejs是从网上下载的,npm文件是存在的&…

rtl8723DU移植 android4.4 4418 (第二部分蓝牙部分)

使用的代码: HMI (8723bu)源码 567_RTL8723DU_WiFi_linux_v5.6.5.3_35502_COEX20181130-2e2e.20191025.zip 由于之前写的所有笔记没有保存,这里只能是部分。 0、 前置知识 1 、kernel 的移植 2、hardwire的移植 将 驱动中的 h…

一脉阳光上市圆梦:销售成本高昂,两大创始人的行贿往事与屡屡被罚

《港湾商业观察》施子夫 2024年6月7日,江西一脉阳光集团股份有限公司(以下简称,一脉阳光)将正式在港交所主板挂牌上市(以下简称,一脉阳光;股票代码02522.HK),公司预计发…

106、python-第四阶段-3-设计模式-单例模式

不是单例类,如下: class StrTools():pass str1StrTools() str2StrTools() print(str1) print(str2) 运用单例,先创建一个test.py class StrTools():pass str1StrTools()然后创建一个hello.py,在这个文件中引用test.py中的对象&a…

QSqlDatabase、QSqlQuery、QSqlRecord、Sqlite用法

使用QSqlDatabase、QSqlQuery、QSqlRecord、Sqlite数据库实现一个简单的界面查询 1. 创建Sqlite数据库,表 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include "QSqlDatabase" #include "QSqlQuery&q…

计算机组成结构—IO接口(IO控制器)

目录 一、I/O 接口的功能 二、I/O 接口的基本结构 1. 总线连接的数据通路 2. I/O 接口的基本组成 三、I/O 端口及其编址 1. 统一编址 2. 不统一编址 四、I/O 接口的类型 两个系统或两个部件之间的交接部分,一般就称为 接口。接口可以是硬件上两种设备间的连…

Wakeup Source框架设计与实现

Wakeup Source 为系统组件提供了投票机制,以便低功耗子系统判断当前是否可以进入休眠。 Wakeup Source(后简称:WS) 模块可与内核中的其他模块或者上层服务交互,并最终体现在对睡眠锁的控制上。 1. 模块功能说明 WS的处理逻辑基本上是围绕 com…

哈希经典题目(C++)

文章目录 前言一、两数之和1.题目解析2.算法原理3.代码编写 二、判定是否互为字符重排1.题目解析2.算法原理3.代码编写 三、 字⺟异位词分组1.题目解析2.算法原理3.代码编写 总结 前言 哈希表是一个存储数据的容器,我们如果想要快速查找某个元素,就可以…