自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 prometheus 结合cAdvisor、AlertManager、node-exporter、 监控容器并实现邮箱告警

prometheus 监控容器rometheus是一款面向云原生应用程序的开源监控工具,作为第一个从CNCF毕业的监控工具而言,开发者对于Prometheus寄予了巨大的希望。 在Kubernetes社区中,很多人认为Prometheus是容器场景中监控的第一方案,成为容器监控标准的制定者。什么是 cAdvisorcAdvisor (Container Advisor) 是 Google 开源的一个容器监控工具,可用于对容器资源的使用情况和性能进行监控。它以守护进程方式运行,用于收集、聚合、处理和导出

2021-12-30 23:52:32 767

原创 Kubernetes部署Jenkins

构建tomcat镜像目录结构[root@master ~]# tree /tomcat//tomcat/├── Dockerfile└── files ├── apache-tomcat-9.0.56.tar.gz ├── index.jsp ├── install.sh ├── jenkins-2.303.1.war └── jenkins-2.303.2.war1 directory, 6 files编写Dokcerfile文件[root@ma

2021-12-29 02:23:20 282

原创 Kubernetes部署Java项目

[root@k8s-master ~]# tree javaweb/javaweb/├── Dockerfile└── files └── reduce-beta-1.0.jar制作镜像[root@k8s-master ~]# cat javaweb/Dockerfile FROM openjdk:18-jdk-alpine COPY files/reduce-beta-1.0.jar /usr/local/reduce-beta-1.0.jarENTRYPOINT ["ja

2021-12-28 00:41:35 556

原创 Kubernetes暴露端口与代理方式

暴露端口的方式方式1:clusterIP此类型会提供一个集群内部的虚拟IP(与pod不在同一网段),以供集群内部的pod之间通信使用。clusterIP也是kubernetes service的默认类型主要需要以下几个组件的协同工作apiservice:在创建service时,apiserver接收到请求以后将数据存储到etcd中。kube-proxy:k8s的每个节点中都有该进程,负责实现service功能,这个进程负责感知service,pod的变化,并将变化的信息写入本地的iptables中

2021-12-26 22:46:23 243

原创 Kubernetes工作负载控制器

工作负载控制器工作负载控制器(Workload Controllers)是K8s的一个抽象概念,用于更高级层次对象,部署和管理Pod。常用工作负载控制器:Deployment:无状态应用部署StatefulSet:有状态应用部署DaemonSet:确保所有Node运行同一个PodJob:一次性任务Cronjob:定时任务控制器的作用:管理Pod对象使用标签与Pod关联控制器实现了Pod的运维,例如滚动更新、伸缩、副本管理、维护Pod状态等Deployment功能管理Po

2021-12-25 01:46:04 90

原创 kubernetes资源调度

nodeSelectornodeSelector:用于将Pod调度到匹配Label的Node上,如果没有匹配的标签会调度失败。Pod.spec.nodeSelector:通过 kubernetes 的 label-selector 机制选择节点,由调度器调度策略匹配 label,而后调度 Pod 到目标节点,该匹配规则属于强制约束作用:约束Pod到特定的节点运行完全匹配节点标签# nodeAffinity应用场景:专用节点:根据业务线将Node分组管理配备特殊硬件:部分Node配有SS

2021-12-23 23:58:12 1084

原创 kubernetes资源清单定义haproxy实现负载均衡

http1[root@master httpd1]# vim Dockerfile FROM busybox RUN mkdir /data && echo 'test httpd1' > /data/index.htmlCMD ["/bin/httpd","-f","-h","/data"][root@master httpd1]# docker build -t harry1004/httpd1:v1 .Sending build context to Doc

2021-12-22 01:19:41 288

原创 kubernetes基础用法

什么是pod?pod相当于逻辑主机,每个pod都有自己的ip地址pod内的容器共享相同的ip和端口空间默认情况下,每个容器的文件系统与其他容器完全隔离可以理解为:容器组,同时pod相当于逻辑主机,进入pod后仿佛进入一个linux主机,命令都可用(linux系统下),该“主机”内又有很多容器,进入后又仿佛是又进了一个linux主机。pod分类pod分为两种类型:自主式pod控制器管理的pod自我管理的pod,创建以后仍然需要提交给apiserver,由apiserver接收以后

2021-12-19 23:23:36 150

原创 Kubernetes快速部署

