配置管理

Pod的配置管理

一笑奈何 提交于 2020-04-05 14:57:56
在Kubernetes中,资源对象和信息都存储在Etcd中,但是对于某一个服务的配置该如何管理了? 当然你可以在镜像打包的时候,将配置文件直接配置打包到镜像里面,这样确实可以达到目的。 但是大部分的容器是在运行之后需要改配置,每次都重新打包确实会是一个不小的工作。 当然可以通过文件映射或者环境变量来改变容器的配置,这是稍微比较不错的做法。 但是如果在大规模集群中,容器的配置管理将是一个非常麻烦的事项。 Kubernetes从1.2开始提供一种统一的应用配置管理方案——ConfigMap。 ConfigMap将应用所需的配置信息与程序进行分离,这样配置信息可以更好的被多次复用。 在Kubernetes中,配置信息会被封装成一个个资源资源对象,这样便于集中管理和使用。 如果你需要修改配置,那么只需要修改ConfigMap的引用对象或者直接修改ConfigMao资源对象的配置就可以了。 1.ConfigMap ConfigMap供容器使用的典型用法如下: (1)生成为容器内的环境变量 (2)以Volume的形式挂载为容器内部的文件或者目录 ConfigMap以一个或多个key:value的形式保存在Kubernetes系统中供应用使用, 既可以用于表示一个变量的值(例如apploglevel=info),也可以用于表示一个一个完整配置文件的内容(server.xml=<?xml>)。 2

SaltStack部署服务及配置管理apache+php-第二篇

倾然丶 夕夏残阳落幕 提交于 2020-03-31 07:59:38
实验目标 1.使用SaltStack部署apache和php, 2.使用salt管理httpd.conf配置文件配置访问info.php使用账户密码 3.在salt里面增加对conf.d目录进行配置管理 4.如何使用salt在追加文件内容 5.学会如何使用 watch require unless 实现步骤 修改master的配置文件,指定base环境路径,base环境是必须指定的 [root@linux-node1 base]# grep -9 ^file_roots /etc/salt/master |grep -v ^# file_roots: base: - /srv/salt/base dev: - /srv/salt/dev test: - /srv/salt/test prod: - /srv/salt/prod 创建目录 [root@linux-node1 base]# mkdir -p /srv/salt/{base,dev,test,prod} [root@linux-node1 base]# tree /srv/salt/ /srv/salt/ ├── base ├── dev ├── prod └── test 重启master [root@linux-node1 base]# systemctl restart salt-master

DevOps工程师面试必备33问

牧云@^-^@ 提交于 2020-03-28 16:18:45
DevOps面试问题 01 您能告诉我们DevOps和Agile(敏捷)之间的根本区别吗? 答:尽管DevOps与敏捷方法(这是最流行的SDLC[Software Development Life Cycle]方法之一)有一些相似之处,但两者在软件开发方面都是根本不同的方法。以下是两者之间的各种基本差异: 敏捷方法 敏捷方法适用于敏捷中的开发同时敏捷方法适用于DevOps中的开发和操作。 实践和流程 敏捷涉及敏捷Scrum和敏捷看板等实践,而DevOps涉及CD(持续交付),CI(持续集成)和CT(持续测试)等流程。 优先级 敏捷优先考虑及时性,而DevOps优先考虑及时性和质量。 发布周期 DevOps提供较小的发布周期并提供即时反馈,而敏捷仅提供较小的发布周期而没有立即反馈。 反馈源 敏捷依赖于客户的反馈,而DevOps涉及到自身(监控工具)的反馈。 工作范围 对于敏捷,工作范围仅是敏捷,而对于DevOps,这是敏捷和对自动化的需求。 02 为什么我们需要DevOps? 答:如今,很多组织或企业正试图通过一系列的发布小的特性传递给客户,而不是发布大的特性集。这样做有几个好处,包括更好的软件质量和快速的客户反馈,所有这些好处导致更高的客户满意度,这是任何产品开发项目的最重要目标。为此,公司需要: 增加部署频率 缩短修复时间 降低新版本的失败率 万一新版本崩溃

应用配置管理Secret&ConfigMap

