自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

1

1

  • 博客(99)
  • 收藏
  • 关注

原创 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 21:04:15 749 1

原创 利用k8s部署Java项目

利用k8s部署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.jar

2021-12-27 21:51:26 619

原创 Service 对外暴露与应用

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

2021-12-26 10:18:30 396

原创 k8s实战

1.创建一个deployment副本数为3,然后滚动更新镜像版本,并记录这个更新记录,最后再回滚到上一个版本[root@k8s-master ~]# cat test.yaml apiVersion: apps/v1kind: Deploymentmetadata: name: webspec: replicas: 3 revisionHistoryLimit: 5 strategy: rollingUpdate: maxSurge: 50%

2021-12-26 10:17:39 1693

原创 工作负载型控制器的应用

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

2021-12-24 21:06:45 1016

原创 k8s资源调度

k8s资源调度Scheduler调度器做为Kubernetes三大核心组件之一, 承载着整个集群资源的调度功能,其根据特定调度算法和策略,将Pod调度到最优工作节点上,从而更合理与充分的利用集群计算资源。其作用是根据特定的调度算法和策略将Pod调度到指定的计算节点(Node)上,其做为单独的程序运行,启动之后会一直监听API Server,获取PodSpec.NodeName为空的Pod,对每个Pod都会创建一个绑定。默认情况下,k8s的调度器采用扩散策略,将同一集群内部的pod对象调度到不同的Node

2021-12-24 00:07:01 496

原创 通过资源定义方式创建一个haproxy的pod进行负载均衡

通过资源定义方式创建一个haproxy的pod进行负载均衡yaml文件[root@k8s-master manifes]# cat haproxy.yaml ---apiVersion: apps/v1kind: Deploymentmetadata: name: rs1 namespace: defaultspec: replicas: 1 selector: matchLabels: app: nginx1 template: metadat

2021-12-21 19:30:54 1664 1

原创 kubectl常用命令

kubectl常用命令get# 以 ps 输出格式列出所有 pod[root@k8s-master ~]# kubectl get podsNAME READY STATUS RESTARTS AGEmyapp-6d8d776547-jpjgk 1/1 Running 0 10mmyapp-6d8d776547-lddcv 1/1 Running 0 10mmyapp-6d

2021-12-20 17:40:16 1894

原创 k8s的pod分类、核心组件、网络模型

k8s的pod分类、核心组件、网络模型、kubectl常用命令k8s的pod分类自主式Pod这种Pod本身是不能自我修复的,当Pod被创建后(不论是由你直接创建还是被其他Controller),都会被Kuberentes调度到集群的Node上。直到Pod的进程终止、被删掉、因为缺少资源而被驱逐、或者Node故障之前这个Pod都会一直保持在那个Node上。Pod不会自愈。如果Pod运行的Node故障,或者是调度器本身故障,这个Pod就会被删除。同样的,如果Pod所在Node缺少资源或者Pod处于

2021-12-19 14:10:27 1324

原创 Kubernetes快速部署

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

2021-12-18 14:58:27 2516

原创 kubernetes

kubernetesk8s简介k8s全称kubernetes,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,正在如火如荼的发展。首先,我们从容器技术谈起,在容器技术之前,大家开发用虚拟机比较多,比如vmware和openstack,我们可以使用虚拟机在我们的操作系统中模拟出多台子电脑(Linux),子电脑之间是相互隔离的,但是虚拟机对于开发和运维人员而言,存在启动慢,占用空间大,不易迁移的

2021-12-17 17:08:30 99

原创 harbor镜像仓库的部署、docker-compose语法

harbor镜像仓库的部署、docker-compose语法harbor镜像仓库的部署Harbor无论是使用Docker-distribution去自建仓库,还是通过官方镜像跑容器的方式去自建仓库,通过前面的演示我们可以发现其是非常的简陋的,还不如直接使用官方的Docker Hub去管理镜像来得方便,至少官方的Docker Hub能够通过web界面来管理镜像,还能在web界面执行搜索,还能基于Dockerfile利用Webhooks和Automated Builds实现自动构建镜像的功能,用户不需要在