安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件:至少3台机器,操作系统 CentOS7+硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘20GB或更多集群中所有机器之间网络互通可以访问外网,需要拉取镜像禁止swap分区学习目标在所有节点上安装Docker和kubeadm部署Kubernetes Master部署容器网络插件部署 Kubernetes Node,将节点加入Kubernetes集群中部署Dashboard Web页面,可视化查看K

2021-12-18 23:35:56 1497

原创 kubernetes

简介kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是

2021-12-17 23:04:24 247

原创 Harbor

Harbor无论是使用Docker-distribution去自建仓库,还是通过官方镜像跑容器的方式去自建仓库,通过前面的演示我们可以发现其是非常的简陋的,还不如直接使用官方的Docker Hub去管理镜像来得方便,至少官方的Docker Hub能够通过web界面来管理镜像,还能在web界面执行搜索,还能基于Dockerfile利用Webhooks和Automated Builds实现自动构建镜像的功能,用户不需要在本地执行docker build,而是把所有build上下文的文件作为一个仓库推送到git

2021-12-16 23:17:52 322

原创 podman容器基础

podman简介Podman是一个开源项目,可在大多数Linux平台上使用并开源在GitHub上。Podman是一个无守护进程的容器引擎,用于在Linux系统上开发,管理和运行Open Container Initiative(OCI)容器和容器镜像。Podman提供了一个与Docker兼容的命令行前端,它可以简单地作为Docker cli,简单地说你可以直接添加别名:alias docker = podman来使用podman。Podman控制下的容器可以由root用户运行,也可以由非特权用户运行。P

2021-12-14 22:19:55 968

原创 dockerfile基于alpine构建haproxy

2021-12-13 00:34:20 161

原创 dockerfile制作haproxy

树形结构[root@localhost ~]# tree /haproxy//haproxy/├── Dockerfile└── files ├── haproxy-2.4.0.tar.gz ├── haproxy.cfg ├── install.sh └── start.sh编写Dockerfile[root@localhost ~]# cat /haproxy/DockerfileFROM centosLABEL MAINTAINER='harry

2021-12-10 23:06:55 106

原创 使用dockerfile制作apache镜像

树形结构[root@localhost ~]# tree /apache//apache/├── Dockerfile├── files│ ├── apr-1.7.0.tar.gz│ ├── apr-util-1.6.1.tar.gz│ └── httpd-2.4.51.tar.gz└── httpd.conf1 directory, 5 files编写dockerfile文件[root@localhost apache]# vim Dockerfile[root@

2021-12-08 23:58:32 287

原创 docker创建nginx容器

映射配置文件和网站# 真机网站存放位置[root@localhost ~]# ls /var/www/html/assets icon.png index.html js share.png# 拉取一个nginx镜像[root@localhost html]# docker pull nginxUsing default tag: latestlatest: Pulling from library/nginxe5ae68f74026: Pull complete 21e0df2

2021-12-07 23:27:44 327

原创 docker存储卷

COW机制Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那么该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本依然存在,只是已经被读写层中该文件的副本所隐藏,这就是“写时复制(COW)”机制。对于这种方式来说,我们去访问一个文件,修改和删除等一类的操作,其效率会非常的低,因为隔着很多层镜像。而要想绕过这种限制,我们可以通过使用存储卷的机制来实现。什么是存储卷存储卷就是将宿主机

2021-12-06 23:48:03 98

原创 docker容器网络的配置

Linux内核实现名称空间的创建ip netns命令可以借助ip netns命令来完成对 Network Namespace 的各种操作。ip netns命令来自于iproute安装包,一般系统会默认安装,如果没有的话,请自行安装。注意:ip netns命令修改网络配置时需要 sudo 权限。可以通过ip netns命令完成对Network Namespace 的相关操作,可以通过ip netns help查看命令帮助信息:[root@localhost ~]# ip netns helpUsa

2021-12-06 00:47:13 154

原创 docker容器虚拟化和网络

虚拟化网络Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己都在独立的网络中。而且不同Network Namespace的资源相互不可见,彼此之间无法通信。假如我们的物理机有4块物理网卡,我们要创建4个名称空间,而这些设备是可以单独关联至某个单独的名称空间使用的如上图所示,把第一块网卡分配给第一个名称空间,第二块分给第二个名称空间,第三块分给第三个名称空间,第四块分

2021-12-04 03:26:45 408

原创 基于容器搭建lnmp架构

拉取centos镜像[root@localhost ~]# docker pull centosUsing default tag: latestlatest: Pulling from library/centosa1d0c7532777: Pull complete Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177Status: Downloaded newer image for