柔情痞子 提交于 2020-03-09 10:08:06
1.Secret 常见的应用配置方式 镜像 配置中心 配置文件 共享存储 放到git 仓库 配置文件分类: 敏感信息 非敏感信息 如账号密码 服务器地址 Secret再k8s中 的使用方式 加密数据并存放Etcd中,让Pod的容器以挂载Volume方式访问。 应用场景:凭据 Pod使用secret两种方式: 变量注入 挂载 例:现在一对 用户名 密码 pod在运行的时候需要加载 注入到pod 中 假如现在 用户名:admin 密码:password echo -n "admin" |base64 YWRtaW4= echo -n "password" |base64 cGFzc3dvcmQ= passwdAndusername-secret.yaml apiVersion: v1 kind: Secret metadata: name: mysecret type: Opaque data: username: YWRtaW4= password: cGFzc3dvcmQ= pod怎样注入secret中的变量 secret-var-use.yaml apiVersion: v1 kind: Pod metadata: name: mypod spec: containers: - name: nginx image: nginx env: - name: SECRET

实现远程配置管理—Config组件(Spring Cloud系列七)

妖精的绣舞 提交于 2020-02-27 09:51:44
第一步:在远程Git仓库创建配置信息 我在码云上创建一个项目叫 config-demo 新建一个分支,分支名为config-demo,起点是Master 然后在config-demo分指下创建项目的配置文件 我这里创建的配置文件叫dm-gateway-zuul-dev.properties,因为用于测试的Config Client项目名叫dm-gateway-zuul 配置文件内容只有一个token=false 为了更好区别,在master分支下也同上一样创建了一个配置文件,为了区分这里token设为true 第二步:创建Config Server项目加载远程配置 1.首先创建项目 一直next直到finish 2.修改pom文件 只需要修改springboot和springcloud版本,和注意下引入的组件就可以了 3.配置application配置文件 uri是项目的地址 search-paths是保存配置文件的文件夹 注意下端口号避免冲突 4.application启动类增加两个注解 加入注解@EnableDiscoveryClient和@EnableConfigServer 启动项目测试(只需启动一个项目就可以测试到) 通过测试可以看出访问的格式是:localhost:端口/项目名/版本/分支名 如果访问的分支是master分支的则后面不需要加上分支名

Nginx的安装、部署和配置管理

烂漫一生 提交于 2020-02-24 13:52:19
HTTP HTTP协议是超文本传输协议,从服务器传输超文本到本地浏览器的协议。 HTTPS 协议:可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。 SSL协议分为两层:SSL握手协议(相当于连接)、SSL记录协议(相当于通信) 工作原理: 浏览器作为HTTP客户端通过url向HTTP服务端(web服务器)发送所有请求。 常见的web服务器:nginx、apache、IIS等。 端口号默认为80 HTTP使用统一的资源标识符(URI)来传输数据和建立连接。 HTTP1.0和HTTP1.1的主要区别如下: 1、缓存处理:1.1添加更多的缓存控制策略(如:Entity tag,If-Match) 2、网络连接的优化:1.1支持断点续传 3、错误状态码的增多:1.1新增了24个错误状态响应码,丰富的错误码更加明确各个状态 4、Host头处理:支持Host头域,不在以IP为请求方标志 5、长连接:减少了建立和关闭连接的消耗和延迟。 HTTP1.1和HTTP2.0的主要区别: 1、新的传输格式:2.0使用二进制格式,1.0依然使用基于文本格式 2、多路复用:连接共享,不同的request可以使用同一个连接传输(最后根据每个request上的id号组合成正常的请求) 3

Maven - 配置管理

穿精又带淫゛_ 提交于 2020-02-09 17:06:13
Maven   Maven是一款自动化构建工具,专注服务于Java平台的项目构建和依赖管理。Project Object Model:项目对象模型。将Java工程的相关信息封装为对象形式作为便于操作和管理的模型。 Maven作用    1 添加第三方jar包:使用 Maven 后每个 jar 包只需在本地仓库中保存一份   2 jar包之间的依赖关系:Maven 可自动的将当前 jar 包所依赖的其他所有jar包全部导入   3 处理jar包之间的冲突:Maven中内置了两条依赖原则:最短路径者优先和先声明者优先。可以自动的处理jar包之间的冲突问题   4 获取第三方jar包:Maven 会自动从中央仓库下载,并同时下载这个 jar 包所依赖的其他 jar 包——规范、完整、准确!一次性解决所有问题   5 将项目拆分成多个工程模块:Maven 的依赖管理机制,可将项目拆分成多个工程协同开发   6 实现项目的分布式部署:将项目拆分成多个模块后,每个模块可运行在独立的服务器。我们称之为分布式部署   核心概念     ①POM  ②约定的目录结构  ③坐标  ④依赖管理  ⑤仓库管理  ⑥生命周期  ⑦插件和目标  ⑧继承  ⑨聚合   配置本地仓库      在 Maven 的核心配置文件:D:\apache-maven-3.5.0\conf\ settings.xml

