企业项目
文章平均质量分 70
Lee木川
这个作者很懒,什么都没留下…
展开
-
kubernetes高可用集群
一 Kubernetes的高可用Kubernetes的高可用主要指的是控制平面的高可用,简单说,就是有多套Master节点组件和Etcd组件,工作节点通过负载均衡连接到各Master。HA有两种做法,一种是将etcd与Master节点组件混布在一起:另外一种方式是,使用独立的Etcd集群,不与Master节点混布两种方式的相同之处在于都提供了控制平面的冗余,实现了集群高可以用,区别在于: Etcd混布方式:所需机器资源少 部署简单,利于管理 容易进行横向扩展风险大,一台宿主机挂了,maste原创 2021-08-13 16:28:37 · 717 阅读 · 0 评论 -
kubernetes资源监控(五)——helm界面管理部署
一 部署kubeapps应用,为Helm提供web UI界面管理1 镜像准备[root@server1 ~]# docker pull kubeapps/dashboardUsing default tag: latestlatest: Pulling from kubeapps/dashboard2e4c6c15aa52: Already exists 045ddfd6348a: Pull complete 0b3ee49f6428: Pull complete 546ec996605b:原创 2021-08-07 00:29:54 · 445 阅读 · 0 评论 -
Prometheus监控部署
一 简介1 prometheus的特点:1. 多维的数据模型(基于时间序列的Key、Value键值对)2. 灵活的查询和聚合语言PromQL3. 提供本地存储和分布式存储4. 通过基于HTTP的Pull模型采集时间序列数据5. 可利用Pushgateway(Prometheus的可选中间件)实现Push模式6. 可通过动态服务发现或静态配置发现目标机器7. 支持多种图表和数据大盘2 prometheus的组件:1. Prometheus server,负责拉取、存储时间序原创 2021-08-07 00:15:10 · 280 阅读 · 0 评论 -
python项目实战之CMDB自动化资产扫描
一 项目介绍本项目通过KVM虚拟化搭建Linux系统集群,使用 Ansible实现Linux集群下的批量部署与自动化管理,实现Web形式的自动化运维系统,集中批量控制服务器, 最终实现能支撑1000台实例的环境提供管理和自动化任务, 提高运维工程师的工作质量和效率。 项目基于HTTP实现自动化任务接受和响应接口设计,基于MySQL用作的关系型数据存取, 基于Redis的任务锁机制和消息队列, 基于MongoDB的事件日志记录, 最终实现邮件通知功能、敏感数据加密功能、日志事件记录功能。这个文档主要目原创 2021-08-05 22:49:21 · 2491 阅读 · 4 评论 -
kubernetes资源监控(四)——Helm
一 初识Helm1.概述Helm是k8s的包管理工具,类似Linux系统常用的 apt、yum等包管理工具。使用helm可以简化k8s应用部署2.基本概念Chart:一个 Helm 包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 Kubernetes 集群中的服务定义,类似 Homebrew 中的 formula、APT 的 dpkg 或者 Yum 的 rpm 文件。Release:在 Kubernetes 集群上运行的 Chart 的一个实例。在同一个集群上,一个 Cha原创 2021-08-05 12:08:30 · 294 阅读 · 0 评论 -
kubernetes资源监控(三)——Dashboard部署,HPA实例
一 Dashboard部署Dashboard可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息。用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用的状态、执行故障排查任务以及管理 Kubernetes 各种资源。1 下载配置文件[root@foundation7 ~]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc5/aio/deploy/recommended.y原创 2021-08-04 13:22:20 · 523 阅读 · 0 评论 -
kubernetes资源监控(二)——Metrics-server部署
一 资源监控要扩展应用程序并提供可靠的服务,你需要了解应用程序在部署时的行为。 你可以通过检测容器检查 Kubernetes 集群中的应用程序性能, Pods, 服务 和整个集群的特征。 Kubernetes 在每个级别上提供有关应用程序资源使用情况的详细信息。 此信息使你可以评估应用程序的性能,以及在何处可以消除瓶颈以提高整体性能。在 Kubernetes 中,应用程序监控不依赖单个监控解决方案。 在新集群上,你可以使用资源度量或 完整度量管道来收集监视统计信息。二 资源度量管道资源指标管道提供了原创 2021-08-03 18:51:48 · 844 阅读 · 0 评论 -
kubernetes资源监控(一)——k8s容器资源限制
一 限制范围默认情况下, Kubernetes 集群上的容器运行使用的计算资源没有限制。 使用资源配额,集群管理员可以以名字空间为单位,限制其资源的使用与创建。 在命名空间中,一个 Pod 或 Container 最多能够使用命名空间的资源配额所定义的 CPU 和内存用量。 有人担心,一个 Pod 或 Container 会垄断所有可用的资源。 LimitRange 是在命名空间内限制资源分配(给多个 Pod 或 Container)的策略对象。一个 LimitRange(限制范围) 对象提供的限制能够原创 2021-08-03 16:50:35 · 1424 阅读 · 0 评论 -
kubernetes存储(四)——访问控制
一 Kubernetes API 访问控制用户使用 kubectl、客户端库或构造 REST 请求来访问 Kubernetes API。 人类用户和 Kubernetes 服务账户都可以被鉴权访问 API。 当请求到达 API 时,它会经历多个阶段,如下图所示:二 认证如上图步骤 1 所示,建立 TLS 后, HTTP 请求将进入认证(Authentication)步骤。 集群创建脚本或者集群管理员配置 API 服务器,使之运行一个或多个身份认证组件。 身份认证组件在认证节中有更详细的描述。原创 2021-08-03 12:09:27 · 549 阅读 · 0 评论 -
kubernetes存储(三)——kubernetes调度
一 简介在 Kubernetes 中,调度 是指将 Pod 放置到合适的 Node 上,然后对应 Node 上的 Kubelet 才能够运行这些 pod1 调度概览调度器通过 kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到 Node 上的 Pod。 调度器会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。 调度器会依据下文的调度原则来做出调度选择。2 kube-schedulerkube-scheduler 是 Kubernetes 集群的原创 2021-08-01 11:15:10 · 251 阅读 · 0 评论 -
kubernetes存储(二)——Volumes配置管理
一 简单说明1 卷Container 中的文件在磁盘上是临时存放的,这给 Container中运行的较重要的应用程序带来一些问题。问题之一是当容器崩溃时文件丢失。kubelet 会重新启动容器, 但容器会以干净的状态重启。第二个问题会在同一Pod 中运行多个容器并共享文件时出现。 Kubernetes (Volume) 这一抽象概念能够解决这两个问题。容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失,原创 2021-07-31 13:53:35 · 736 阅读 · 0 评论 -
kubernetes存储(一)——Configmap配置管理,Secret配置管理
一Configmap配置管理1 简介Configmap用于保存配置数据,以键值对形式存储。configMap 资源提供了向 Pod 注入配置数据的方法。旨在让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性。典型的使用场景:填充环境变量的值设置容器内的命令行参数填充卷的配置文件2 创建ConfigMap的方式使用字面值创建使用文件创建使用目录创建编写configmap的yaml文件创建2.1 使用字面值创建[root@server1 ~]# kubectl cr原创 2021-07-30 15:15:31 · 371 阅读 · 0 评论 -
Kubernetes集群部署(五)——ingress,ingress控制器
一 ingress1 ingressIngress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管1.1 说明节点(Node): Kubernetes 集群中其中一台工作机器,是集群的一部分。集群(Cluster): 一组运行由 Kubernetes 管理的容器化应用程序的节点。 在此示例和在大多数常见的 Kubernetes 部署环境中,集群中的节点都不在公共网络中。边缘路由器(Edge原创 2021-07-30 13:17:22 · 1627 阅读 · 0 评论 -
Kubernetes集群部署(四)——网络策略
一 网络策略如果你希望在 IP 地址或端口层面(OSI 第 3 层或第 4 层)控制网络流量, 则你可以考虑为集群中特定应用使用 Kubernetes 网络策略(NetworkPolicy)。 NetworkPolicy 是一种以应用为中心的结构,允许你设置如何允许 Pod 与网络上的各类网络“实体” (我们这里使用实体以避免过度使用诸如“端点”和“服务”这类常用术语, 这些术语在 Kubernetes 中有特定含义)通信。Pod 可以通信的 Pod 是通过如下三个标识符的组合来辩识的:其他被允许的原创 2021-07-29 11:04:51 · 484 阅读 · 0 评论 -
Kubernetes集群部署(三)——service,k8s网络通信,calico网络插件
一 service1 服务将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。使用 Kubernetes,你无需修改应用程序即可使用不熟悉的服务发现机制。 Kubernetes 为 Pods 提供自己的 IP 地址,并为一组 Pod 提供相同的 DNS 名, 并且可以在它们之间进行负载均衡。2 动机创建和销毁 Kubernetes Pod 以匹配集群状态。 Pod 是非永久性资源。 如果你使用 Deployment 来运行你的应用程序,则它可以动态创建和销毁 Pod。每个 Pod原创 2021-07-28 18:11:22 · 479 阅读 · 0 评论 -
Kubernetes集群部署(二)——Pod管理,资源清单,Pod生命周期,控制器
一 Pod管理1 pod概述Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程。一个Pod封装一个应用容器(也可以有多个容器),存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。Pod代表部署的一个单位:Kubernetes中单个应用的实例,它可能由单个容器或多个容器共享组成的资源。Kubernetes中的Pod使用可分两种主要方式:Pod中运行一个容器。“one-container-per-Pod”模式是Kubernetes最常原创 2021-07-28 10:31:09 · 256 阅读 · 0 评论 -
Kubernetes集群部署(一)——简单部署
一 Kubernetes简介在Docker 作为高级容器引擎快速发展的同时,在Google内部,容器技术已经应用了很多年,Borg系统运行管理着成千上万的容器应用。Kubernetes项目来源于Borg,可以说是集结了Borg设计思想的精华,并且吸收了Borg系统中的经验和教训。Kubernetes对计算资源进行了更高层次的抽象,通过将容器进行细致的组合,将最终的应用服务交给用户。Kubernetes的好处:隐藏资源管理和错误处理,用户仅需要关注应用的开发。服务高可用、高可原创 2021-07-24 18:55:48 · 613 阅读 · 2 评论 -
Docker入门之Docker Swarm
一 Docker Swarm简介Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令。Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具。Swarm可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。Docker Swarm 是一个为 IT 运维团队提供集群和调度能力的编排原创 2021-07-24 14:09:18 · 1032 阅读 · 1 评论 -
Docker入门之Docker Compose
一 Docker Compose简介微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知。Docker Compose是一种编排服务,基于pyhton语言实现,是一个用于在 Docker 上定义并运行复杂应用的工具,可以让用户在集群中部署分布式应用。用户可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。解决了容器与容器之间如何管理编排的问题。Docker原创 2021-07-23 17:55:10 · 221 阅读 · 2 评论 -
Docker入门之Docker Machine
一 Docker Machine简介Docker Machine 是 Docker 官方编排(Orchestration)项目之一,负责在多种平台上快速安装 Docker 环境。Docker Machine支持在常规Linux操作系统、虚拟化平台、openstack、公有云等不同环境下安装配置docker host。Docker Machine 项目基于 Go 语言实现,目前在 Github 上的维护地址: https://github.com/docker/machine/二 D.原创 2021-07-23 16:51:08 · 171 阅读 · 0 评论 -
Docker入门之Docker安全
一 理解Docker安全Docker容器的安全性,很大程度上依赖于Linux系统自身,评估Docker的安全性时,主要考虑以下几个方面:Linux内核的命名空间机制提供的容器隔离安全Linux控制组机制对容器资源的控制能力安全。Linux内核的能力机制所带来的操作权限安全Docker程序(特别是服务端)本身的抗攻击性。其他安全增强机制对容器安全性的影响命名空间隔离的安全:当docker run启动一个容器时,Docker将在后台为容器创建一个独立的命名空间。命...原创 2021-07-23 15:09:40 · 482 阅读 · 3 评论 -
Docker入门之Docker数据卷
一 Docker数据卷管理为什么要用数据卷docker分层文件系统性能差 生命周期与容器相同docker数据卷mount到主机中,绕开分层文件系统和主机磁盘性能相同,容器删除后依然保留仅限本地磁盘,不能随容器迁移docker提供了两种卷:bind mountdocker managed volume...原创 2021-07-23 11:09:57 · 245 阅读 · 3 评论 -
Docker入门之Docker网络
一 docker 网络模式docker的镜像是令人称道的地方,但网络功能还是相对薄弱的部分。docker安装后会自动创建3种网络:bridge、host、none[root@server1 ~]# docker network lsNETWORK ID NAME DRIVER SCOPE8bf13644a960 bridge bridge原创 2021-07-22 15:36:56 · 287 阅读 · 1 评论 -
Docker入门之docker私有仓库harbor的搭建
1 harbor简介Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装,它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm通过chart方式下载,管理,安装K8s插件,而chartmuseum可以提供存储chart数据的仓库。另外它还整合了两个开源的安全组件,一个是Notary,另一个是Clair,Notary类似于私有CA中心,而Clair则是容器安全扫原创 2021-07-21 15:08:17 · 243 阅读 · 1 评论 -
Docker入门之docker仓库
一 什么是仓库Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。Docker运行中使用的默认仓库是 Docker Hub 公共仓库。二 Docker Hubdocker hub是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库。首先在https://cloud.docker.com/网站注册一个账号在docker主机上登录docker..原创 2021-07-21 08:50:06 · 219 阅读 · 1 评论 -
Docker入门之基础学习(一)
一 docker简介架构图1 什么是DockerDocker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源; Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化; 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低; Docker 从 17.03 版本之后分为 CE(Community Edition-社区版)和 EE(Enterpr.原创 2021-07-20 18:23:09 · 324 阅读 · 1 评论 -
自动化运维——通过saltstack部署zabbix
通过saltstack部署zabbix一. 案例简介使用Saltstack部署zabbix,主要包括zabbix-server、zabbix-agent、zabbix-web以及mysql。其中,zabbix的版本使用4.0,使用本地自己搭建的zabbix仓库,加快部署效率。两台虚拟机作为示例,分别是server2和server3。部署架构[root@server1 srv]# tree.└── salt ├── top.sls ├── zabbix-age.原创 2021-07-18 19:02:54 · 657 阅读 · 4 评论 -
自动化运维——saltstack基础部署(五)
一 job管理1 Job简介master在下发指令任务时,会附带上产生的jid。minion在接收到指令开始执行时,会在本地的/var/cache/salt/minion/proc目录下产生该jid命名的文件,用于在执行过程中master查看当前任务的执行情况。指令执行完毕将结果传送给master后,删除该临时文件。Job cacheJob缓存默认保存24小时:# vim /etc/salt/masterkeep_jobs: 24master端Job缓存目录:/va.原创 2021-07-18 16:05:25 · 263 阅读 · 1 评论 -
自动化运维——saltstack基础部署(四)
通过saltstack部署keepalived单点安装keepalived[root@server1 salt]# mkdir keepalived[root@server1 salt]# cd keepalived/[root@server1 keepalived]# vim init.sls[root@server1 keepalived]# vim keepalived.conf [root@server1 keepalived]# cat keepalived.conf ! Co原创 2021-07-18 10:37:26 · 251 阅读 · 0 评论 -
自动化运维——saltstack基础部署(三)
一 grainsGrains是SaltStack的一个组件,存放在SaltStack的minion端。当salt-minion启动时会把收集到的数据静态存放在Grains当中,只有当minion重启时才会进行数据的更新。由于grains是静态数据,因此不推荐经常去修改它。应用场景:信息查询,可用作CMDB。在target中使用,匹配minion。在state系统中使用,配置管理模块。1 信息查询[root@server1 ~]# salt server2 grains.ls原创 2021-07-17 18:05:38 · 181 阅读 · 2 评论 -
自动化运维——saltstack基础部署(二)
一 grains1 自定义grians2 编写granis模块3 编写granis模块二 pillar1 pillar声明2 自定义pillar项3 pillar数据匹配三 jinja模板四 job管理1 方式一2 方式二五 salt-ssh与salt-syndic管理1 salt-ssh2 salt -syndic...原创 2021-07-17 14:57:40 · 123 阅读 · 0 评论 -
自动化运维——saltstack基础部署(一)
一 saltstack简介saltStack由Python编写,为server-client模式的系统(在salstack中叫Master-Minion),自己本身支持多master,而puppet则需要依赖于web服务器。saltstack除了可以通过在节点安装客户端进行管理还支持直接通过ssh进行管理。运行模式为master端下发指令,客户端接收指令执行。saltstack依赖于zeromq消息队列,采用yaml格式编写配置文件,比较简单。支持api及自定义python模块,能轻松实现功能扩展原创 2021-07-17 13:12:12 · 255 阅读 · 3 评论 -
zabbix监控(续)——TIDB
一 TiDB 简介TiDB 是 PingCAP 公司基于 Google Spanner / F1 论文实现的开源分布式 NewSQL 数据库。TiDB 具备如下 NewSQL 核心特性:• SQL 支持( TiDB 是 MySQL 兼容的)• 水平线性弹性扩展• 分布式事务• 跨数据中心数据强一致性保证• 故障自恢复的高可用TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景。TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等原创 2021-07-16 11:07:54 · 198 阅读 · 3 评论 -
zabbix监控(下)监控示警、API
一 zabbix示警我们通过第三方软件来完成报警——睿象云在server1上我们需要能够上网查看AlertSCripts默认读取路径进入睿象云,添加集成---->监控工具生成AppKey进入报警文件读取目录,解压云报警插件,进入解压目录cd /usr/lib/zabbix/alertscripts执行安装脚本,后跟AppKey输入账号Admin,初始密码为zabbix进行认证。zabbix web应用禁用报警媒介类型 管理--...原创 2021-07-16 10:10:17 · 273 阅读 · 1 评论 -
zabibx监控(中)
一 zabbix添加nginx在server2上编译nginxyum install -y gcc openssl-devel pcre-devel./configure --with-http_stub_status_module --with-http_ssl_modulemakemake install作软连接cd /usr/local/nginx/ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/...原创 2021-07-15 17:52:20 · 142 阅读 · 0 评论 -
CDN内容分发网络
一 cdn内容分发网络 软件安装Varnish安装:官网:http://varnish-cache.org/软件下载:https://developer.aliyun.com/mirror/# yum install -y varnish-4.0.5-1.el7.x86_64.rpmvarnish-libs-4.0.5-1.el7.x86_64.rpmjemalloc-3.6.0-1.el7.x86_64.rpmjemalloc-devel-3.6.0-1.el7.x86_64.原创 2021-07-15 16:32:46 · 166 阅读 · 0 评论 -
Zabbix监控(上)
一 什么是zabbix?zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它.原创 2021-07-13 17:57:52 · 145 阅读 · 0 评论 -
LVS(四层DR直连)负载均衡
一、服务器架构二、特性LVS-DR模式的特性(1) 确保前端路由器将目标IP为VIP的请求报文发往Director:(a) 在前端网关做静态绑定;(b) 在RS上使用arptables;(c) 在RS上修改内核参数以限制arp通告及应答级别;修改RS上内核参数(arp_ignore和arp_announce)将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求。(2) RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;.原创 2021-07-12 14:07:51 · 145 阅读 · 0 评论 -
初步认识LVS负载均衡
一、LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器。现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须重新编译内核以支持LVS功能模块,但是从Linux2.4内核心之后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能,高可用的服务器群集,它具有良好的可靠性、可扩展性和可操作性。从原创 2021-07-11 15:16:16 · 138 阅读 · 2 评论 -
七层负载均衡
一 haproxy1 软件下载yum install -y haproxy2 修改内核配置3 修改haproxy配置文件修改端口添加监控注释以下内容添加server端口4 查看效果监控效果负载均衡效果二 优化配置1 打开注释2 打开注释并设置static3 为监控设置账户密码4 在server4中避免端口冲突,改变http端口5 设置备份6 查看...原创 2021-07-11 16:47:46 · 151 阅读 · 0 评论