自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (1)
  • 收藏
  • 关注

原创 监控容器并实现邮箱报警(cAdvisor 、AlertManager)

邮箱规则添加后无法启动

2021-12-30 16:51:50 2795 1

原创 Prometheus 容器化部署,配合Grafan画图工具监控节点

Prometheus、Grafan 容器化部署环境说明主机名IPmaster192.168.58.110client192.168.58.20在master主机上安装dockerdocker安装配置网络源(rhel红帽系统)[root@master ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo配置docker-c

2021-12-29 15:26:29 610 1

原创 kubernetes 部署jenkins

kubernetes 部署java项目

2021-12-27 22:07:40 624

原创 Service 对外暴露与应用

Service 对外暴露与应用ServiceKubernetes Service定义了这样一种抽象:逻辑上的一组 Pod,一种能够访问它们的策略 —— 一般被称为微服务。这一组 Pod 可以被 Service 访问到,一般是经过 selector实现的。举例:考虑一个图片处理 backend,它运行了3个副本。这些副本是可互换的 —— frontend 不需要关心它们调用了哪一个 backend 副本。 然而组成这一组 backend 程序的 Pod 实际上可能会发生变化,frontend 客户端不必

2021-12-25 12:17:40 747

原创 Kubernetes 进阶

Kubernetes 进阶Yaml基础Yaml编写规则大小写敏感使用缩进表示层级关系缩进时不允许使用Tal键,只允许使用空格缩进的空格数目不重要,只要相同层级的元素左侧对齐即可”#” 表示注释,从这个字符一直到行尾,都会被解析器忽略YAML只有两种结构类型需要知道: lists, mapsYAML MapsMaps的value既能够对应字符串也能够对应一个Maps。例如:apiVersion: v1kind: Podmetadata: name: test-site l

2021-12-21 21:00:19 2224

原创 kubernetes常用命令

kubernetes常用命令查看类kubectl describe nodes <node-name> (容器名)显示Node的详细信息[root@master ~]# kubectl describe nodes node01Name: node01 //nodemingziRoles: <none>Labels: beta.kubernetes.io/arch=amd64 //标签

2021-12-19 18:39:56 2518

原创 ks8 核心组件、Pod分类、网络模型

Kubernetes核心组件Kubernetes定义了一组构建块,它们可以共同提供部署、维护和扩展应用程序的机制。组成Kubernetes的组件设计为松耦合和可扩展的,这样可以满足多种不同的工作负载。可扩展性在很大程度上由Kubernetes API提供——它被作为扩展的内部组件以及Kubernetes上运行的容器等使用。Kubernetes 主要由以下几个核心组件组成:etcd 保存了整个集群的状态;kube-apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和

2021-12-19 16:40:59 4620

原创 kubernetes 部署

kubernetes 部署环境说明:主机名ip系统master192.168.58.110centos7node0112.168.58.111centos7node02192.168.58.125centos7安装前准备所有主机上都要做的设置主机名:# hostnamectl set-hostname <hostname> [root@master ~]# hostnamectl set-hostname master(node0

2021-12-18 17:16:03 733

原创 Kubernetes

Kubernetes简介k8s是Kubernetes的简称,因为K和S之间有8个字母,所以才会被称为k8s。Kubernetes可以实现容器集群的自动化部署、自动扩缩容、维护等功能。可以实现容器集群的自动化部署、自动扩缩容、维护等功能。Kubernetes能做什么?快速部署应用快速扩展应用无缝对接新的应用功能节省资源,优化硬件资源的使用Kubernetes 特点:可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)可扩展: 模块化, 插件化, 可挂载, 可组合

2021-12-17 16:14:15 237

原创 docker-compose编排语法及说明

docker-compose一、前言Compose 是一个用于定义和运行多容器 Docker 的工具。借助 Compose,您可以使用 YAML 文件来配置应用程序的服务。使用 Compose 基本上分为三步:使用 Dockerfile 定义您的应用程序的环境使用 docker-compose.yml 定义组成您的应用程序的服务运行docker compose up启动并运行程序compose 的优点:在单个主机上建立多个隔离环境,Compose 使用项目名称将环境彼此隔离。您可以在多个不

2021-12-16 18:42:11 1851

原创 Harbor部署及简单应用

Harbor虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务。它主要提供 Dcoker Registry 管理界面UI,可基于角色访问控制,镜像复制, AD/LDAP 集成,日志审核等功能,完全的支持中文。Harbor 的主要

2021-12-16 16:54:01 580

