自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

minyao

922

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

原创 ssh使用脚本生成密钥

2022-04-26 10:09:01 1136

原创 kubernetes部署java应用

利用k8s部署Java项目构建镜像[root@master kubenetres]# docker build -f Dockerfile -t test3:1.0 .Sending build context to Docker daemon 74.54MBStep 1/3 : FROM openjdk:18-jdk-alpine3.15 ---> dfg56hghg6h6Step 2/3 : COPY halo-1.3.1.jar /usr/local/halo-1.3.1.jar

2021-12-28 14:08:59 309

原创 nginx对K8s集群中的Service做负载均衡

资源清单文件[root@master manifest]# cat test.yml ---apiVersion: apps/v1kind: Deployment metadata: name: web namespace: default spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: ngin

2021-12-28 12:54:16 1393

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

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

2021-12-27 10:30:00 368

原创 K8s工作负载型控制器

工作负载是在kubernetes上运行的应用程序。无论你的负载是单一组件还是由多个一同工作的组件构成,在Kubernetes中你可以在一组Pods中运行它。在Kuberneres中,pod代表的是集群上处于运行状态的一组容器。Kubernetes Pods有确定的生命周期。例如,当某Pod在你的集群中运行时,Pod运行所在的节点出现致命错误时,所有该节点上的Pods都会失败。Kubernetes将这类失败视为最终状态:即使该节点后来恢复正常运行,你也需要创建新的Pod来恢复应用。不过,为了让用户的日子

2021-12-27 00:06:57 83

原创 kubernetes资源调度

调度创建一个pod的工作流程kubernetes基于list-watch机制的控制器架构,实现组件间交互的解耦。其他组件监控自己负责的资源,当这些资源发生变化时,kube-apiserver会通知这些组件,这个过程类似于发布与订阅。用户提交创建Pod的请求,可以通过API Server的REST API ,也可用Kubectl命令行工具,支持Json和Yaml两种格式;API Server 处理用户请求,存储Pod数据到Etcd;Schedule通过和 API Server的watch机制,

2021-12-24 13:09:28 132

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

深入理解Pod对象:基本管理Pod基本概念Pod是Kubernetes创建和管理的最小单元,一个Pod由一个容器或多个容器组成,这些容器共享存储、网络。Pod特点:一个Pod可以理解为是一个应用实例,提供服务Pod中容器始终部署在一个Node上Pod中容器共享网络、存储资源Kubernetes直接管理Pod,而不是容器Pod存在的意义Pod主要用法:运行单个容器:最常见的用法,在这种情况下,可以将Pod看做是单个容器的抽象封装运行多个容器:封装多个紧密耦合且需要共享资源的应用程序

2021-12-23 12:59:04 213

原创 K8s基于资源定义创建haproxy

编写测试web镜像[root@master ~]# cat Dockerfile FROM busyboxRUN mkdir /data && echo 'hello,this is a xaw' > /data/index.htmlCMD ["/bin/httpd","-f","-h","/data"][root@master ~]# docker build -t my922/apache:v1.0 .Sending build context to Docker

2021-12-22 12:36:08 391

原创 kubectl命令

kubernetes基本概念Pod:k8s最小部署单元,一组容器的集合Deployment:最常见的控制器,用于更高级别部署和管理PodService:为一组Pod提供负载均衡,对外提供统一访问入口Label:标签,附加到某个资源上,用于关联对象、查询和筛选Namespaces∶命名空间。将对象逻辑上隔离,也利于权限控制edit(编辑资源)//运行一个pod类型的nginx,名字叫nginx,定义的标签是app=nginx[root@master ~]# kubectl run nginx

2021-12-20 20:00:41 249

原创 k8s的pod分类、核心组件、网络模型、kubectl常用命令

k8s的pod分类pod分为两类:自主式pod与控制器管理的pod自主式pod由k8s管理器进行管理,而static pod由kubelet进行创建与管理自主式pod​ 自主式pod总是在前台运行,同时接受k8s管理与调度,当集群当中的pod因为某种原因停止,k8s会根据其副本的数量,重新的生成对应的pod​ 自我管理的pod,创建以后仍然需要提交给apiserver,由apiserver接收以后借助于调度器将其调度至指定的node节点,由node启动此pod​ 如果此pod出现故障,需要重启容

2021-12-20 00:24:26 420

