应用配置管理

一、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 启动之前做一个初始化,或者为它准备一些配置文件。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

吴恩达deeplearning.ai:sigmoid函数的替代方案以及激活函数的选择

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 文章目录 引入——改进下需求预测模型ReLU函数(整流线性单元 rectified linear unit)线性激活函数(linear activation function)激活函数的选择实现方式为什么需要激活函数 到现在…

云尚办公-0.3.0

5. controller层 import pers.beiluo.yunshangoffice.model.system.SysRole; import pers.beiluo.yunshangoffice.service.SysRoleService;import java.util.List;//RestController:1.该类是控制器;2.方法返回值会被写进响应报文的报文体,而…

深入理解指针2

各位小伙伴们,我们继续来学习指针,指针和结构体以及动态内存管理对后面的数据结构学习有非常大的帮助,所有我们一定要把这些知识点学会。OK,正式进入学习之旅吧 1.数组名的理解 在上⼀个章节我们在使⽤指针访问数组的内容时,有这…

Java 面向对象进阶 18 JDK8、9开始新增的方法;接口的应用;适配器设计模式;内部类(黑马)

一、JDK8开始新增的方法 默认方法不是抽象方法,所以不强制被重写: 但是如果被重写,就要去掉default关键字: public可以省略,但是default不可以省略: public是灰色的,代表可以省略 但是default是…

Go编译到linux运行出现 cannot execute binary file

1.初学Go就在windows上写了个"Hello,World!",在windown上编译了一下,生成了可执行文件。运行无问题 go build text.go .\text.exe Hello,World!2.但是按照网上的教程进行生成linux的可执行文件时出现报错 set CGO_ENABLED0 set GOOSlinux set GOARCHam…

Linux之安装Nginx、前后端分离项目部署

目录 一、安装Nginx 1.1先一键安装4个依赖 1.2下载并解压安装包 1.3安装nginx,一般我们在nginx都是要安装ssl证书的 1.4 启动nginx服务 1.5开放80端口 1.6配置nginx自启动 1.7修改/etc/rc.d/rc/local的权限 二、多个tomcat负载加后端部署 2.1创建多个tomca…

使用Node.js和Vue.js构建全栈Web应用

随着互联网的迅速发展,Web应用程序的开发变得越来越复杂和多样化。为了满足用户不断变化的需求,全栈开发已成为一个备受关注的话题。在本篇博客中,我将介绍如何使用Node.js和Vue.js来构建全栈Web应用。 Node.js是一个基于Chrome V8引擎的Jav…

【基于Ubuntu20.04的Autoware.universe安装过程】方案一:虚拟机 | 详细记录 | Vmware | 全过程图文 by.Akaxi

目录 一、Autoware.universe背景 二、虚拟机配置 三、Ubuntu20.04安装 四、GPU显卡安装 五、ROS2-Galactic安装 六、ROS2-dev-tools安装 七、rmw-implementation安装 八、pacmod安装 九、autoware-core安装 十、autoware universe dependencies安装 十一、安装pre-c…

SQLServer sp_help使用方法

给大家介绍一个在SQLServer中非常实用的一个存储过程,在SQL Server中,sp_help 存储过程用于显示有关数据库对象(如表、视图或存储过程)的信息。它提供有关指定对象的结构和属性的详细信息。使用 sp_help 的语法如下: …

机器学习.线性回归

斯塔1和2是权重项,斯塔0是偏置项,在训练过程中为了使得训练结果更加精确而做的微调,不是一个大范围的因素,核心影响因素是权重项 为了完成矩阵的运算,在斯塔0后面乘x0,使得满足矩阵的转换,所以在…

一. demo

1. 舞台-场景-控件 import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.stage.Stage;import java.util.Arrays;public class Main e…

【Spring】事务总结

目录 1. 什么是事务? 2. 事务的特性(ACID)了解么? 3. 详谈 Spring 对事务的支持 3.1. Spring 支持两种方式的事务管理 1).编程式事务管理 2)声明式事务管理 3.2. Spring 事务管理接口介绍 3.2.1. PlatformTransactionManager:事务管理…

leetcode-hot100-双指针

剪枝,减少不必要的计算 283. 移动零 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出: [0] 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 第一印象:使用一个辅助数组,同时以…

HDL FPGA 学习 - FPGA基本要素,开发流程,Verilog语法和规范、编写技巧

目录 Altera FPGA 基本要素 FPGA 开发流程和适用范围 设计和实施规范 顶层设计的要点 Verilog HDL 语法规范 编写规范 设计技巧 编辑整理 by Staok,始于 2021.2 且无终稿。转载请注明作者及出处。整理不易,请多支持。 本文件是“瞰百易”计划的…

【大数据】Flink 内存管理(四):TaskManager 内存分配(实战篇)

《Flink 内存管理》系列(已完结),共包含以下 4 篇文章: Flink 内存管理(一):设置 Flink 进程内存Flink 内存管理(二):JobManager 内存分配(含实际…

什么是媒体发稿?发稿媒体分类及发稿流程

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 媒体发稿是一种企业推广和宣传的手段,通过媒体渠道传递企业信息和形象。 媒体发稿的含义在于,当企业有新闻、事件或其他消息需要对外公布时,可以选择…

TABR: TABULAR DEEP LEARNING MEETS NEAREST NEIGHBORS IN 2023 阅读笔记

TABR: TABULAR DEEP LEARNING MEETS NEAREST NEIGHBORS IN 2023 论文地址:https://arxiv.org/abs/2307.14338 源代码:https://github.com/yandex-research/tabular-dl-tabr 摘要 针对表格数据问题(例如分类、回归)的深度学习&a…

阿里云-系统盘-磁盘扩容

阿里云系统磁盘扩容 之前是测试环境磁盘用的默认的有 40G,后面升级到正式的 磁盘怕不够用打算升级到 100G, 系统镜像: Alibaba Cloud Linux 3.2104 LTS 64 位 磁盘 ESSD 40G 升级步骤: 扩容与创建快照 在阿里云后台首先去扩容…

HTML+CSS+JS:轮播组件

效果演示 一个具有动画效果的卡片元素和一个注册表单&#xff0c;背景为渐变色&#xff0c;整体布局简洁美观。 Code <div class"card" style"--d:-1;"><div class"content"><div class"img"><img src"./i…

stream流-> 判定 + 过滤 + 收集

List<HotArticleVo> hotArticleVos hotArticleVoList .stream() .filter(x -> x.getChannelId().equals(wmChannel.getId())).collect(Collectors.toList()); 使用Java 8中的Stream API对一个名为hotArticleVoList的列表进行过滤操作&#xff0c;筛选出符合指定条件…