自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 ansible自动部署zabbix监控平台

Ansible是一款开源的自动化运维工具,可以通过SSH协议远程自动化地执行一些复杂的IT工作,例如程序部署、配置管理、应用运维等等。Ansible基于Python编写,采用YAML格式语言来描述自动化任务,具有高度的可读性和易维护性,使用起来非常方便。Zabbix是一款开源的企业级监控系统,用于监测服务器、网络设备及其他应用程序的运行状态和性能指标。

2023-06-10 15:37:20 754 1

原创 kolla-ansible自动化部署openstack云计算平台

Kolla Ansible是一个基于Ansible的开源工具,用于在OpenStack云环境中部署和管理Docker容器化的OpenStack服务。Kolla Ansible提供了一组Ansible Playbooks和Roles,可以自动化地构建、部署和管理OpenStack服务的Docker容器。

2023-05-31 19:04:23 1688

原创 ELK之可视化展示和轻量采集

Kibana是一个数据分析和可视化工具,可将Elasticsearch中的数据转化为交互式的图表和仪表盘,帮助用户更好地理解和利用数据。

2023-05-27 15:07:41 525

原创 ELK之logstash

Logstash是一个开源的服务器端数据处理管道。logstash拥有200多个插件,能够同时从多个来源采集数据,转换数据,过滤数据,然后将数据发送到您最喜欢的 “存储库” 中。(大多都是。他分为输入,过滤,输出输入:采集各种样式、大小和来源的数据Logstash 支持各种输入选择 ,同时从众多常用来源捕捉事件。

2023-05-25 17:38:16 123

原创 ELK-Elasticsearch部署使用

它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。其中elasticsearch主要用来存储检索数据和数据处理,logstash主要用来数据采集和过滤然后给es,kibana主要从es里面加载数据然后展示。编辑配置文件,把三台设备加入,角色相同,为master,任何主机都可以访问,http端口为9200。准备三台机子作为采集设备,再来一台装cerbro图形化的界面,需要docker运行镜像。设置完毕在系统文件打开使其生效。

2023-05-24 12:27:01 90

原创 jenkins之pipeline及结合ansible参数化构建

pipelineJenkins的Pipeline可以让项目的发布整体流程可视化,明确执行的阶段,可以快速的定位问题。并且整个项目的生命周期可以通过一个Jenkinsfile文件管理,而且Jenkinsfile文件是可以放在项目中维护。所以Pipeline相对自由风格或者其他的项目风格更容易操作。安装ssh agent插件新建流水线项目复制一下脚本并做相应修改pipeline {agent any #定义在所有agent跑stages {

2023-05-23 13:30:21 591

原创 jenkins之节点添加交付和Rbac

通过ssh插件交付任务不想把任务部署在matser节点工作,如何部署到新的节点上呢?可以使用ssh的方式新建测试虚拟机vm7ip,提前安装docker-ce,和之前一样的操作安装插件进入系统配置,添加ssh主机,添加远程主机,端口为22,使用前面创建的ssh证书,保存新建test项目当docker项目成功运行后触发test项目回到docker项目,修改配置,不用之前的shell,使用远程的shell,命令还是运行容器,保存,构建构建后查看输出。

2023-05-22 18:46:38 95

原创 jenkins之自动化构建docker镜像

配置项目demo,选择docker构建,设定上传镜像的名字和标签(就是构建版本号),使用docker套接字,设定仓库地址。docker-ce,docker源设定好本地,下载速度快。jenkins安装docker插件。

2023-05-22 12:35:15 923

原创 CI&CD之Jenkins使用

部署安装jenkins。

2023-05-11 12:09:13 43

原创 gitlab搭建

类似前面的github,这里需要给一个ssh的公钥。搭建一个自己的仓库gitlab,和github类似。完成创作首页,提交, 切换分支,最后推上去。进入配置文件设定访问ip。

2023-05-11 11:27:26 51

原创 git的基本使用

为解决本地单点down掉,或server端down掉问题以及同步问题,为了更好的管理和维护代码,git诞生了,它是最先进的分布式版本控制系统。Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)在 BitKeeper的基础上,开发出自己的版本系统。Git 有三种状态:已提交(committed)、已修改(modified) 和 已暂存(staged)。已修改表示修改了文件,但还没保存到数据库中。已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

2023-05-10 12:00:21 39

原创 docker(6)- 安全

隔离的安全:启动一个容器时,Docker将在后台为容器创建一个独立的命名空间,就是隔离,但是ns(namespace)的隔离不够强,容器都是使用的同一个物理机的内核。在/sys/fs/cgroup中有许多的子目录,分别控制每个资源,/sys/fs/cgroup/memory/下的这些变量是是物理机全句的控制。安装libcgroup-tools工具,进入shm里,该目录挂的是物理内存,数据往内存写的,使用300m,可以发现。再次进入修改,内存加swap总共200m,使用300m,则任务killed。

2023-05-09 15:39:44 82

原创 docker(5)- 数据卷

Docker将运用与运行的环境打包形成容器运行,Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来, 那么当容器删除后,数据自然也就没有了,为解决此问题,卷的概念产生了。卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。Docker容器卷的工作就是将docker容器数据通过映射进行备份+持久化到本地的主机目录。docker提供了两种数据卷:bind mount和managed。

2023-05-08 21:16:05 34

原创 docker(4)- 网络通信

host网络模式需要在容器创建时指定 --network=host,容器和宿主机共享同一网络栈,不会新建虚拟网卡,外部主机访问宿主机的ip地址来访问容器(监听的也是80端口),因此这种模式下资源是唯一的,不走NAT,并且性能好,但容器已经占用了80端口,意味着宿主机80端口无法使用,甚至无法再启动另外一个容器,这也是它的弊端。这个模式下的 Docker 容器会共享一个网络栈,这样两个容器之间可以使用localhost高效快速通信,适合于lnmp架构,容器端口不同,高效通信。同一网桥上的容器是可以互通的。

2023-05-07 18:26:00 49

原创 docker(3)- 仓库搭建及harbor使用

公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。创建admin用户认证信息和密码(注意第一次加参数c,之后不加,否则会覆盖原来的)标记重命名nginx并归类到本地reg.westos.org仓库中。创建docker下的证书目录下的reg.westos.org子目录。来管理多个容器的,定义启动顺序的,合理编排,方便管理。私有仓库上传和下载镜像都需要用户认证。测试查看上传的内容,测试成功。

2023-04-27 19:58:48 159

原创 docker(2)- 镜像自定义及优化

Dockerfile是一个创建镜像所有命令的文本文件, 包含了一条条指令和说明, 每条指令构建一层, 通过docker build命令,根据Dockerfile的内容构建镜像,因此每一条指令的内容, 就是描述该层如何构建.有了Dockefile, 就可以制定自己的docker镜像规则,只需要在Dockerfile上添加或者修改指令, 就可生成docker 镜像。交互式:运行容器的同时进入容器,交互式,并且在容器内创建文件。3将容器保存为新的镜像。提交容器变更到新的镜像。这种方式不利于安全审计。

2023-04-25 20:04:04 88

原创 docker(1)- 简单介绍及部署

用户可以在Docker Hub注册账号,分享并保存自己的镜像(说明:在Docker Hub下载镜像巨慢,可以自己构建私有的Registry)。我们可以认为,镜像是Docker生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。Docker的镜像机制是有层次感的,一个镜像可以放到另一个镜像的顶部。3、隔离性不同,docker属于进程之间的隔离,隔离性较弱,而虚拟机可以实现系统级别的隔离。Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的。

2023-04-25 17:44:23 45

原创 K8s(20)——高可用集群

测试成功后关闭服务,不要设置自启动。部署control-plane。部署worker node。新添加的节点需要初始化配置。部署containerd。注意:需要修改为自己的。

2023-04-21 21:15:43 94

原创 K8s(19)——prometheus监控

Prometheus是一个开源监控解决方案,用于收集和聚合指标作为时间序列数据。更简单地说,Prometheus 商店中的每个项目都是一个指标事件,并带有它发生的时间戳。HPA获取自定义指标(Custom Metrics)的底层实现就可以基于Prometheus。普罗米修斯与其他度量(metrics)和监控系统的区别在于:多维数据模型(由度量名称和键/值维度集定义的时间序列)。对于云平台prometheus是首选。

2023-04-21 15:15:59 326

原创 K8s(18)——Helm的基本学习使用

helm是kubernetes生态系统中的一个软件包管理工具,类似ubuntu的apt,centos的yum或python的pip一样,专门负责管理kubernetes应用资源;使用helm可以对kubernetes应用进行统一打包、分发、安装、升级以及回退等操作。helm利用Chart来封装kubernetes原生应用程序的一些列yaml文件,可以在部署应用的时候自定义应用程序的一些Metadata,以便于应用程序的分发。即之前学过的所有的东西,都可以打包成一个helm,一键部署部署helm。

2023-04-19 16:24:38 342

原创 K8s(17)——资源监控与缩放

本节内容涉及metrics-server,Dashboard以及HPAmetrics-server是什么Metrics-Server是集群核心监控数据的聚合器。通俗地说,它存储了集群中各节点的监控数据,并且提供了API以供分析和使用。Metrics-Server作为一个 Deployment对象默认部署在Kubernetes集群中。

2023-04-18 12:58:51 106

原创 K8s(16)——资源限制

每个容器必须设置内存请求(memory request),内存限额(memory limit),cpu请求(cpu request)和cpu限额(cpu limit),以及pod数量。request(资源需求):即运行Pod的节点必须满足运行Pod的最基本需求才能运行Pod,这就是资源下限。limit(资源限额):即运行Pod期间,可能内存使用量会增加,那最多能使用多少内存,这就是资源上限。应用pod.yaml文件,很明显pod无法启动,这因为使用的内存超过了上限。必须定义资源限制,内存和cpu都得设置。

2023-04-17 17:01:38 153

原创 K8s(15)——认证与授权基于rbac实验

主要分为三个部分,认证、授权和准入控制。

2023-04-16 21:48:53 378

原创 K8s(14)——调度

kube-scheduler是Kubernetes中的关键模块,扮演管家的角色遵从一套机制为Pod提供调度服务,例如基于资源的公平调度、调度Pod到指定节点、或者通信频繁的Pod调度到同一节点等。容器调度本身是一件比较复杂的事,因为要确保以下几个目标:公平性:在调度Pod时需要公平的进行决策,每个节点都有被分配资源的机会,调度器需要对不同节点的使用作出平衡决策。资源高效利用:最大化群集所有资源的利用率,使有限的CPU、内存等资源服务尽可能更多的Pod。

2023-04-16 19:21:16 179

原创 K8s(13)——statefulset控制器

StatefulSet是有状态的集合,管理有状态的服务,它所管理的Pod的名称不能随意变化。数据持久化的目录也是不一样,每一个Pod都有自己独有的数据持久化存储目录。比如MySQL主从、redis集群等。所以用到卷。StatefulSet将应用状态抽象成了两个条件:(1)拓扑状态:应用实例必须按照某种顺序启动。新创建的Pod必须和原来Pod的网络标识一致(稳定的状态)(2)存储状态:应用的多个实例分别绑定了不同存储数据(动态数据卷)

2023-04-14 18:36:20 416

原创 K8s(13)——存储之持久卷

PVPersistentVolume(持久卷,简称PV)是集群内,由管理员提供的网络存储的一部分。就像集群中的节点一样,PV也是集群中的一种资源。它也像Volume一样,是一种volume插件,但是它的生命周期却是和使用它的Pod相互独立的。PV这个API对象,捕获了诸如NFS、ISCSI、或其他云存储系统的实现细节。PVCPersistentVolumeClaim(持久卷声明,简称PVC)是用户的一种存储请求。它和Pod类似,Pod消耗Node资源,而PVC消耗PV资源。

2023-04-14 17:45:10 683

原创 K8s(10)——存储之Configmap

k8s中的存储类型一般分为Configmap、Secret和Volumes。这一节先讲configmap。Configmap 是 k8s 中的资源, 相当于配置文件,可以有一个或者多个 Configmap;Configmap 可以做成 Volume,k8s pod 启动之后,通过 volume 形式映射到容器内部指定目录上;容器中应用程序按照原有方式读取容器特定目录上的配置文件。应用场景使用 k8s 部署应用,当你将应用配置写进代码中,更新配置时也需要打包镜像,

2023-04-14 16:13:38 373

原创 K8s(12)——存储之volumes

在K8S中,volume是kubernetes Pod中多个容器访问的共享目录。volume被定义在pod上,被这个pod的多个容器挂载到相同或不同的路径下。volume的生命周期与pod的生命周期相同,pod内的容器停止和重启时一般不会影响volume中的数据。所以一般volume被用于持久化pod产生的数据。Pod 中的每个容器必须独立地指定每个卷的挂载位置。k8s支持的常见Volume类型如下: 基本存储:EmptyDir、HostPath、NFS 高级存储emptyDir卷。

2023-04-14 14:33:57 955

原创 K8s(11)——存储之secrets

k8s中secret是一种包含少量敏感信息例如密码、令牌或密钥的对象。这样的信息可能会被放在 Pod 规约中或者镜像中。使用 Secret 意味着你不需要在应用程序代码中包含机密数据。Secret 类似于 ConfigMap 但专门用于保存机密数据。k8s secrets用于存储和管理一些敏感数据,比如密码,token,密钥等敏感信息。它把 Pod 想要访问的加密数据存放到Etcd中。然后用户就可以通过在 Pod 的容器里挂载 Volume 的方式或者环境变量。

2023-04-12 17:53:23 317

原创 K8s(9)——集群通信之calico策略

k8s通过CNI接口接入其他插件来实现网络通讯。目前比较流行的插件有flannel,calico等。同一节点的pod之间通过cni网桥转发数据包。(brctl show可以查看)不同节点的pod之间的通信需要网络插件支持。flannel实现的是网络通信,calico的特性是在pod之间的隔离。endpoints组成的网络是单纯的三层网络,报文的流向完全通过路由规则控制,没有overlay等额外开销;

2023-04-10 15:08:25 663

原创 K8s(8)——金丝雀发布

好处在能够对架构内每个服务进行拆分管理,如lnmp架构内,将php,ngnix拆出来,分别根据实际情况进行扩缩容,进行流量拆分管理。canary-weight,30%,50%,100%,一点一点把流量到v2,直到把流量全部切换到v2。创建灰度ingress,配置灰度权重以及总权重灰度流量验证完毕后,切换正式ingress到新版本。加了key - v键值的header后,访问到了v2,将新版本局限到一定范围内。- path: /order/(.*)#如果出现order,定向到v2。不同域名定向到不同服务。

2023-04-09 16:04:18 227

原创 K8s(7)——ingress服务

k8s 对外暴露服务(service)主要有两种方式:NodePort, LoadBalance, 此外externalIPs也可以使各类service对外提供服务,但是当集群服务很多的时候,NodePort方式最大的缺点是会占用很多集群机器的端口;LB方式最大的缺点则是每个service一个LB又有点浪费和麻烦,并且需要k8s之外平台的支持;而ingress则只需要一个NodePort或者一个LB就可以满足所有service对外服务的需求。

2023-04-09 14:40:56 423

原创 K8s(6)——控制器

之前创建了自主式 Pod,当Pod 退出后不会被创建,这就是生产环境不建议用的原因。如果加入了控制器,控制器管理的 Pod,在控制器的生命周期里,始终要维持 Pod 的副本数目,删除一个副本,控制器就会自动补一个副本,这样可以稳定的提供服务。控制器是管理pod的中间层,只需要告诉Pod控制器,想要创建多少个什么样的Pod,它会创建出满足条件的Pod;控制器相当于一个状态机,用来控制Pod的具体状态和行为;controller会自动创建相应的pod资源,并在当pod发生故障的时候按照策略进行重新编排;

2023-04-08 15:19:48 87

原创 K8s(5)——pod生命周期

Init 容器和普通容器区别不大,主要是init优先运行,init成功运行完成后,才会启动主容器,所以Init 容器不支持 Readiness。init容器是在pod的生命周期,保证该pod运行的一些前置条件满足之后才开始运行这个pod,例如需要依赖一些其他的pod,服务等,可以去对这些服务的状态进行检测,等所有前置的pod都好了才开始运行主容器。我们都知道在k8s中,最小的单位叫作pod,在pod中运行着一个个容器,那么在k8s中是如何得知pod中的容器是否正常运行呢,所以k8s就引入了探针的概念。

2023-04-06 22:13:37 117

原创 K8s(4)——pod资源清单使用

apiVersion: group/apiVersion #如果没有给定group名称,那么默认为core,可以使用kubectl api-versions 获取当前k8s版本上所有的 apiVersion版本信息(每个版本可能不同),语法格式遵循yaml语法,在yaml当中可以定义控制器类型,元数据,容器端口号等,可以减少命令行的使用,减少错误,可重复性好,可以规范化部署。status: #当前状态,本字段有 Kubernetes自身维护,用户不能去定义,查看的时候可以看下当前的状态。

2023-04-06 17:42:35 97

原创 K8s(3)——简单应用部署

pod可以理解为是花生壳,一个pod中好几个花生豆(container),也可能一个pod中一个container,里面的container共享pod内的IP、Network和ns(namespace)等资源,这样就存在容器的多个副本不能直接放在一个pod里的问题,必须靠端口不同来区分一个pod中的不同容器。集群内部任意节点可以访问Pod,但集群外部无法直接访问内部节点,此时pod客户端可以通过service的名称或ip访问后端的两个Pod,设定可供集群外部访问的虚拟IP。创建新的pod,叫demo。

2023-04-06 17:15:31 57

原创 K8s(2)——环境搭建(Kubeadm 方式)

编辑节点上的daemon.json文件,配置好私有仓库路径,设定docker cgroup driver为systemd。环境准备:四台,k8s作为harbor仓库方便拉取镜像,剩下三台进行实验:一台作为master,两台执行node。如果找不到初始化信息,想要join的话,可以用token命令获取join信息。为了统一管理,在harbor中创建k8s项目,设置公开,专门放k8s的镜像。配置docker的yum源,推荐阿里的,更快一些。配置k8s的yum仓库,使用阿里云的yum仓库。

2023-04-05 21:49:36 112

原创 K8s(1)——基本认识

Kubernetes,也被称为K8s或Kube,是谷歌推出的业界最受欢迎的容器编排器。Kubernetes是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

2023-04-05 19:01:32 35

原创 Ansible学习记录-基本使用学习

Ansible是近年越来越火的一款运维自动化工具,其主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率。Ansible完全基于Python开发,而DevOps在国内已然是一种趋势,Python被逐步普及,运维人员自己并发工具的门槛逐步降低,得益于此,方便对Ansible二次开发。Ansible丰富的内置模块,甚至还有专门为商业平台开发的功能模块,完全可以满足日常功能所需。有一个不同和优点是我们不需要在节点中安装任何客户端。ansible默认的主机清单。

2023-04-04 17:42:44 415

原创 Zabbix监控平台(4)- 监控优化及报警

因为此时proxy工作的状态是:proxy主动采集agent端信息后,再主动将数据回传给server端,如果agent端有Java应用,那么proxy就需要先连接java网关,由java网关访问tomcat中的jmx的8888端口。所以此时再设置proxy,添加Java网关。注意2: 注意从Zabbix server数据库直接更新最新配置的proxy可能会比Zabbix server新,而Zabbix server的配置由于 CacheUpdateFrequency 的原因而无法快速更新。

2023-04-01 16:05:56 410

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除