原创 kubernetes快速部署

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令完成一个kubernetes集群的部署:# 创建一个 Master 节点$ kubeadm init# 将一个 Node 节点加入到当前集群中$ kubeadm join <Master节点的IP和端口>1. 安装要求在开始之前,部署Kubernetes集群机器需要满足以下几个条件:-至少3台机器,操作系统 CentOS7+硬件配置:2GB或更多RAM,2个CPU或更多C

2021-12-17 16:39:43 201

原创 K8s(Kubernetes)工具

文章目录Kubernetes简介kubernetes背景和历史kubernetes特点kubernetes相关概念基本对象PodServiceVolume持久存储卷(Persistent Volume,PV)和持久存储卷声明(Persistent Volume Claim,PVC)NamespaceLable基于基本对象更高层次抽象ReplicationControllerReplicaSetDeploymentStatefulSetDaemonSetJob有状态服务集(PetSet)集群联邦(Federa

2021-12-16 19:24:02 1127

原创 Docker Private Registry

podman加速器//修改配置文件[root@localhost ~]# cd /etc/containers/[root@localhost containers]# lscerts.d policy.json registries.conf.d storage.confoci registries.conf registries.d[root@localhost containers]# vim registries.conf# # An array of ho

2021-12-15 22:17:49 105

原创 podman进阶

podman故障排除网络设置//首先先定义一个别名,podman等于docker[root@localhost ~]# alias docker=podman[root@localhost ~]# aliasalias cp='cp -i'alias docker='podman'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias l.='l

2021-12-14 19:30:48 1570

原创 podman

什么是podman什么是波德曼?Podman 是一个无守护进程的容器引擎,用于在 Linux 系统上开发、管理和运行 OCI 容器。容器可以以 root 或无根模式运行。简单地说:别名 docker=podman。Podman 是一个开源项目,可在大多数 Linux 平台上使用并驻留在GitHub 上。Podman 是一个无守护进程的容器引擎,用于在 Linux 系统上开发、管理和运行 Open Container Initiative (OCI) 容器和容器映像。Podman 提供了一个与 Docke

2021-12-13 19:28:05 1025

原创 alpine 系统

alpine系统简介Alpine 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk,可以通过 https://pkgs.alpinelinux.org/packages 网站上查询包信息,也可以直接通过 apk 命令直接查询和安装各种软件。

2021-12-13 11:56:22 1052

原创 编写haproxy的dockerfile

//结构[root@localhost haproxy]# tree.├── Dockerfile└── files ├── haproxy-2.4.0.tar.gz ├── haproxy.cfg ├── haproxy.sh └── install.sh//dockerfile[root@localhost haproxy]# cat Dockerfile FROM centosLABEL MAINTAINER aaa xaw@qq.comENV

2021-12-10 22:51:46 1378

原创 Dockerfile

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

2021-12-07 18:22:44 338

原创 docker部署apache服务(使用存储卷)

源码部署apache服务拉取镜像[root@localhost ~]# docker pull centos:88: Pulling from library/centosDigest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177Status: Image is up to date for centos:8docker.io/library/centos:8创建一个带有存储卷的容器这里我

2021-12-07 11:57:47 1146

原创 docker存储卷

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

2021-12-06 21:49:38 108

原创 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-05 00:36:17 164

原创 容器部署lnmp

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

2021-12-04 12:54:44 3234

原创 docker容器网络

docker容器网络Docker在安装后自动提供3种网络,可以使用docker network ls命令查看[root@docker ~]# docker network lsNETWORK ID NAME DRIVER SCOPE17433fbade5e bridge bridge locale87b98abd383 host host localfcf87b24928d none null local

2021-12-04 12:14:11 279

原创 docker容器虚拟化

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

2021-12-03 18:19:24 67

原创 docker镜像管理基础

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

2021-12-03 02:31:17 443

原创 docker基础用法

什么是dockerdocker中的容器:lxc --> libcontainer --> runCOCI&OCFOCIOpen Container-initiative由Linux基金会主导于2015年6月创立旨在围绕容器格式和运行时制定一个开放的工业化标准contains two specificationsthe Runtime Specification(runtime-spec)the Image Specification(image-spec)

2021-12-01 19:24:46 392

原创 Docker简介

1、Docker为什么会出现?一款软件产品必须经过:开发 -> 上线开发人员负责将应用程序开发制作出来。运维人员负责上线,配置应用程序。在这里存在一个问题:开发环境和上线环境不一致;可能会导致,开发人员在自己的电脑上可以正常运行代码,运维人员将服务程序上线到服务器后,由于环境不一致可能会导致运行失败,服务不可用。如何解决上述问题?对上线的服务器系统进行环境配置,但环境配置十分麻烦特别是集群部署时,集群中的每一台机器都需要部署环境。将开发环境和程序代码一起打包到服务器中运行。Docke

2021-12-01 01:08:53 120

原创 SaltStack进阶

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

2021-11-29 19:31:27 89

原创 SaltStack之salt-ssh

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

2021-11-26 19:27:14 121

原创 Prometheus部署

IP:192.168.47.158 centos8系统//关闭防火墙和selinux[root@prometheus ~]# systemctl disable --now firewalldRemoved /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@prometheu

2021-11-25 19:28:32 112

原创 系统初始化状态编写saltstack

结构[root@master base]# tree init/init/├── chrony│ ├── files│ │ └── chrony.conf│ └── main.sls├── firewalld│ └── main.sls└── selinux ├── files │ └── config └── main.sls1.selinux[root@master selinux]# cat main.sls /etc/sel

2021-11-12 19:26:13 355

原创 saltstack部署zabbix

文章目录Saltstack 部署Zabbix监控服务一、Zabbix项目框架二、编写部署httpd状态文件三、Mysql服务安装状态文件四、php服务的状态文件五、编写项目配置Saltstack 部署Zabbix监控服务一、Zabbix项目框架下面为完整框架[root@master ~]# tree /srv//srv/├── pillar│ └── base│ ├── apache.sls│ └── top.sls└── salt ├── base

2021-11-11 12:23:01 1046

原创 SaltStack之return与job管理

文章目录1. SaltStack组件之return1.1 return流程1.2 使用mysql作为return存储方式2. job cache2.1 job cache流程2.2 job管理1. SaltStack组件之returnreturn组件可以理解为SaltStack系统对执行Minion返回后的数据进行存储或者返回给其他程序,它支持多种存储方式,比如用MySQL、MongoDB、Redis、Memcache等,通过return我们可以对SaltStack的每次操作进行记录,对以后日志审计提供

2021-11-05 23:35:28 59

原创 SaltStack常用的模块

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

2021-11-03 19:30:53 191

原创 SaltStack之数据系统

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

2021-11-03 11:54:51 114

原创 SaltStack之配置管理

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

2021-11-02 19:30:32 76

原创 SaltStack入门

文章目录1. Saltstack介绍1.1 自动化运维工具1.2 saltstack的特点1.3 saltstack服务架构2. SaltStack四大功能与四大运行方式3. SaltStack安装与最小化配置3.1 saltstack配置文件4. SaltStack认证机制1. Saltstack介绍1.1 自动化运维工具作为一个运维人员,很大一部分工作是在业务的配置管理和状态维护以及版本发布上,而当业务场景及公司规模上了一定规模后,人为手工的去做这些工作将变得极其困难,此时我们将需要利用一些自动

2021-11-01 19:30:38 102

原创 动 静 分 离

1. fanxiang代理与负载均衡nginx通常被用作后端服务器的fanxiang代理,这样就可以很方便的实现动静分离以及负载均衡,从而大大提高服务器的处理能力。nginx实现动静分离,其实就是在fanxiang代理的时候,如果是静态资源,就直接从nginx发布的路径去读取,而不需要从后台服务器获取了。但是要注意,这种情况下需要保证后端跟前端的程序保持一致,可以使用Rsync做服务端自动同步或者使用NFS、MFS分布式共享存储。Http Proxy模块,功能很多,最常用的是proxy_pass和p

2021-10-30 21:04:33 1207

原创 lnmp源码部署

//关闭防火墙[root@lnmp ~]# systemctl disable --now firewalldRemoved /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@lnmp ~]# vi /etc/selinux/config [root@lnmp ~]# set

2021-10-26 19:30:42 163 1

原创 nginx

文章目录1. nginx 简介2. nginx的特性与优点2.1 nginx的特性2.2 nginx的优点3. nginx的功能及应用类别3.1 nginx的基本功能3.2 nginx的扩展功能3.3 nginx的应用类别4. nginx的模块与工作原理4.1 nginx的模块分类4.nginx的工作原理4.1. 网站放置位置5. nginx的安装与配置5.2 nginx安装后配置6 nginx的配置文件详解1. nginx 简介nginx(发音同engine x)是一款轻量级的Web服务器/反向代理服

2021-10-25 19:20:43 351

空空如也

空空如也

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

TA关注的人

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