- 博客(73)
- 收藏
- 关注
原创 kubernetes之service
1. service介绍Kubernetes Service定义了这样一种抽象:逻辑上的一组Pod,一种可以访问它们的策略 —— 通常被称为微服务。这一组Pod能够被Service访问到,通常是通过selector实现的。Service可以提供负载均衡的能力,但是使用上存在如下限制:只能提供4层负载均衡能力,而没有7层功能。有时我们可能需要更多的匹配规则来转发请求,这点上4层负载均衡是不支持的1.1 VIP和Service代理在 Kubernetes 集群中,每个 Node 运行一个 kube
2021-12-27 12:56:40 311
原创 kubernetes工作负载控制器的应用
1. 工作负载控制器是什么工作负载控制器(Workload Controllers)是K8s的一个抽象概念,用于更高级层次对象,部署和管理Pod。常用工作负载控制器:Deployment :无状态应用部署StatefulSet :有状态应用部署DaemonSet :确保所有Node运行同一个PodJob :一次性任务Cronjob :定时任务控制器的作用:管理Pod对象使用标签与Pod关联控制器实现了Pod的运维,例如滚动更新、伸缩、副本管理、维护Pod状态等。2
2021-12-25 13:02:36 280
原创 kubernetes之资源调度的方式
1. 容器资源的限制表示最多使用多少cpu和内存资源resources.limits.cpuresources.limits.memory表示最少使用的CPU和内存资源resources.requests.cpuresources.requests.memory[root@master ~]# kubectl describe nodes node1.example.com //节点的信息省略N行Allocated resources: (Total limits may be
2021-12-24 11:59:49 411
原创 资源定义haproxy的pod负载均衡
重启策略:Always:当容器终止退出后,总是重启容器,默认策略。OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。Never:当容器终止退出,从不重启容器。健康检查类型:livenessProbe (存活检查)∶如果检查失败,将杀死容器,根据Pod的restartPolicy来操作。readinessProbe (就绪检查)︰如果检查失败,Kubernetes会把Podservice endpoints中剔除。#端口探测apiVersion: v1kind: Podm
2021-12-23 13:15:00 197
原创 kubernetes实现haproxy负载均衡
//创建两个pod[root@master ~]# mkdir httpd1[root@master ~]# cd httpd1/[root@master httpd1]# vim dockerfile[root@master httpd1]# cat dockerfile FROM busybox RUN mkdir /data && echo 'httpd1' > /data/index.htmlCMD ["/bin/httpd","-f","-h","/dat
2021-12-22 13:03:44 119
原创 kubernetes的基础用法
1. 什么是pod?pod相当于逻辑主机,每个pod都有自己的ip地址pod内的容器共享相同的ip和端口空间默认情况下,每个容器的文件系统与其他容器完全隔离可以理解为:容器组,同时pod相当于逻辑主机,进入pod后仿佛进入一个linux主机,命令都可用(linux系统下),该“主机”内又有很多容器,进入后又仿佛是又进了一个linux主机。1.1 pod的分类pod分为两种类型:自主式pod控制器管理的pod1,自我管理的pod,创建以后仍然需要提交给apiserver,由apise
2021-12-20 12:54:47 137
原创 k8s集群部署
集群结构角色IPmaster192.168.35.135node1192.168.35.136node2192.168.35.137部署#需在三台主机上操作//关闭防火墙[root@master ~]# systemctl disable --now firewalld//关闭selinux[root@master ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config//关闭swap分区[
2021-12-18 11:42:34 567
原创 kubernetes简介
K8s简介Kubernetes官网(https://kubernetes.io/).Kubernetes是一个全新的基于容器技术的分布式架构领先方案,Kubernetes(k8s)是Google开源的容器集群管理系统。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性K8s特性自动装箱基于资源依赖及其约束能够自动完成容器的部署且不影响自我修复一旦容器崩了,可以自动启动一个新的容器替代从而实现自我修复
2021-12-17 13:01:01 112
原创 podman加速器配置,harbor镜像仓库部署
Docker加速器registries加速器[root@localhost ~]# cat /etc/redhat-release CentOS Stream release 8[root@localhost ~]# cd /etc/containers/[root@localhost containers]# lscerts.d policy.json registries.conf.d storage.confoci registries.conf registr
2021-12-16 13:11:15 3303
原创 podman
Podman是一个开源项目,可在大多数Linux平台上使用并开源在GitHub上。Podman是一个无守护进程的容器引擎,用于在Linux系统上开发,管理和运行Open Container Initiative(OCI)容器和容器镜像。 Podman提供了一个与Docker兼容的命令行前端,它可以简单地作为Docker cli,简单地说你可以直接添加别名:alias docker = podman来使用podman。Podman控制下的容器可以由root用户运行,也可以由非特权用户运行。Podman管
2021-12-14 11:16:20 842
原创 dockerfile基于alpine构建haproxy
[root@localhost ~]# tree haproxy/haproxy/├── dockerfile└── files ├── env.txt ├── haproxy-2.5.0.tar.gz ├── haproxycfg.sh ├── install.sh └── sysctl.conf1 directory, 6 files[root@localhost ~]#
2021-12-12 21:41:55 3485
原创 dockerfile构建haproxy
[root@localhost ~]# tree haproxy/haproxy/├── dockerfile└── files ├── haproxy-2.5.0.tar.gz ├── haproxy.cfg ├── install.sh └── start.sh1 directory, 5 files[root@localhost ~]# ```
2021-12-11 11:11:02 1672
原创 apache的dockerfile源码方式编写
Dockerfile基于centos镜像编译安装httpd[root@localhost ~]# tree.├── anaconda-ks.cfg└── apache ├── Dockerfile └── packages ├── apr-1.7.0.tar.bz2 ├── apr-util-1.6.1.tar.bz2 └── httpd-2.4.43.tar.bz2[root@localhost ~]# vim apache/D
2021-12-08 13:10:00 205
原创 docker数据卷容器
如果用户需要在容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器其实就是一个普通的容器,专门用它提供数据卷供其他容器挂载,使用方法如下:- 创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata```
2021-12-07 23:02:06 126
原创 docker存储卷及dockers容器源码部署httpd
Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那么该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本依然存在,只是已经被读写层中该文件的副本所隐藏,这就是“写时复制(COW)”机制。
2021-12-07 01:16:26 400
原创 docker容器网络配置及常用操作
Linux内核实现名称空间的创建ip netns(网络名称空间)命令可以借助ip netns命令来完成对 Network Namespace 的各种操作。ip netns命令来自于iproute安装包,一般系统会默认安装,如果没有的话,请自行安装。注意:ip netns命令修改网络配置时需要 sudo 权限。可以通过ip netns命令完成对Network Namespace 的相关操作,可以通过ip netns help查看命令帮助信息:[root@localhost ~]# rpm -qa|g
2021-12-06 13:23:35 316
原创 基于docker容器搭建lnmp
nginx 镜像// 拉取镜像[root@localhost ~]# docker pull centosUsing default tag: latestlatest: Pulling from library/centosa1d0c7532777: Pull complete Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177Status: Downloaded newer imag
2021-12-04 13:14:37 278
原创 docker镜像管理基础
镜像的概念镜像可以理解为应用程序的集装箱,而docker用来装卸集装箱。docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动容器。docker镜像采用分层构建机制,最底层为bootfs,其上为rootfsbootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完成后会被卸载以节约内存资源rootfs:位于bootfs之上,表现为docker容器的根文件系统传统模式中,系统启动之时,内核挂载rootfs会首先将其挂载为“只读”模式,完整性自
2021-12-03 13:22:36 140
原创 docker基础用法
一、Docker是什么?《Docker开发实践》中讲了个故事:20世纪60年代以前的海运,货物都放置在一起,很容易挤压受损。同时,不同的运输方式之间的转运也很麻烦,例如从码头和火车汽车转运卸货时。不同货物和不同交通工具之间的组合是一个巨大的二维矩阵。海运界最后达成了一致,制定了国际标准集装箱来解决这个棘手的问题。所有货物都打包进集装箱互相隔离,所有交通工具都通过集装箱转运,极大地提供了运输的安全性和效率。在软件开发中我们也经常碰到同样的问题,使用了各种各样技术框架的应用程序,从前端静态网站到后端数据库,
2021-12-02 13:15:24 248
原创 docker容器技术基础入门及LXC的配置
docker简介首先介绍一下容器与虚拟化的区别VM(VMware)在宿主机器、宿主机器操作系统的基础上创建虚拟层、虚拟化的操作系统、虚拟化的仓库,然后再安装应用;Docker在宿主机器的操作系统上创建Docker引擎,直接在宿主主机的操作系统上调用硬件资源,而不是虚拟化操作系统和硬件资源,所以操作速度快。docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,
2021-12-01 13:09:06 1317
原创 SaltStack进阶
masterless的应用应用场景master 与 minion 网络不通或通信有延迟,即网络不稳定想在 minion 端直接执行状态传统的 SaltStack 是需要通过 master 来执行状态控制 minion 从而实现状态的管理,但是当网络不稳定的时候,当想在minion本地执行状态的时候,当在只有一台主机的时候,想执行状态该怎么办呢?这就需要用到 masterless 了。masterless配置修改配置文件minion注释master行取消注释file_client并设其值
2021-11-30 12:50:12 58
原创 salt-ssh部署salt-minion
一、salt-ssh1.1 salt-ssh的特点远程系统需要Python支持,除非使用-r选项发送原始ssh命令salt-ssh是一个软件包,需安装之后才能使用,命令本身也是salt-sshsalt-ssh不会取代标准的Salt通信系统,它只是提供了一个基于SSH的替代方案,不需ZeroMQ和agent请注意,由于所有与Salt SSH的通信都是通过SSH执行的,因此它比使用ZeroMQ的标准Salt慢得多1.2 salt-ssh远程管理的方式salt-ssh有两种方式实现远程管理,一种
2021-11-29 12:39:22 669
原创 普罗米修斯部署
环境说明:主机名称主机名称安装服务master(服务端)192.168.8.130prometheusnode1(客户端)192.168.8.130node_exporter安装服务端//下载安装包[root@master ~]# cd /usr/src/[root@master src]# wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2
2021-11-26 12:04:50 75
原创 saltstack编写系统初始化状态
目录结构[root@master ~]# cd /srv/salt/base/[root@master base]# tree init/init/├── chrony│ ├── files│ │ └── chrony.conf│ └── main.sls├── firewalld│ └── main.sls├── history│ └── main.sls├── kernel│ ├── files│ │ ├── limits.conf│
2021-11-13 13:04:12 57
原创 saltstack部署zabbix
编写状态文件[root@master prod]# tree.├── modules│ ├── application│ │ └── php7│ │ ├── files│ │ │ ├── install.sh│ │ │ ├── oniguruma-devel-6.8.2-2.el8.x86_64.rpm│ │ │ ├── php-7.4.24.tar.gz│ │ │ ├── php
2021-11-11 10:52:06 54
原创 SaltStack之return与job管理
一、SaltStack组件之returnreturn组件可以理解为SaltStack系统对执行Minion返回后的数据进行存储或者返回给其他程序,它支持多种存储方式,比如用MySQL、MongoDB、Redis、Memcache等,通过return我们可以对SaltStack的每次操作进行记录,对以后日志审计提供了数据来源。目前官方已经支持30种return数据存储与接口,我们可以很方便的配置与使用它。当然也支持自己定义的return,自定义的return需由python来编写。在选择和配置好要使用的re
2021-11-08 11:19:32 56
原创 SaltStack常用的模块
一. SaltStack模块介绍官方文档:https://docs.saltproject.io/saltstack有执行模块与状态模块两种。Module是日常使用SaltStack接触最多的一个组件,其用于管理对象操作,这也是SaltStack通过Push的方式进行管理的入口,比如我们日常简单的执行命令、查看包安装情况、查看服务运行情况等工作都是通过SaltStack Module来实现的。当安装好Master和Minion包后,系统上会安装很多Module,大家可以通过以下命令查看支持的所有Mo
2021-11-04 10:55:22 650
原创 SaltStack之配置管理
一. YAML语言YAML是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。它类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。YAML语言的格式如下:house: family: name: Doe parents: - John - Jane children: - Paul - Mark - Simone
2021-11-03 11:40:03 109
原创 SaltStack简介
SaltStack简介SaltStack是基础架构管理的一种自动化工具。部署轻松,在几分钟内可运行起来,扩展性好,很容易管理上万台服务器,速度够快。与服务器之间的交流,以毫秒为单位。SaltStack提供了一个动态基础设施通信总线用于编排,远程执行、配置管理等等。SaltStack项目于2011年启动,年增长速度较快,五年期固定基础设施编制和配置管理的开源项目。SaltStack社区致力于保持slat项目集中、友好、健康、开放。saltstack是基于python开发的一套C/S自动化运维工具,通信采用
2021-11-02 11:48:27 330
原创 nginx动静分离
一、动静分离是什么1. 概念动静分离,通过中间件将动态请求和静态请求进行分离;可以减少不必要的请求消耗,同时能减少请求的延时。通过中间件将动态请求和静态请求分离,逻辑图如下:二、配置动静分离1.1 安装httpd服务//下载和解压httpd、apr以及apr-util[root@httpd src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.49.tar.gz[root@httpd src]# wge
2021-11-01 10:23:07 63
原创 zabbix监控nginx
1. 监控nginx驻留连接数[root@nginx scripts]# curl -s 192.168.8.137/statusActive connections: 1 server accepts handled requests 234 234 281 Reading: 0 Writing: 1 Waiting: 0 [root@nginx scripts]# 状态码表示的意义Active connections当前所有处于打开状态的连接数accepts
2021-10-29 12:34:46 118
原创 nginx配置2
1,开启状态界面开启status:47 location /status {48 stub_status;49 }访问状态页面的方式:ip+/status状态页面信息详解:状态码表示的意义Active connections当前所有处于打开状态的连接数accepts总共处理了多少个连接handled成功创建多少握手requests总共处理了多少个请求Readingnginx读取到客
2021-10-29 12:01:47 54
原创 nginx配置
日志格式[root@localhost conf]# pwd/usr/local/nginx/conf[root@localhost conf]# vim nginx.conf[root@localhost conf]# systemctl restart nginx.service 17 http { 18 include mime.types; 19 default_type application/octet-stream; 20 21 log
2021-10-28 11:54:29 908
原创 lnmp的部署
1、下载所需安装包关闭防火墙和selinux[root@localhost ~]# systemctl disable --now firewalld.serviceRemoved /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@localhost ~]# vi /etc/
2021-10-27 11:14:16 64
原创 nginx
一、nginx简介nginx(发音同engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。nginx由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler使用。第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。nginx
2021-10-26 11:12:34 318
原创 zabbix监控keepalived高可用(脑裂)
1. keepalived高可用 脑裂简介在高可用(HA)系统中,当联系2个节点的“心跳线”断开时,本来为一整体、动作协调的HA系统,就分裂成为2个独立的个体。由于相互失去了联系,都以为是对方出了故障。两个节点上的HA软件像“裂脑人”一样,争抢“共享资源”、争起“应用服务”,就会发生严重后果——或者共享资源被瓜分、2边“服务”都起不来了;或者2边“服务”都起来了,但同时读写“共享存储”,导致数据损坏(常见如数据库轮询着的联机日志出错)。对付HA系统“裂脑”的对策,目前达成共识的的大概有以下几条:添加
2021-10-25 11:43:05 227
原创 keepalived高可用
1. keepalived简介1.1keepalived是什么?Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router RedundancyProtocol(虚拟
2021-10-25 11:32:12 94
原创 ESXI虚拟化
1、ESXIESXI是VMware的企业虚拟化产品,可视为虚拟化的平台基础,部署于实体服务器。不同于VMware Workstation、VMware Server,ESXI采用的是(裸金属或裸机)的一种安装方式,直接将Hypervisor 安装在实体机器上,并不需要实现安装OS。Hypervisor就是掌握硬件资源的微内核。ESXI 专为运行虚拟机、最大限度降低配置要求和简化部署设计。ESXi 体系结构采用基于 API 的合作伙伴集成模型,因此不再需要安装和管理第三方管理代理。 利用远程命令行脚本编写
2021-10-25 11:12:21 1939
原创 kvm虚拟化
一、虚拟化介绍虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)。那么 Host 是如何将自己的硬件资源虚拟化,并提供给 Guest 使用的呢?这个主要是通过一个叫做 Hypervisor 的程序实现的。根据 Hypervisor 的实现方式和所处的位置,虚拟化又分为两种:全虚拟化:裸金属(没有装操作系统的
2021-10-21 12:49:08 620
原创 Jenkins发布Java项目
1. 发布java项目的步骤:1,拉取代码并打包mvn clean package2,备份目标服务器上已有的要发布项目3,将包传到目标服务器的webapss目录中需做免密登录4,重启目标服务器的tomcat服务5,修改项目的配置6,重启目标服务器的tomcat服务2.Tomcat部署//安装jdk环境[root@localhost ~]# yum -y install java-11-openjdk*//下载tomcat[root@localhost ~]# cd /usr/src
2021-10-20 12:46:55 132
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人