原创 Podman 安装及基本配置

PodmanPodman是什么?Podman 是一个无守护、开源的 Linux 本地工具,旨在使用 open Containers Initiative (OCI) 让容器和镜像更加方便地查找、运行、构建、共享和部署应用程序。Podman 提供了一个命令行接口(CLI),任何使用过 Docker 容器引擎的人都能很快上手 podman。大多数用户可以简单地将 Podman 别名为 Docker (alias Docker = Podman),没有任何问题。与其他常见的容器引擎 (Docker、CRI-

2021-12-14 17:46:31 10055 5

原创 Dockerfile基于alpine镜像部署haproxy

Dockerfile基于alpine镜像部署haproxy制作haproxy镜像[root@docker ~]# tree /haproxy//haproxy/├── dockerfile├── entrypoint.sh└── files ├── haproxy-2.5.0.tar.gz ├── haproxy.cfg ├── install.sh └── start.shdockerfile[root@docker haproxy]# cat dock

2021-12-12 23:55:00 414

原创 dockerfile部署haproxy

使用dockerfile编写haproxy镜像目录结构[root@docker /]# tree /haproxy//haproxy/├── dockerfile└── files ├── haproxy-2.4.0.tar.gz ├── haproxy-2.5.0.tar.gz ├── haproxy.cfg ├── install.sh └── start.shinstall.sh[root@docker /]# cat haproxy/file

2021-12-10 21:43:25 1866

原创 Dockerfile

Dockerfile基本结构Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义镜像。Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行。Docker分为四部分:基础镜像信息维护者信息镜像操作指令容器启动时默认要执行的指令例如:# This dockerfile uses the ubuntu image# VERSION 2 - EDITION 1# Author: seancheng# Command fo

2021-12-07 18:39:59 161

原创 Docker 存储卷

docker存储卷COW机制Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那么该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本依然存在,只是已经被读写层中该文件的副本所隐藏,这就是“写时复制(COW)”机制。什么是存储卷存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立绑定关系。这就意味着,当我们在容器中的这个目录下写入数据时,容器会将其

2021-12-06 18:52:23 366

原创 docker容器网络配置

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

2021-12-05 16:09:29 1024

原创 Docker 创建LNMP镜像

基于centos镜像编译部署LNMP环境准备拉取centos官方镜像[root@docker ~]# docker pull centosUsing default tag: latestlatest: Pulling from library/centosa1d0c7532777: Pull complete Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177Status: Dow

2021-12-03 22:35:30 3283

原创 虚拟化网络、Docker容器网络

虚拟化网络Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己都在独立的网络中。而且不同Network Namespace的资源相互不可见,彼此之间无法通信。每个新创建的 Network Namespace 默认有一个本地环回接口 lo,除此之外,所有的其他网络设备(物理/虚拟网络接口,网桥等)只能属于一个 Network Namespace。每个 socket 也只能属

2021-12-03 17:25:44 228

原创 Docker 镜像管理

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

2021-12-02 20:54:19 480

原创 Docker 基本用法

Docker 基本用法Docker架构说明Docker使用C/S体系的架构,Docker客户端与Docker守护进程通信,Docker守护进程负责构建,运行和分发Docker容器。Docker客户端和守护进程可以在同一个系统上运行,也可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程使用REST API通过unix套接字或网络接口进行通信。下面是Docker核心组件及元素说明:Docker Daemon: dockerd,用来监听Docker API的请求和管理

2021-12-01 17:40:55 915

原创 Docker

Docker每个人都听说过容器,那么容器到底是什么呢?软件的发展使这项技术以多种方式得以实现,而Docker则是最流行的一种。因为容器的可移植性以及它隔离工作环境的特点可以限制它对底层计算的影响以及影响范围。Linux 控制组Linux控制组(cgroups)是一个内核功能,用于限制,记录和隔离一个或多个进程对CPU,内存,磁盘I/O,以及网络的使用量及访问。控制组技术最初是由谷歌开发的,最终在2.6.24版本(2008年1月)中并入Linux内核主线。

2021-11-30 18:26:01 231

原创 SaltStack进阶

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

2021-11-29 19:20:37 778

原创 SaltStack&salt-ssh

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

2021-11-29 16:09:28 75

原创 Prometheus

PrometheusPrometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,由 SoundCloud 公司开发。Prometheus 基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 HTTP 接口就可以接入监控系统,不需要任何 SDK 或者其他的集成过程。这样做非常适合虚拟化环境比如 VM 或者 Docker 。Prometheus 应该是为数不多的适合 Docker、Mesos、Kubernetes 环境的监控系统之一

2021-11-25 19:35:42 994

原创 saltstack系统初始化

saltstack系统初始化系统初始化流程图目录[root@master base]# tree init/init/├── chrony│ ├── files│ │ └── chrony.conf│ └── main.sls├── firewalld│ └── main.sls├── history│ └── main.sls├── kernel│ ├── files│ │ ├── limits.conf│ │ └── sysc

2021-11-15 09:19:34 92

原创 satlstack 部署lnmp

satlstack 部署lnmp目录/srv/salt/base/[root@master ~]# tree /srv/salt/base//srv/salt/base/├── lnmp│ └── mian.sls└── modules ├── application │ └── php │ ├── file │ │ ├── install.sh │ │ ├── oniguruma-devel-6.8.

2021-11-11 23:16:42 183

原创 saltstack部署zabbix

saltstack部署zabbix目录结构[root@master ~]# tree /srv/salt/prod//srv/salt/prod/├── modules│ ├── application│ │ └── php│ │ ├── files│ │ │ ├── install.sh│ │ │ ├── oniguruma-devel-6.8.2-2.el8.x86_64.rpm│ │ │ ├──

2021-11-11 00:11:00 1032

原创 SaltStack之return与job管理

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

2021-11-05 16:54:04 127

原创 SaltStack常用的模块

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

2021-11-03 16:22:20 350

原创 SaltStack数据系统

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

2021-11-02 17:16:18 75

原创 SaltStack之配置管理

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

2021-11-02 15:08:46 1428

原创 SaltStack

SaltStack简介SaltStack 是一种基于 C/S 架构的服务器基础架构集中化管理平台,管理端称为 Master,客户端称为 Minion。SaltStack 具备配置管理、远程执行、监控等功能,一般可以理解为是简化版的 Puppet 和加强版的 Func。SaltStack 本身是基于 Python 语言开发实现,结合了轻量级的消息队列软件 ZeroMQ 与 Python 第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack 和 PyYAML 等)构建。

