自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杨仕虎的博客

一个追求自主学习的人

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

原创 etcd 基础

etcd特性简单接口版本: V2和V3互不兼容(kubernetes1.1版本后启用V2),V2基于内存而V3持久化到数据库http协议:提供简单的调用接口,get、put、post、delete数据交换格式:html、json、xmlhtml:http协议原生的数据格式,被设计用来显示数据json:JavaScript原生格式,被设计用来传输和存储数据xml:一种简单的数据存储语言,被设计用来传输和存储数据grpc:V3新增的通讯机制,rpc是应用在分布式系统通信协议rpc是远

2020-11-26 16:26:24 9

原创 Ceph手动部署分析(nautilus)

准备工作4台虚拟机,双网卡和双硬盘,一个网卡为nat模式,一个为host模式(符合集群网络,只需要集群互通即可)网络规划官网最低硬件要求系统环境部署(涉及到集群都是同样部署,4台机器一样)1、关闭防火墙和selinux(生产环境肯定要开启)systemctl stop firewalldsystemctl disable firewalldsed -i 's/=enforcing/=disabled/' /etc/selinux/config2、 配置主机名和hostsecho

2020-10-30 16:47:55 44

原创 Ceph 用户管理说明

ceph用户管理ceph用户管理主要就是提高集群的认证和授权client.admin key: AQB3175cZrKQEBAApE+rBBXNvbZs16GkpOjXhw== caps: [mds] allow * caps: [mgr] allow * caps: [mon] allow * caps: [osd] allow *Ceph 的用户类型客户端用户操作用户应用程序用户守护进程用户client.admin:用户命名遵循 <TYPE.ID> 的命

2020-10-29 10:14:23 25

原创 Ceph 理解基础架构

Ceph化简的大致结构图Ceph网络流量结构存储类型存储的类型都是经过历史演化的结果,而ceph都是支持,并且利用rados集群解决了各自的缺点块存储:最接近硬件,直接对硬件进行操作,通过把所有数据按照固定的大小分块,每一块赋予一个用于寻址的编号,但是存储需要建立在连续的编号上,数据按照字节进行读写缺点:容量浪费(连续的编号)和不便管理(硬盘越来越大)文件存储:最常见使用的文件系统,采用树状结构进行目录和文件分类管理缺点:性能不如块存储,因为多了一层管理对象存储:基于前两者

2020-10-23 17:51:52 21

原创 Mycat 读写分离配置参数解释