2021-12-16 15:55:57 762

原创 podman容器的开机自启

pdoman容器的开机自启使用podman generate --help查看用法[root@podman ~]# podman generate --helpGenerate structured data based on containers, pods or volumesDescription: Generate structured data (e.g., Kubernetes YAML or systemd units) based on containers, pods or

2021-12-15 14:27:28 1598 1

原创 podman

podmanpodman的安装[root@podman ~]# yum -y install podman普通用户使用podman的方式普通用户使用的配置在允许没有root特权的用户运行Podman之前,管理员必须安装或构建Podman并完成以下配置cgroup V2Linux内核功能允许用户限制普通用户容器可以使用的资源,如果使用cgroup V2启用了运行Podman的Linux发行版,则可能需要更改默认的OCI运行时。某些较旧的版本runc不适用于cgroup V2,必须切换到备用OC

2021-12-14 14:22:34 1457

原创 编写haproxy镜像

制作haproxy镜像结构[root@localhost ~]# tree haproxy/haproxy/├── Dockerfile└── files ├── haproxy-2.4.0.tar.gz ├── haproxy.cfg ├── install.sh └── start.sh[root@localhost ~]# tree /haproxy_config//haproxy_config/└── RSs.txtDockerfile[roo

2021-12-12 18:26:06 791

原创 使用dockerfile编写haproxy镜像

使用dockerfile编写haproxy镜像[root@localhost ~]# tree haproxy/haproxy/├── Dockerfile└── files ├── haproxy-2.4.0.tar.gz ├── haproxy.cfg └── install.shDockerfile[root@localhost ~]# cat haproxy/Dockerfile FROM centosLABEL MAINTAINER='xxkk 1@2

2021-12-10 18:02:21 1759

原创 使用dockerfile制作apache镜像

使用dockerfile制作apache镜像创建apache目录[root@localhost ~]# tree apache/apache/├── Dockerfile└── files ├── apr-1.7.0.tar.gz ├── apr-util-1.6.1.tar.gz └── httpd-2.4.49.tar.gz1 directory, 4 files编写Dockerfile[root@localhost apache]# cat Dockerf

2021-12-08 21:18:35 1542

原创 创建一个nginx容器(提供配置文件和网页文件)

创建一个nginx容器(提供配置文件和网页文件)创建一个nginx容器[root@localhost ~]# docker run -tid --name nginx centos81cd1d33c50f836b71caf4ed4477dc93411e7fc6dd90274e9d1a3cb2f68bd2b2[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS

2021-12-07 15:13:16 2718

原创 docker存储卷

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

2021-12-06 16:06:31 154

原创 docker容器网络配置

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

2021-12-05 13:28:06 185

原创 基于容器的方式制作一个nginx镜像、mysql镜像、php镜像

nginx[root@localhost ~]# docker run -tid --name nginx centos4fc4c145ed73916c7893e39837a5a04b3fbbc18dba0cf09f85c9e4f4efb588c1[root@localhost ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES4fc

2021-12-04 00:33:36 905

原创 docker容器网络

docker容器网络docker容器网络Docker在安装后自动提供3种网络,可以使用docker network ls命令查看[root@localhost ~]# docker network lsNETWORK ID NAME DRIVER SCOPEcd97bb997b84 bridge bridge local0a04824fc9b6

2021-12-03 21:42:34 68

原创 docker容器虚拟化

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

2021-12-03 21:37:58 50

原创 docker镜像管理基础

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

2021-12-02 15:05:03 107

原创 docker的基本用法

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 f

2021-12-01 15:42:11 2168

原创 LXC是什么、什么是docker、docker产生的背景

LXCLXC是什么LXC,其名称来自Linux软件容器(Linux Containers)的缩写,一种操作系统层虚拟化(Operating system–level virtualization)技术,为Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。透过统一的名字空间和共享API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以容易的创建和管理系统或应用容器

