应用配置管理

一、Pod 配置管理

可变配置用 ConfigMap;

敏感信息用 Secret;

身份认证用 ServiceAccount 这几个独立的资源来实现的;

资源配置用 Resources;

安全管控用 SecurityContext;

前置校验用 InitContainers 这几个在 spec 里面加的字段,来实现的这些配置管理。

二、ConfigMap

1、介绍

ConfigMap 主要是管理可变配置信息,比如配置文件,环境变量,或者命令行参数。

它的好处在于它可以让可变配置和容器镜像进行解耦,保证了容器的可移植性。

2、创建

kubectl create configmap [NAME] [DATA]

用 kubectl 这个命令来创建,它带的参数主要有两个:一个是指定 name,第二个是 DATA。其中 DATA 可以通过指定文件或者指定目录,以及直接指定键值对。

3、使用

ConfigMap主要被Pod使用。

第一种是环境变量。通过 valueFrom 下的 ConfigMapKeyRef 这个字段,name 指定 ConfigMap 名,key 是 ConfigMap.data 里面的 key。

第二个是命令行参数。

最后一个是通过 volume 挂载的方式直接挂到容器的某一个目录下面去。

4、注意要点

① ConfigMap 文件的大小。虽然说 ConfigMap 文件没有大小限制,但是在 ETCD 里面,数据的写入是有大小限制的,现在是限制在 1MB 以内。

第二个注意点是 pod 引入 ConfigMap 的时候,必须是相同的 Namespace 中的 ConfigMap。

第三个是 pod 引用的 ConfigMap。假如这个 ConfigMap 不存在,那么这个 pod 是无法创建成功的,这也表示在创建 pod 前,必须先把要引用的 ConfigMap 创建好。

三、secret

1、介绍

Secret 是一个主要用来存储密码 token 等一些敏感信息的资源对象。

2、创建

有两种创建方式:

系统创建:K8s 为每一个 namespace 的默认用户(default ServiceAccount)创建 Secret。

用户手动创建: kubectl create secret generic [NAME] [DATA] [TYPE],DATA 可以指定文件/键值对,TYPE 默认为Opaque。

3、使用

Secret 主要是被 pod 来使用,一般是通过 volume 形式挂载到容器里指定的目录,然后容器里的业务进程再到目录下读取 Secret 来进行使用。

四、ServiceAccount

Pod 创建时 Admission Controller 会根据指定的 ServiceAccount (默认为default)把对应的 Secret 挂载到容器中固定的目录下。

当 Pod 访问集群时,可以默认利用 Secret 其中的 token 文件来认证 Pod 的身份。

五、Resource

1、介绍

Resource 容器资源配置管理。目前内部支持类型有三种:CPU、内存,以及临时存储。资源配置主要分成 request 和 limit 两种类型,一个是需要的数量,一个是资源的界限。CPU、内存以及临时存储都是在 container 下的 Resource 字段里进行一个声明。

2、Pod 服务质量 (QoS) 配置

根据 CPU 对容器内存资源的需求,对 pod 的服务质量进行一个分类,分别是 Guaranteed、Burstable 和 BestEffort。

① Guaranteed :pod 里面每个容器都必须有内存和 CPU 的 request 以及 limit 的一个声明,且 request 和 limit 必须是一样的,这就是 Guaranteed;

② Burstable:Burstable 至少有一个容器存在内存和 CPU 的一个 request;

③ BestEffort:只要不是 Guaranteed 和 Burstable,那就是 BestEffort。

六、SecurityContext

SecurityContext 主要是用于限制容器的一个行为,它能保证系统和其他容器的安全

SecurityContext 主要分为三个级别:

第一个是容器级别,仅对容器生效;

第二个是 pod 级别,对 pod 里所有容器生效;

第三个是集群级别,就是 PSP,对集群内所有 pod 生效。

七、InitContainer

1InitContainer 和普通 container 的区别

① InitContainer 首先会比普通 container 先启动,并且直到所有的 InitContainer 执行成功后,普通 container 才会被启动;

② InitContainer 之间是按定义的次序去启动执行的,执行成功一个之后再执行第二个,而普通的 container 是并发启动的;

③ InitContainer 执行成功后就结束退出,而普通容器可能会一直在执行。

2、InitContainer 的用途

InitContainer 主要为普通 container 服务,比如为普通 container 启动之前做一个初始化,或者为它准备一些配置文件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在VSCode中新配置一个ros项目