2021-12-04 03:25:58 194

原创 docker镜像管理基础

镜像的概念镜像可以理解为应用程序的集装箱,而docker用来装卸集装箱。docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动容器。docker镜像采用分层构建机制,最底层为bootfs,其上为rootfsbootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完成后会被卸载以节约内存资源rootfs:位于bootfs之上,表现为docker容器的根文件系统传统模式中,系统启动之时,内核挂载rootfs会首先将其挂载为“只读”模式,完整性自

2021-12-03 00:54:34 199

原创 docker基础用法

OCI&OCFOCIOpen Container-initiative由Linux基金会主导于2015年6月创立旨在围绕容器格式和运行时制定一个开放的工业化标准contains two specificationsthe Runtime Specification(runtime-spec)the Image Specification(image-spec)OCFOpen Container FormatrunC is a CLI tool for spawning

2021-12-01 23:45:33 251

原创 Docker

docker基本概念docker是容器技术的一个前端工具,容器是内核的一项技术,docker只是把这一项技术的使用得以简化,使之普及而已。LXC进行大规模创建容器很难,想在另一台主机上复刻一个一模一样的容器也很难,而docker就是从这方面着手去找解决方案。所以docker早期的版本其核心就是一个LXC,docker对其进行了二次封装,功能的实现是通过LXC做容器管理引擎,但是在创建容器时,不再是像LXC一样用模板去现场安装,而是事先通过一种类似镜像技术,就像在KVM中一样,将一个操作系统打包成一个镜

2021-11-30 22:05:52 55

原创 saltstack进阶

masterless应用场景master 与 minion 网络不通或通信有延迟,即网络不稳定想在 minion 端直接执行状态传统的 SaltStack 是需要通过 master 来执行状态控制 minion 从而实现状态的管理,但是当网络不稳定的时候,当想在minion本地执行状态的时候,当在只有一台主机的时候,想执行状态该怎么办呢?这就需要用到 masterless 了。有了masterless,即使你只有一台主机,也能玩saltstack,而不需要你有N台主机架构。masterles

2021-11-29 21:14:17 101

原创 SaltStack之salt-ssh

salt-ssh介绍salt-ssh可以让我们不需要在受控机上安装salt-minion客户端也能够实现管理操作。特点远程系统需要Python支持,除非使用-r选项发送原始ssh命令salt-ssh是一个软件包,需安装之后才能使用,命令本身也是salt-sshsalt-ssh不会取代标准的Salt通信系统,它只是提供了一个基于SSH的替代方案,不需要ZeroMQ和agent**注意:**由于所有与Salt SSH的通信都是通过SSH执行的,因此它比使用ZeroMQ的标准Salt慢得多管理的

2021-11-29 18:49:00 43

原创 Prometheus安装配置

Prometheus 工作原理通过HTTP周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口并符合Prometheus定义的数据格式,就可以接入Prometheus监控;Prometheus Server负责定时在目标上抓取metrics(指标)数据,每个抓取目标都需要暴露一个HTTP服务接口用于Prometheus定时抓取。这种调用被监控对象获取监控数据的方式被称为Pull(拉);Pull方式体现了Prometheus独特的设计哲学与大多数采用Push(推)方式的监控不同。优点强大的多

2021-11-26 01:07:14 541

原创 saltstack系统初始化

系统初始化:[root@master base]# tree init/init/├── chrony│ ├── files│ │ └── chrony.conf│ └── main.sls├── firewalld│ └── main.sls├── history│ └── main.sls├── kernel│ ├── files│ │ ├── limits.conf│ │ └── sysctl.conf│ └── main

2021-11-15 11:10:45 593

原创 LNMP部署状态文件编写

Saltstack部署zabbix目录树[root@master prod]# tree lnmp/lnmp/├── files│ ├── index.php│ ├── my.cnf│ └── nginx.conf├── install.sls├── mysql.sls└── nginx.sls[root@master prod]# tree modules/modules/├── app│ └── php│ ├── files│ │

2021-11-12 08:50:56 80

原创 zabbix部署状态文件编写

saltstack部署zabbix环境:主机IP服务master192.168.111.141salt-matsernode1192.168.111.142salt-minion

2021-11-11 00:28:32 1331

原创 saltstack之return与job管理