2021-11-30 18:47:14 4324

原创 salt-syndic分布式架构

salt-syndic分布式架构1.salt-syndic架构图2.salt-syndic的优劣势优势:可以通过syndic实现更复杂的salt架构减轻master的负担劣势:syndic的/srv目录下的salt和pillar目录内容要与最顶层的master下的一致,所以要进行数据同步,同步方案同salt-master高可用最顶层的master不知道自己有几个syndic,它只知道自己有多少个minion,并不知道这些minion是由哪些syndic来管理的3.sa

2021-11-30 18:32:49 171

原创 SaltStack进阶

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

2021-11-29 13:32:40 139

原创 SaltStack之salt-ssh

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

2021-11-29 13:32:31 696

原创 部署prometheus

部署prometheus1. 环境主机IP监控机192.168.72.141被监控机192.168.72.1392. 部署2.1 安装go环境[root@master prometheus]# dnf -y install go上次元数据过期检查:4:22:23 前,执行于 2021年11月24日 星期三 21时00分43秒。依赖关系解决。============================================ 软件包 架构 版

2021-11-25 15:28:52 647

原创 saltstack系统初始化

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│ └

2021-11-15 08:53:39 689

原创 saltstack部署LNMP

saltstack部署LNMP[root@master ~]# tree /srv/salt/prod//srv/salt/prod/├── LNMP│ ├── files│ │ ├── index.php│ │ ├── my.cnf│ │ └── mysql.conf│ ├── lnmp.sls│ ├── mysql.sls│ └── nginx.sls├── modules│ ├── application│ │ └── ph

2021-11-12 00:46:18 65

原创 saltstack部署zabbix

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

2021-11-10 19:22:26 2689

原创 SaltStack之return与job管理

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

2021-11-07 11:20:14 79

原创 SaltStack常用的模块

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

2021-11-03 13:47:19 358

原创 saltstack高级状态的使用、top file的使用、数据系统grains和pillar的使用

saltstack高级状态的使用、top file的使用、数据系统grains和pillar的使用1. YAML语言YAML是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。它类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。YAML语言的格式如下:house: family: name: Doe parents: - John - Jane chi

2021-11-03 08:37:13 377

原创 saltstack的部署、认证机制|、远程执行、目标匹配

saltstack的部署、认证机制、远程执行、目标匹配(写博客)1. SaltStack介绍1.1 自动化运维工具作为一个运维人员,很大一部分工作是在业务的配置管理和状态维护以及版本发布上,而当业务场景及公司规模上了一定规模后,人为手工的去做这些工作将变得极其困难,此时我们将需要利用一些自动化运维的工具来达到批量管理的目的。常用的自动化运维工具有:puppetansiblesaltstack此三款属同类工具,皆可用来提高运维管理的效率,但它们又各有优势,目前主流的自动化运维工具是ansi

2021-11-01 16:32:33 222 1

原创 Nginx实现动静分离

bNginx实现动静分离环境:主机IPnginx192.168.72.135LNMP192.168.72.138apache192.168.72.131部署LNMP//nginx# 关闭防火墙[root@slave ~]# systemctl disable --now firewalld[root@slave ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config[root@sl

2021-10-29 13:13:43 65

原创 zabbix监控nginx状态页面

//脚本[root@slave ~]# cd /scripts/[root@slave scripts]# lsnotify.sh Waiting.shReading.sh Writing.sh[root@slave scripts]# cat Reading.sh #/bin/bashif [ `curl -s 192.168.72.138/status|grep Waiting|awk '{print $2}'` -ne 0 ]then echo "0"els.

2021-10-28 11:19:31 822

原创 搭建LNMP架构

LNMPnginx# 关闭防火墙[root@slave ~]# systemctl disable --now firewalld[root@slave ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config[root@slave ~]# setenforce 0# 创建系统用户nginx[root@slave ~]# useradd -r -M -s /sbin/nologin nginx# 安装依赖包[root

2021-10-26 13:52:36 778

空空如也

空空如也

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

TA关注的人

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