2021-11-01 16:28:56 243

原创 编译安装平滑升级

编译安装平滑升级平滑升级的步骤获取之前的编译参数下载新模块重新编译软件,加上–add-module=新模块的解压路径备份原程序并停止服务把原程序用新程序覆盖启动新程序实例环境说明:主机名ip职责master192.168.58.10nginxlocalhost192.168.58.20clientnginx新增第三方模块echo-nginx-module# 获取之前的编译参数[root@master ~]# ng

2021-10-27 10:46:03 518

原创 LNMP架构部署

LNMP架构部署简介LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。LNMP的特性Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量

2021-10-26 15:39:30 200

原创 Nginx的部署与配置

Nginx简介Nginx是一款自由的、开源的、高性能的HTTP服务器和 反向代理 服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。Nginx使用基于事件驱动架构,使得其可以支持数以百万级别的TCP连接高度的模块化和自由软件许可证使得第三方模块层出不穷(开源)Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris,AIX,Mac OS等操作

2021-10-25 13:38:24 2911

原创 长连接 、短连接、心跳机制

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

2021-10-22 14:37:52 865

原创 Keepalived脑裂监控

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

2021-10-22 14:01:51 167

原创 Keepalived实现Httpd负载均衡机高可用

Keepalived实现Nginx负载均衡机高可用主机名ip职责系统master192.168.58.10Keepalived、httpdredhat-8slave192.168.58.20Keepalived、httpdredhat-8client192.168.58.30redhat-8本次高可用虚拟IP(VIP)地址暂定为 192.168.58.200Keepalived安装##master//关闭防火墙[root@master

2021-10-21 17:11:31 212

原创 ESXi的安装与使用

ESXi简介ESXi是一个裸机虚拟化管理程序,是创建自动化的动态数据中心的基础,它提供一个虚拟层对物理主机的处理器、内存、存储和网络连接资源进行抽象处理,使其转化成多个虚拟机。在ESXi体系结构中,虚拟机中运行的应用无需直接访问底层硬件设备即可访问CPU、内存、磁盘和网络接口。ESXi虚拟机管理程序称为VMkernel,它可以从虚拟机监控器接收虚拟机的资源请求,然后将这些请求传送给物理硬件。每台虚拟机上的VMM负责向虚拟机提供虚拟硬件并接受请求。用户可以通过下列界面访问ESXi主机:• vSpher

2021-10-20 20:19:57 21284 1

空空如也

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

TA关注的人

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