saltstack组件之returnreturn组件可以理解为SaltStack系统对执行Minion返回后的数据进行存储或者返回给其他程序,它支持多种存储方式,比如用MySQL、MongoDB、Redis、Memcache等,通过return我们可以对SaltStack的每次操作进行记录,对以后日志审计提供了数据来源。目前官方已经支持30种return数据存储与接口,我们可以很方便的配置与使用它。当然也支持自己定义的return,自定义的return需由python来编写。在选择和配置好要使用的retu

2021-11-07 17:07:01 73

原创 SaltStack常用模块

SaltStack模块介绍Module是日常使用SaltStack接触最多的一个组件,其用于管理对象操作,这也是SaltStack通过Push的方式进行管理的入口,比如我们日常简单的执行命令、查看包安装情况、查看服务运行情况等工作都是通过SaltStack Module来实现的。当安装好Master和Minion包后,系统上会安装很多Module,大家可以通过以下命令查看支持的所有Module列表://查看node1的所有module列表[root@master ~]# salt 'node1' s

2021-11-03 18:32:13 742

原创 SaltStack数据系统

SaltStack数据系统SaltStack有两大数据系统,分别是:GrainsPillarsaltstack数据系统组件saltstack组件之GrainsGrains是SaltStack的一个组件,其存放着minion启动时收集到的信息。Grains是SaltStack组件中非常重要的组件之一,因为我们在做配置部署的过程中会经常使用它,Grains是SaltStack记录minion的一些静态信息的组件。可简单理解为Grains记录着每台minion的一些常用属性,比如CPU、内存、磁

2021-11-02 22:27:06 43

原创 SaltStack配置管理

配置管理YAML语言YAML是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。它类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。YAML语言的格式如下:house: family: name: Doe parents: - John - Jane children: - Paul - Mark - Simone

2021-11-02 17:41:31 70

原创 saltstack入门

介绍SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位。SaltStack提供了一个动态基础设施通信总线用于编排,远程执行、配置管理等等。SaltStack项目于2011年启动,年增长速度较快,五年期固定基础设施编制和配置管理的开源项目。SaltStack社区致力于保持盐项目集中、友好、健康、开放。简单来说它的两大基础功能就是:配置管理、远程命令执行。剩下就是根据你的需求自由组合,实现更复杂的功能和系统管理。

2021-11-02 00:45:31 102

原创 LNMP部署

环境说明:主机ip需要安装的服务系统localhost192.168.111.141nginx-1.20.1mysql-5.7.34php-8.0.10redhat8nginx的安装# 关闭防火墙和selinux[root@localhost ~]# systemctl disable --now firewalldRemoved /etc/systemd/system/multi-user.target.wants/firewalld.service.Remo

2021-10-26 16:34:17 88

原创 nginx工作原理及配置

模块与工作原理nginx由内核和模块组成。其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。模块分类nginx的模块从结构上分为核心模块、基础模块和第三方模块HTTP模块、EVENT模块和MAIL模块等属于核心模块HTTP Access模块、HTTP FastCGI模块、HTTP

2021-10-25 23:40:50 2751

原创 Keepalive(长连接)

长连接 、短连接、心跳机制HTTP协议与TCP/IP协议的关系:HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠地传递数据包,使得网络上接收端收到发送端所发出的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。如何理解HTTP协议是无状态的:HTTP协议是无状态的,指的是协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。

2021-10-24 22:25:24 438

原创 Keepalived脑裂监控

脑裂在高可用(HA)系统中,当联系2个节点的“心跳线”断开时,本来为一整体、动作协调的HA系统,就分裂成为2个独立的个体。由于相互失去了联系,都以为是对方出了故障。两个节点上的HA软件像“裂脑人”一样,争抢“共享资源”、争起“应用服务”,就会发生严重后果——或者共享资源被瓜分、2边“服务”都起不来了;或者2边“服务”都起来了,但同时读写“共享存储”,导致数据损坏(常见如数据库轮询着的联机日志出错)。  对付HA系统“裂脑”的对策,目前达成共识的的大概有以下几条:添加冗余的心跳线,例如:双线条线(心

2021-10-24 21:59:01 73

原创 keepalived高可用

简介Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由

2021-10-21 22:56:14 65

原创 kvm部署

简介KVM — 全称是基于内核的虚拟机(Kernel-based Virtual Machine)KVM是一个开源软件,基于内核的虚拟化技术,实际是嵌入系统的一个虚拟化模块,通过优化内核来使用虚拟技术,该内核模块使得 Linux 变成了一个Hypervisor,虚拟机使用 Linux 自身的调度器进行管理。KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux

2021-10-21 16:27:48 600

空空如也

空空如也

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

TA关注的人

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