Mycat 环境MyCAT是使用JAVA语言进行编写开发,由于MyCAT中使用了JDK7中的一些特性,所以要求必须在JDK7以上的版本上运行安装JDK7以上的版本官网下载安装包解压后配置直接使用官方建议放在usr/local/Mycat 目录下目录解释bin程序目录,存放了window版本和linux版本,除了提供封装成服务的版本之外,也提供了nowrap的shell脚本命令./mycat console,首先要chmod +x *mycat 支持的命令{ console | sta

2020-10-15 10:55:13 36

原创 Mysql 主从复制参数

Mysql 主从复制步骤安装数据库(建议5.7以上,支持更多的特性)主库配置从库配置测试和查看日志安装数据库yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmyum install mysql-community-server -y#安装数据库5.7版本systemctl enable mysqldsystemctl start mysqld#启动和自启gre

2020-10-13 17:39:18 44

原创 Mysql 主从基础概念

Mysql的边界单台msql的边界就是单台服务器的的性能,包括内存、cpu、硬盘、I/O,因为最终的数据库载体还是文件,解决方案加大单台的性能多台服务器提供服务从性价比和冗余性都会选择第二种方案mysql的读写分离为什么采用读写分离?sql语句最常用的就是增删改查,进而再分为2个类型查是读数据,而增删改是对数据的写,通常情况下查询是比写操作频繁而且需要时间长,而写的需求相应的小很多,这样有助于分析问题和解决问题1、应用程序直接对接多台mysql服务器缺点:数据库和应用服务是紧耦

2020-10-10 11:09:13 12

原创 Mysql 重要基础概念

数据库表结构表的组成列:字段行:记录/数据结构说的就是字段,记录是根据字段定义的类型产生的MySQL 数据类型数据类型用于指定特定字段所包含数据的规则,它决定了数据保存在字段里的方式,包括分配给字段的宽度,以及值是否可以是字母、数字、日期和时间等字符串类型(CHAR(0-255固定长度),VARCHAR(0-255可变长度)数值类型(INT(整数型)、FLOAT(浮点型))日期和时间类型(DATE(年月日)、TIME(时分秒))MySQL 约束类型约束是一种限制,它通过对表

2020-09-29 16:03:54 16

原创 Mysql 数据库基础了解

基础概念SQLSQL是基于数据库的一种高级语言,实现对数据的各种操作,关系型数据库的一种标准,也就是 SQL语言对所有符合协议标准的都是通用的DB( DataBase)数据库是数据的集合,存储在文件系统中,以文件形式存在DBMS(DataBase Management System)数据库管理系统就是我们常说的mysql、oracle、db2等等数据库(DBMS)的种类(常见)关系型数据库通过二维表的形式建立多张表,建立成的数据库关系型数据库组成结构发展结构的目

2020-09-27 14:13:16 24

原创 集群 keepalived+LVS

LVS遗留问题:LVS无法做到后端真实服务器的健康检查,就会导致其中一台挂了,ipvs规则不会自动删除,导致用户请求还是会转到已经失效的服务器上面解决方案:编写shell脚本检测服务状态,进行添加和删除ipvs规则keepalived高可用自带LVS模块,可以做到基于TCP、UDP协议实现ipvs规则自动添加和删除keepalivedvrrp协议以守护进程方式的实现能够根据配置文件自动生成ipvs规则对各RS做健康状态检测vrrp虚拟路由冗余协议通过把几台服务器联合组成一台虚

2020-09-25 11:25:20 17

原创 集群 LVS-NAT模式

LVS-NAT模式DR使用的场景都是属于内网常规使用负载,而NAT模式就是实现NAT功能的必要如下。调度器有公网和内网地址存在,需要实现公网访问进行负载虚拟化场景的IP地址都是属于虚拟化内部使用,而主机上的IP地址就是类似公网的功能,实现虚拟化和内网的负载也就是调度器2边是无法实现通讯的都可以用过NAT模式解决NAT相比DR模式简单很多,因为原理就是我们常用的利用防火墙的SNAT和网关配置能实现多台服务器的流量通过一台电脑转发出去,前提是多台电脑的网关需要指向转发流量的这台电脑上而公网就要

2020-09-22 13:02:57 32

原创 集群 LVS-DR模式

LVS负载均衡LVS 由2部分程序组成,包括 ipvs 和 ipvsadm,LVS基于linux内核的netfilter机制,以IP的HOOK链为切入点,注册实现了多个HOOK函数来完成具体功能用户空间: ipvsadm就是实现命令行管理,也就是客户端工具内核空间:ipvs就是依赖netfilter机制之上的一个个模块功能LVS在2.6版本就已经集成到内核中,所以只要关注ipvs模块是否加载就行同样iptables也是基于netfilter机制,所以iptables也是能实现负载均衡,

2020-09-21 18:16:59 17

原创 集群 负载均衡基础

对于服务常见的2个指标Recovery Point Objective (RPO),指的是最多可能丢失的数据的时长(图中2)Recovery Time Objective (RTO) ,指的是从灾难发生到整个系统恢复正常所需要的最大时长(图中1)如果没有高可用(图中1)都是使用负载进行冗余的话,永远就存在单点故障,调度器的单点负载均衡也可以叫负载调度器,通过代理方式把不同的请求通过算法调度给后面真实的服务器进行处理,实现服务的负载均衡负载均衡种类LVS (LinuxVirtual.

2020-09-17 14:47:04 16 1

原创 Nginx 负载均衡配置说明

Nginx负载均衡依赖于反向代理模块(实现七层的修改)属于七层负载,代理接收和发送流量(所有的流量都是要经过代理转发,区别于LVS)自带的后端检测是基于事后转发也就是访问出问题了再转发给其他服务器(无法提前知道故障避免访问)第三方检测模块Tengine,可以实现动态监测故障的后端剔除负载池,恢复后再加入实现负载均衡主要模块反向代理location / { proxy_pass http://localhost:8000; proxy_set_header Ho

2020-09-15 15:13:26 11

原创 Nginx 配置文件结构

nginx.conf 文件的结构main: nginx 运行相关events::与用户的网络连接相关http:http服务器有关的公共配置,代理,缓存,日志,以及第三方模块的配置server: web服务相关的,提供http服务配置,可以配置多个web服务(多个server)location:地址定向,数据缓存,应答控制,以及第三方模块的配置(可以理解为url端口后面/,192.168.0.202:10080/zabbix,location就是/zabbix路径和服务器建立连接,可以多个)

2020-09-11 14:45:45 22

原创 Nginx 基础知识

学习前必须理解的概念linux下的I/O模型I/O模型就是处理请求I/O读写的方式(一切皆文件),比如我们访问网页所有的请求过程内部是怎么实现的1、等待数据准备,数据会先被拷贝到操作系统内核的缓冲区中(内存中)2、将数据从内核拷贝到进程中,内核态到用户态转换正是因为这两个阶段,linux系统产生了下面五种网络模式的方案主要结合3点I/O模型异步和异步阻塞和非阻塞I/O 多路复用异步和异步重点在消息通知的方式的行为,也就是调用结果的通知方式不同同步:当一个同步调用发出去后,

2020-09-09 17:31:40 39

原创 Kubernetes 健康探测

Pod的生命周期中存在2种健康探测,Readiness和Liveness是保证Pod容器正常运行的关键检测手段。1、零停机部署2、避免无效的Pod导致服务中断3、更加安全的滚动升级由 kubelet 对容器执行的定期诊断。要执行诊断,kubelet 调用由容器实现的 Handler默认健康探测默认是基于容器的dockerfile中的CMD或ENTRYPOINT指定的,容器进程退出代表故障处理方法就是进入重启策略(restartPolicy,默认为Always)这个阶段还是属于容器自身状态

2020-09-07 10:39:27 38

原创 Kubernetes DNS服务

Kubernetes中kube-dns系统组件唯一是基于deployment资源管理器,并通过Service来通讯,很多应用前提都是要基于DNS组件来完成DNS A记录的自动产生基于Service NAME字段产生A记录,格式:svc名称.当前命名空间.当前集群的域名(默认就是svc.cluser.local ),比如:busybox1.default.svc.cluster.local基于Pod的主机名产生A记录,需要基于hostname和subdomain指定,格式:hostname.subd

2020-09-03 17:30:36 33

原创 Kubernetes Service服务

最简单的已经通过yaml文件把容器跑起来了,这个时候就是网络通讯的问题了K8s是基于扁平化的网络,也就是所有的Pod和node节点都是互通的docker run 是基于-p 作为映射端口,而yaml文件里写的ports并不是这个功能,前面也说了扁平化,说明这个参数并没有用,只是为了方便Pod中查看而已Pod也有一个单独IP地址的IT产品的解决方案通常都是加一层,那么这层就是K8s的Service服务哪些场景需要Service服务?集群外部需要访问到Pod应用集群内部Pod与Pod之间

2020-09-01 22:28:06 37

原创 Kubernetes Yaml文件格式

语法要求大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格缩进的空格数目不重要,只要相同层级的元素左侧对齐即可# 表示注释,从这个字符一直到行尾,都会被解析器忽略数据结构对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)纯量(scalars):单个的、不可再分的值对象类型:对象的一组键值对,使用冒号结构表示(冒号后面必须空格后在

2020-09-01 16:02:28 25

原创 Kubernetes Pod生命周期

Pod生命周期第一阶段:Pod环境初始化第二阶段:容器初始化第三阶段:Pod生成容器初始化Pause是Pod的第一个启动容器,负责资源的共享(使Pod容器属于一个namespace下)Init容器是Pod启动前的一个必要条件,当然也可以没有,主要是为了确保Pod的正常安全运行Init容器类似脚本运行,只要运行成功后就被销毁Init容器可以多个,但是运行下一个之前确保上一个已经完成Init容器失败后,Pod会一直重启(受到restartPolicy控制,默认Always)Init

2020-08-30 18:29:27 25

原创 Kubernetes 安装几点说明

1、安装方式基于二进制包一步一步安装(对于学习认识系统有帮助)以守护进程存在基于kubeadm工具快速安装(推荐)以docker形式存在(其实是K8s的pod)2、系统内核版本最好升到4.4以上,不然容易出现各种奇怪问题3、安装包下载K8s是google公司基于Borg系统开源的项目,所以安装包全部在google网站上,国内是禁止掉的,目前可以基于阿里云镜像源可以安装最新版到Kubernetes-1.18.6,需要指定版本安装阿里云源cat <<EOF &gt

2020-08-29 18:36:26 73

原创 Kubernetes Pod组件和网络通信

容器的有状态和无状态容器本身应用是针对无状态服务的,也就是在一个集群应用中,应用是可以停止然后恢复还能进行服务的,比如web服务,IPVS等等,对于数据库这样的有状态服务是K8s的目标,目前也有针对的控制组件叫StatefulSetPod组件Pod 是 Kubernetes 的最小工作单元,是一个或多个容器的集合单位。Pod的好处在于:方便管理,有些应用必定跟其他应用是频繁交互,并且是需要共享资源和网络的,这样用Pod来管理是很需要的(有点类似Docker-compose,但是Pod功能更强大和方便

2020-08-25 14:59:12 50

原创 Kubernetes 基础组件

容器资源控制器MESOS(APACHE)Docker Swarm(Docker)Kubernetes (Goole)Kubernetes架构组件kubectl:K8s的命令行管理工具Master节点属于K8s的大脑API Server:所有服务的访问入口,外部唯一能访问到容器的方式scheduler:负责任务的节点选择和分配,关于多节点必要都需要调度器controller-manager:属于Pod的控制器,目的是维持副本的期望数量,属于冗余方案Etcd:键值对数据库,储存K8

2020-08-25 10:52:40 24

原创 Ceph PG和PGP分解

PGPG是ceph对象到OSD的中间桥梁,实现大容量集群的关键效率技术PG分裂ceph最大的特点是能实现OSD负载均衡,如果新增OSD就会导致之前的PG映射就要被负载一部分到新的PG上(前提是新增了PG数量)PGPPGP其实是PG的复制,原因在于PG分裂会导致之前的PG映射OSD关系变化,导致新增OSD后导致大量数据迁移,而复制PG给PGP在后续分裂中尽量让之前的PG还是对应之前的OSD上,避免数据的迁移为什么需要合理规划PG数量,OSD增加一般也需要增加PG数量数据表明磁盘的使

2020-08-06 11:22:10 81

原创 Ceph RADOS内部组件

词汇解释什么叫哈希函数简单的理解就是一种将任意长度的信息压缩映射到固定长度的消息函数命名空间命名空间起到分类作用,把相同的功能存在一个命名空间中线性和非线性线性起到叠加一个方向,存在前因后果(比如时间)非线性就是没有叠加效应或者前因后果关系(比如穿越)对象对象是客户端最小存储单元,默认ceph为4M对象是什么,简单理解就是去中心化的文件对象还是为了效率而存在,传统存储都是基于文件系统,存在一个扁平的全局命名空间中,也就是集中管理,而Ceph的设计就会为了海量存储,采用基于文件肯定

2020-08-02 16:37:23 61

原创 Ceph RADOS集群

RADOS (Reliable, Autonomic Distributed Object Store) 可靠、自由分布式对象存储RADOS是抽象概念,是客户端对象存储的实体,而RADOS内部是由Monitor和OSD组件提供服务Monitor提供可靠性,提供可靠性就是集群,所以Monitor一般不会是一个,负责维护和分发集群的关键元数据OSD也是个抽象概念,实质其实就是一个硬盘或者一个RAID组,通常一个硬盘对应一个OSD进程,但是OSD需要占用比Monitor更多的资源CRUSH(Contr

2020-07-31 00:32:44 68

原创 RedHat8 防火墙firewalld

防火墙基础firewalld:守护进程firewall-cmd:管理工具nftables:8的防火墙架构,7之前版本依然使用iptables的netfilter原则:数据包必须要属于一个域(zone)才能被转发匹配zone的3个顺序

2020-07-25 18:38:02 314

原创 Ceph 基础概念

CephCeph是一个存软件定义的分布式统一存储方案,各组件都是实现充分解耦,为此提供廉价、开放、稳定、兼容、高性能、可扩展的解决方案ceph已经完全被linux内核支持(kvm的发展也是基于此)ceph同时支持三种存储方式,块设备、文件系统、对象存储ceph引入了CRUSH算法,区别于传统的存储管理元数据的读取对于数据的冗余采用副本和纠删码方案,大大加快了数据的恢复时间和允许更大的故障对于开源云平台的稳定支持和高级功能的实现三种存储方式块设备存储最接近内核接口的设备存储,常见就是硬盘

2020-07-12 00:27:05 118

原创 RedHat8 进程管理

概念解释程序:就是各种语言编写的功能,在进行编译后的二进制文件,最后交给电脑识别处理进程:就是程序执行的过程证明,是系统可以进行资源分配和调度基本单位父进程和子进程Linux系统中,进程之间有一个明显的继承关系,所有进程都是 PID 为1的 systemd 进程的后代父进程(PID):子进程的集合主体,通常一个shell连接就是一开始的父进程子进程(PPID):由父进程下产生的程序进程状态前台进程:shell终端实时显示输出程序,这样就无法进行其他操作后台进程:避免前台

2020-07-11 18:24:06 92

原创 Centos8 安装docker machine

docker machine集中式安装docker和管理docker,对于多主机环境手工方式效率低且不容易保证一致性。安装docker machine和基于命令tab辅助docker machine管理端需要免密码登入其他主机上安装containerd.io高版本关闭防火墙或者开放2376端口(主机端)docker machine创建主机管理1、安装docker machinebase=https://github.com/docker/machine/releases/download

2020-07-03 18:07:46 62

原创 RedHat8 SSH应用

远程协议telnet,默认端口23,传输无加密通常被当成检测TCP端口存活使用,生产环境不建议使用ssh,默认端口22,传输基于加密默认使用远程方式SSHSSH(Secure Shell)安全shell缩写,可以基于RSA非对称加密和HA密钥交换算法实现加密传输。有两个不兼容的版本分别是:1.x和2.xSSH1采用对称加密算法保护数据安全传输(最终2边秘钥相同),而对称加密算法的密钥是通过非对称加密算法(RSA,2边不同,需要通过秘钥进行解密,防止秘钥被窃听)来完成交换的。

2020-07-01 17:11:02 164

原创 RedHat8 压缩归档

压缩归档计算机保存、传输、运算的数据都是二进制数,0和1这样的数,那么就避免不少出现连续重复00000或11111,压缩的就可以0x5或1x5这样代表,最后就减少了一半字符gzip压缩格式,压缩速度快bzip2压缩格式,压缩效率高支持文档压缩,不支持目录压缩(有区别windows)目录需要tar打包归档后进行压缩(tar文件是没有压缩)gzip格式:gzip 【参数】文件 (不加参数为压缩)只能针对文件常用参数默认压缩-d 解压-k 保留源文件-f 覆盖存在文件bz

2020-06-30 21:35:01 86

原创 RedHat8 服务安装(编译、rpm、dnf)

安装软件的三种方式下载源码编译安装可以实现自定义安装目录和参数调整可以指定版本安装在其他2个方法无法安装的情况下可以编译安装(解决兼容性)需要自己解决依赖关系下载rpm包安装需要下载对应系统的rpm包,也就是已经编译好的软件包需要自己解决依赖关系yum联网安装(RedHat8改名为dnf)需要配置对应系统的yum源(阿里云、163、清华)自动解决依赖安装可以配置多资源的库源码编译安装服务需要把源码文件翻译成计算机能识别的二进制文件,再进行安装下载源码文件

2020-06-27 00:54:31 328

原创 RedHat8 自动任务crontab

自动任务crontab系统内置服务,服务进程/usr/sbin/crond(which crond 可以查看服务的绝对路径),服务默认启动crontab的默认运行环境变量记录在/etc/crontab中(shell脚本需要注意是否加上相关路径或者写明绝对路径)可以设置拒绝用户使用自动任务,/etc/cron.deny文件运行的记录日志,/var/log/cron编辑自动生效,不需要重启服务(有可能出现需要重启服务才正常的情况)crontab命令命令格式:crontab 【参数】常用

2020-06-25 01:05:48 125

原创 RedHat8 LVM逻辑卷

LVM逻辑卷Logical Volume Manager标准磁盘管理是由磁盘本身来管理维护,这样的坏处就是一单配置好后就无法再修改,现实环境中带来了很大的不便,LVM逻辑卷就是解决这样的问题而出现。逻辑卷可以更有效的管理和分配磁盘空间,如增加空间,删除空间,合并空间等可以实现线性模式(默认模式)和交错模式(类似Raid0)LVM的三个主要概念PV(Physical Volume)物理卷,把磁盘、磁盘分区、RAID等存储功能的块设备划入到LVM逻辑卷中的功能VG(Volume Group)卷

2020-06-23 01:43:59 152

原创 RedHat8 特殊设备及使用

系统自带的4个特殊设备cdrom,挂载光驱使用(光驱设备)null,丢弃一切数据(虚拟设备)zero,提供空的数据流文件(虚拟设备)loop,把文件仿真成块设备文件可以进行挂载(仿真设备)cdrom/dev/cdrom:光驱设备挂载到系统进行读取文件sr0是真实光驱块设备,而cdrom是软连接到了sr0mount /dev/cdrom /mntmount /dev/sr0 /mnt 所以同样操作都是可以挂载光驱umount /mnt #卸载由于默认是挂载后是读权限,需要

2020-06-21 17:32:10 112

原创 RedHat8 用户切换(su su- sudo)

用户切换的命令:susu和su -su 【用户】命令切换用户,不改变当前目录和环境变量,同时集成了切换到用户的环境变量(拥有2个用户的环境变量)su - 【用户】命令就是新建连接进入的状态,进入自己的家目录和拥有自己的环境变量应用场景就是考虑是否集成切换用户环境变量,避免切换后重新配置,如果没有环境变量需求还是建议直接su - 切换的干净点...

2020-06-18 22:18:54 407

原创 RedHat8 文件或文件夹权限

linux系统一切皆文件,针对文件或文件夹的权限是很重要的。文件或文件夹的权限权限分为2组:第一组为设置权限 - rwx r-- r-- . 类型 用户 用户组 其他用户 ACL控制第二组为使用权限root root 隐含用户 用户组 其他用户常见的类型– 代表文件d 代表文件夹b 块设备s 链接文件(类似快捷键)RWX:读、写、执行(文件夹代表进入)针对的三类用户设置,第一用户本身,第二

2020-06-15 16:06:35 179

原创 RedHat8 用户和用户组

用户以uid存在三个配置文件:passwd、shadow、group命令:id、useradd-mod-del(u、g、G、s、d)、groupadd、chsh、gpasswd(组管理员)初始组,附加组ACLsetfaclgetfacl

2020-06-12 15:52:42 247

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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