系统集成项目管理工程师备考资料(口袋应试第二版)19

无人久伴 提交于 2020-01-22 14:39:22
15.文档/配置管理 口袋应试:文档、配置管理一章中,因为每年出题的分数占比不高,所以出题点比较集中。文档管理中主要是:文档的种类、文档的质量等级;配置管理中出题点主要集中在15.2.1这一节,其中包括:配置项状态、配置项版本号(版本号要会看会区分)、配置库的概念和类型。其它内容大家根据个人时间和精力去复习即可。 15.1信息系统项目相关信息(文档)及其管理 15.1.1信息系统项目相关信息(文档) 2.信息系统项目相关信息(文档)种类 软件文档分为三类:开发文档、产品文档、管理文档。 (1) 开发文档描述开发过程本身,基本的开发文档是: ●可行性研究报告和项目任务书; ●需求规格说明 ●功能规格说明 ●设计规格说明,包括程序和数据规格说明; ●开发计划 ●软件集成和测试计划 ●质量保证计划; ●安全和测试信息。 (2) 产品文档描述开发过程的产物,基本的产品文档包括: ●培训手册; ●参考手册和用户指南 ●软件支持手册 ●产品手册和信息广告 (3) 管理文档记录项目管理的信息,例如: ●开发过程的每个阶段的进度和进度变更的记录 ●软件变更情况的记录 ●开发团队的职责定义。 第二版P491@15.1.1@15.1.1 出题概率:★★★★★ 140163、140363、160163、160361、180361 文档的4个质量等级 文档的质量可以分为四级: (1) 最低限度文档

python---CMDB配置管理数据库

一曲冷凌霜 提交于 2019-12-27 08:30:54
前戏:项目目的 是一个运维自动化管理项目:   为了减少人工干预,降低人员成本   ---资产管理   --操作管理 避免人员直接操作服务器,使用后台去统一操作 一:实现方式 (一)Agent基于shell命令实现(在服务器去上安装Agent,在服务器本机定时自动去获取信息,发送到数据库,然后后台获取数据进行处理) 注意:一般我们不会直接将数据直接传递到数据库,会将数据传递到API接口先进行处理,过滤,然后才会发送到数据库。 注意:数据是由服务器agent主动发送至API 实现方案: 本地执行cmd命令。 方法一:os.system("命令") 不可以返回数据 方法二:subprocess模块,使用进程执行命令,可以获取到数据Popen("命令"),进程.stdout.read()<py2>或者直接getoutput("命令")<py3> def agent(self,cmd): import subprocess try: ret = subprocess.getoutput(cmd) except AttributeError: sub = subprocess.Popen(args=cmd,shell=True,stdout=subprocess.PIPE) sub.wait() ret = sub.stdout.read() return ret python实现agent

Step by Step-构建自己的ORM系列-配置管理层

ぐ巨炮叔叔 提交于 2019-12-22 17:19:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、开篇 距离上篇《 Step by Step-构建自己的ORM系列-数据访问层 》的时间间隔的太久了,很对不住大家啊,主要是因为在写《 设计模式-系列索引 系列》必须提前先写完,才能 继续这个系列,当然我也在写这几个系列的过程中,对ORM这个系列中的原来的实现的想法有了新的认识和改进,当然这些都不是说是很先进的思想或者认识,也可能是大家见过 的思路吧,希望后面我能在写设计模式系列的过程中,穿插讲解ORM系列,当然我的这个构建的系列,也只能说是很简易的,自己平时开发个小应用工具或者什么的,可能用他, 因为是自己开发的嘛,毕竟使用起来还是比较顺手的!符合自己的操作习惯嘛。 当然我写这个系列的过程中,也会有自己认识偏激的地方,或者思路不正确的地方,还请大伙多多指出和批评。我也是在我目前的项目中学习到了很多的宝贵的经验,其实 我们应该能看到ORM给我们提供的方便和不便之处,我们取其精华,剔除糟粕,不过这真的很难。这块可能还需要大牛们多多指点。 对于上篇文章中,我们提到过几个问题,然后经过我与不少朋友之间的交流,得出了一些不错的意见和想法,这里分享一下总结后的内容。 1、提供一个通用的查询方法,可以动态的返回列。 对于这个问题呢,我们经过商讨考虑了最后最可能的情况如下