如何从零开始配置一个ros项目 预先准备初始化ros工程运行hello_ros进行第一个示例进行编译测试 预先准备 首先要在vscode中安装(必须安装的):ros,c,cmake,cmake tools(补全camkelist文件&#…

Mcal篇 配置Dio模块输出

1、打开EB,新建工程 AUTOSAR version 4.0.3 2、导入Mcu 、Dio、Port三个模块 发现 verify 选项是灰色,重启EB verify,0 Errors 0 Warnings 验证OK 3、配置 clock 时钟 4、配置Dio 目标是 配置15.0~15.3 四个引脚 输出 改为DioPort_…

第2.5章 StarRocks表设计——行列混存表

注:本篇文章阐述的是StarRocks- 3.2.3版本的行列混存表 一、概述 1.1 背景 StarRocks 基于列存格式引擎构建,在高并发场景,用户希望从系统中获取整行数据。当表宽时,列存格式将放大随机IO和读写。自3.2.3开始,StarRo…

DDS通信协议

DDS(Data Distribution Service)是一套通信协议和 API 标准;它提供了以数据为中心的连接服务,基于发布者-订阅者模型。这是一套中间件,它提供介于操作系统和应用程序之间的功能,使得组件之间可以互相通信。…

Qt Creator如何快速添加函数说明

/***************************************************************** *函数名称:Name *功能描述:详细描述 *参数说明:参数说明 *返回值: 返回值说明 ******************************************************************/

图像生成评价指标:Inception Score和 FID 的定义,区别,联系。

IS(Inception Score)和FID(Frechet Inception Distance score)的定义,区别,联系: IS(Inception Score) 定义: IS基于Google的预训练网络Inception Net-V3。…

【服务发现--ingress】

1、ingress介绍 Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源所定义的规则来控制。 Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。 Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟…

贪心算法---前端问题

1、贪心算法—只关注于当前阶段的局部最优解,希望通过一系列的局部最优解来推出全局最优----但是有的时候每个阶段的局部最优之和并不是全局最优 例如假设你需要找给客户 n 元钱的零钱,而你手上只有若干种面额的硬币,如 1 元、5 元、10 元、50 元和 100…

【变压器故障诊断分类及预测】基于GRNN神经网络

课题名称:基于GRNN神经网络的变压器故障诊断分类及预测 版本日期:2024-02-10 运行方式:直接运行GRNN0507.m文件 代码获取方式:私信博主或QQ:491052175 模型描述: 对变压器油中溶解气体进行分析是变压器…

JavaAPI常用类01

目录 概述 Object类 Object类_toString() 代码展示 重写toString()方法前后输出 Object类_equals() 代码展示 重写equals()方法前后输出对比 Arrays类 equals()方法 Binary Search(二分查找) copyOf()方法 sort()方法 了解sort()方法 进阶…

在使用nginx的时候快速测试配置文件,并重新启动

小技巧 Nginx修改配置文件后需要重新启动,常规操作是启动在任务管理器中关闭程序然后再次双击nginx.exe启动,但是使用命令行就可以快速的完成操作。 将cmd路径切换到nginx的安装路径 修改完成配置文件后 使用 nginx -t校验nginx 的配置文件是否出错 …

Python入门必学:reverse()和reversed()的区别

Python入门必学:reverse()和reversed()的区别 📅2024年02月25日 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程…

Cover和contain属性

一.背景的盒子 代码&#xff1a; <body><div class"box"></div><style>.box {width: 500px;height: 500px;border: 1px solid #ccc;background: url(./20191017095131790.png) no-repeat;}</style></body> 盒子的宽度和高度是…

SpringBootRest服务调用

目录 RestTemplate 依赖配置 自定义RestTemplate webCilent 依赖配置 自定义webCilent springboot中有两种方式实现Rest远程服务调用&#xff0c;分别是RestTemplate与webCilent。下面分别介绍一下这两种方式。 RestTemplate 依赖配置 RestTemplate是Spring Framework提供的…

不会做UI自动化测试?一起设计框架再实践吧

目的 相信做过测试的同学都听说过自动化测试&#xff0c;而UI自动化无论何时对测试来说都是比较吸引人的存在。 相较于接口自动化来说它可以最大程度的模拟真实用户的日常操作与特定业务场景的模拟&#xff0c;那么存在即合理&#xff0c;自动化UI测试自然也是广大测试同学职…

2.23日学习打卡----初学Nginx(二)

2.23日学习打卡 目录: 2.23日学习打卡一. Nginx 虚拟主机虚拟主机的分类Nginx支持三种类型的虚拟主机配置Nginx虚拟主机单网卡多IP配置Nginx虚拟主机_基于域名虚拟主机配置Nginx虚拟主机基于多端口的配置4 二. Nginx 核心指令root和alias指令的区别return指令rewrite指令rewrit…

Vue | (六)使用Vue脚手架(下)| 尚硅谷Vue2.0+Vue3.0全套教程

文章目录 &#x1f4da;Vue 中的自定义事件&#x1f407;使用方法&#x1f407;案例练习&#x1f407;TodoList案例优化 &#x1f4da;全局事件总线&#x1f407;使用方法&#x1f407;案例练习&#x1f407;TodoList案例优化 &#x1f4da;消息订阅与发布&#x1f407;使用方法…

RCE (Remote ????? execution) --->CTF

看这个标题就知道今天的内容不简单&#xff01;&#xff01;&#xff01;&#xff01; 那么就来讲一下我们的RCE吧 目录 ​编辑 1. &&#xff1f; |&#xff1f; ||&#xff1f; &&&#xff1f; 2.PHP命令执行函数&& ||"" 1."" &…

USB Micro引脚及相应原理图绘制

前言&#xff1a;博主为实现绘制USB Micro输入口原理图&#xff0c;首先在 GD32F103XX的数据手册中找到引脚的功能描述&#xff0c;找到USBDM与USBDP功能&#xff0c;分别为引脚PA11与引脚PA12。然后进行相应的原理图绘制。 * USBDM。USBDM 引脚是与通用串行总线 (Universal Se…

java数据结构与算法刷题-----LeetCode106. 从中序与后序遍历序列构造二叉树

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 1. 法一&#xff1a;递归 解题思路&#xff1a;时间复杂度O(n),空间复杂度…