自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

荏苒化蝶

Life is what we make it, always has been, always will be.

  • 博客(73)
  • 资源 (3)
  • 收藏
  • 关注

原创 Service Mesh与Istio

中文官网:https://istio.io/latest/zh/1,服务网格简介服务网格出现的大环境如下:容器技术的广泛应用。由于Docker的出现,容器技术得到更广泛的认可和应用,各种服务于容器的工具如雨后春笋般涌现,出现了众多容器部署、容器集群、容器编排等平台,例如Swarm、Mesos、Kubernetes。由于容器具备轻量级、启动速度快、性能损失小、扩容缩容快、开发与生产环境统一等特性,越来越多的公司开始尝试使用容器来部署服务,容器技术的飞速发展也大大加速了微服务的应用。...

2020-08-11 15:02:23 766

原创 有状态服务部署实践-mysql主从部署

1,部署目的是一个“主从复制”(Maser-Slave Replication)的 MySQL 集群; 有 1 个主节点(Master); 有多个从节点(Slave); 从节点需要能水平扩展; 所有的写操作,只能在主节点上执行; 读操作可以在所有节点上执行。2,配置准备2.1 configMap#application/mysql/mysql-configmap.yamlapiVersion: v1kind: ConfigMapmetadata: name: mysql

2020-08-10 13:50:44 777 5

原创 10,kubernetes-证书有效期修改

1,证书有效期问题kubeadm初始化k8s集群,签发的CA证书有效期默认是10年,签发的apiserver证书有效期默认是1年,到期之后请求apiserver会报错,使用openssl命令查询相关证书是否到期。一下延长证书有效期的方法适合kubernetes1.14、1.15、1.16、1.17、1.18版本。2,查看证书有效期2.1 查看CA证书有效期# openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -text |gre

2020-07-23 15:41:50 856 1

原创 TokuMX2.4版本升级至mongodb4.2版本具体步骤

一,升级说明1,TokuMXPercona TokuMX是一个高度可扩展的零维护停机时间数据库,支持MongoDB v2.4协议和驱动程序,该协议将所有MongoDB存储替换为分形树索引。Percona TokuMX不需要对MongoDB应用程序或代码进行任何更改。Percona TokuMX的主要优点是:改进的单线程和多线程性能 压缩 全ACID和MVCC事务支持 无需维护或计划停机时间 对查询加速的群集密钥支持 更好的读取缩放和副本集的延迟减少 使用聚类分片键的低影响迁移和加速范

2020-06-29 19:51:52 353

原创 jumpserver v1.5.9版本高可用部署方案

实验目的:测试jumpserver高可用部署方案 实验环境: CentOS Linux release 7.6.1810 (Core) 主机名 ip host11 192.168.17.11 host12 192.168.17.12 官网地址:https://www.jumpserver.org/官方主机配置要求:硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)操作系统: Linux 发行版 x86_64 Python = 3.6...

2020-06-18 14:56:34 3605 1

原创 Linux面试题总结

Linux面试题 一、填空题 1. 在Linux 系统 中,以文件方式访问设备 。 2. Linux 内核引导时,从文件/etc/fstab中读取要加载的文件系统 。 3. Linux 文件系统中每个文件用indoe节点来标识。 4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i 节点表块 和 数据存储块 。 5. 链接分为:硬链接 和 符号链接 。 6. 超级块包含了i 节点表 和 ...

2019-07-21 20:56:49 10087

原创 简析TCP/IP协议的三次握手和四次挥手

TCP/IP协议是互联网重要的基础协议,掌握该协议的原理对于我们理解数据的传输过程会有很大的帮助,首先来了解一下OSI的七层模型:TCP协议工作在OSI七层模型的第四层——Transport层,IP工作在第三层——Network层,ARP工作在第二层——Data Link层。数据在上三层会被封装为PDU单元,在传输层会被封装为Segment(数据段),在网络层会被封装为Packet(包)...

2019-06-06 22:03:28 972

原创 05-3 序列化反序列化和csv、ini文件处理

1.ini文件处理作为配置文件,ini文件格式很流行[DEFAULT] a = test[mysql] default-character-set=utf8[mysqld]datadir =/dbserver/dataport = 33060character-set-server=utf8 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES中括号里面的部分称为section,译作节、区、段。 每一个section内

2021-01-13 11:34:13 356

原创 05-2 目录文件处理

1,文件IO操作函数 说明 open 打开 read 读取 write 写入 close 关闭 readlne 行读取 readlines 多行读取 1.1 open方法open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None,closefd=True, opener=None) 打开一个文件,返回一个文件对象(流对象)和文件描

2020-12-19 15:29:32 307

原创 05-1 装饰器

1,高阶函数1.1 一等公民函数在Python是一等公民(First-Class Object) 函数也是对象,是可调用对象 函数可以作为普通变量,也可以作为函数的参数、返回值1.2 高阶函数高阶函数(High-order Function) - 数学概念 y = f(g(x))在数学和计算机科学中,高阶函数应当是至少满足下面一个条件的函数: 接受一个或多个函数作为参数 输出一个函数 1.2.1 观察下面的函数定义,回答问题def counter(base): .

2020-12-05 11:12:25 228

原创 kubernetes corendns无法解析私有harbor域名问题处理

方法1:(不建议使用,/etc/resolv.conf不建议修改,有可能引起dns异常)处理过程:1,修改宿主机 /etc/resolv.conf文件,添加相关域名coredns会映射该文件2,修改/etc/hosts文件,添加该域名解析方法2:1,/etc/hosts 添加相关的域名解析xx.xx.xx.xx harbor.hly.com2,修改coredns configmap,添加hosts语段:# kubectl get cm coredns -n kube-s

2020-11-25 15:38:46 647

原创 kubernetes技能图谱

2020-11-20 09:59:21 364

原创 04 python函数

1,python函数1.1 函数数学定义:y=f(x) ,y是x的函数,x是自变量。y=f(x0, x1, ..., xn)python函数:由若干语句组成的语句块、函数名称、参数列表构成,它是组织代码的最小单元 完成一定的功能函数得作用:结构化编程对代码的最基本的封装,一般按照功能组织一段代码 封装的目的为了复用,减少冗余代码 代码更加简洁美观、可读易懂函数的分类:内建函数,如max()、reversed()等 库函数,如math.ceil()等 自定义函数,使用d

2020-11-19 21:30:17 668

原创 03 封装和解构

1,封装和解构1.1 基本概念t1 = 1, 2print(type(t1)) # 什么类型t2 = (1, 2) print(type(t2))Python等式右侧出现逗号分隔的多值的时候,就会将这几个值封装到元组中。这种操作称为封装 packing。x, y = (1, 2) print(x) # 1 print(y) # 2Python中等式右侧是一个容器类型,左侧是逗号分隔的多个标识符,将右侧容器中数据的一个个和左侧 标识符一一对应。这种操作称为解构unpac

2020-11-17 23:02:21 315 2

原创 02 线性数据结构

1,内建常用数据类型分类:数值型 int、float、complex、bool 序列sequence 字符串str、字节序列bytes、bytearray 列表list、元组tuple 键值对 集合set、字典dict 1.1 数值型int、float、complex、bool都是class,1、5.0、2+3j都是对象即实例 int:python3的int就是长整型,且没有大小限制,受限于内存区域的大小 float:由整数部分和小数部分组成。支持十进制和科学计数法表示。

2020-11-13 17:18:30 303

原创 01 Python基础语法-2

2,计算机基础知识 艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家、逻辑学 家,被称为计算机科学之父,人工智能之父。 图灵提出的著名的图灵机模型为现代计算机的逻辑工作方式奠定了基础。 图灵机已经有输入、输出和内部状态变化机制了。 冯·诺依曼著名匈牙利裔美籍犹太人数学家、计算机科学家、物理学家和化学家 ,数字计算机之父。他 提出了以二进制作为数字计算机的数制基础,计算机应该按照程序顺..

2020-11-04 12:30:39 724

原创 01 Python基础语法-1

1,Python语言1.1 Python发展1989年圣诞节期间,为了打发无聊的时间,荷兰人Guido van Rossum(数学、计算机双硕士,2005年 加入Google,2013年加入DropBox),决心开发一种新的解释性脚本语言。1991年初发布了第一个公开发行版。由于他是英国BBC喜剧《Monty Python's Flying Circus》的忠实 粉丝,因此为这门语言取名Python。Python目前已经成为很多大学的编程课语言。甚至在国内一些考试已经引入了Pyth.

2020-11-03 18:59:07 263

原创 Kubernetes 分层命名空间

命名空间是构建租户模式的重要部分,但在某些情况下,命名空间的使用并不太灵活,本文就介绍了分层命名空间,其实现了策略继承、创建继承,希望可以帮助大家更好地使用命名空间。在单个 Kubernetes集群上托管大量用户一直是个难题,其中有个难点:不同的组织会以不同的方式使用Kubernetes,这样就没有一种可以适合所有人的租户模式。不过,Kubernetes 提供了创建不同多租户模式的基础模块,例如 RBAC 和 网络策略,我们可以以此构建适合自己的租户解决方案,以适应不同的多租户集群。命名空间基础.

2020-10-08 18:01:09 356

原创 使用ELK收集k8s日志

前言:ELK是目前主流的日志解决方案,尤其是容器化集群的今天,ELK几乎是集群必备的一部分能力;ELK在K8S落地有多种组合模式: 比如:fluentd+ELK或filebeat+ELK或log-pilot+ELK而本文采用的是功能更强大的后者:log-pilot 采集--->logstash过滤加工--->ES存储与索引--->Kibana展示的方案,日志量大的集群建议再加一层kafka提升吞吐,降低logstash的负载。那么,ELK 到底是什么呢? “ELK”是三个开...

2020-09-15 15:17:22 3805 1

原创 go语言基础语法02天-4

8.1.5 switch结构下面我们开始讲解选择中的另外一个结构就是switch结构。在讲解switch结构之前,我们先来看如下问题:李四的年终工作评定,如果定为A级,则工资涨500元,如果定为B级,则工资涨200元,如果定为C级,工资不变,如果定为D级工资降200元,如果定为E级工资降500元.设李四的原工资为5000,请用户输入李四的评级,然后显示李四来年的工资.大家看到如上题目,肯定想到的是用if-else if结构来实现,那么具体案例实现如下:package maini

2020-09-09 18:35:47 176

原创 OSI七层图解

2020-09-08 15:29:26 132

原创 go语言基础语法02天-2

8,流程控制前面我们写的程序都是从第一行开始执行,一直执行到末尾,一行一行的顺序执行下来,这种执行结构叫顺序执行结构。 GO语言除了有顺序结构,还有选择结构,循环结构。 顺序结构:程序按顺序执行,不发生跳转。 选择结构:依据是否满足条件,有选择的执行相应功能。 循环结构:依据条件是否满足,循环多次执行某段代码。下面先讲解选择结构:8.1 选择结构8.1.1 生活中的判断场景选择结构我们也称为判断结构。生活中的关于判断的场景也非常多,如下:如果跪键盘的时间大于60分钟

2020-08-24 15:12:19 134

原创 go语言基础语法02天-3

8,流程控制8.1.2 if else结构eg:package mainimport "fmt"func main(){ var score int fmt.Scan(&score) if score > 700{ fmt.Println("我要上清华") }else if score > 600 { fmt.Println("我要上郑大") } else if score > 500 { fmt.Println("我要上河大") }

2020-08-24 14:55:30 193

原创 redis-6.0.6 单机分片集群搭建

安装版本下载地址:http://download.redis.io/releases/redis-6.0.6.tar.gz?_ga=2.176506338.676734752.1597976090-1174834036.1597976090实验主机:192.168.17.161-ubuntu18041,编译安装redis-6.0.61.1 安装相关软件yum -y install make gcc+ lrzsz1.2 编译软件cd /usr/local/src...

2020-08-21 12:10:23 1081

原创 go语言基础语法02天-1

7.2赋值运算符关于赋值运算符前面我们已经使用过多次,赋值运算符 = , varint num=9;num=num+1; 这里的=号是赋值运算符,不是数学义意上的相等. 常见的赋值运算符如下,前面我们使用的=是普通赋值,+=,-=等我们称为“复合赋值运算符”。运算符 说明 示例 = 普通赋值 c = a + b 将 a + b 表达式结果赋值给 c += 相加后再赋值 c += a 等价于 c = c + a -= 相减后再赋值 c -=

2020-08-19 14:54:39 138

原创 go语言基础语法01天-5

7,运算符在前面的课程中,我们已经学习了变量,常量,那么接下来我们学习一下运算符。GO语言中常见的运算符有算术运算符,赋值运算符,关系运算符,逻辑运算符等。7.1 算术运算符7.1.1运算符 术语 示例 结果 + 加 10+5 15 - 减 10-5 5 * 乘 10*5 50 / 除 10/5 2 % 取模(取余) 10%3 1 ++ 后自增,没有前自增

2020-08-17 17:55:32 148

原创 go语言基础语法01天-4

6,常量6.1 常量定义使用在讲解常量之前,我们要先简单说一下我们前面讲解的变量。我们都知道,变量是用来存储数据,并且变量里面存储的值是可以在程序运行时随时发生变化的,例如如下案例,结果输出是多少?package mainimport "fmt"func main(){ var number int number = 10 number = 20 fmt.Println("number=",number)}输出number= 20这个程序我

2020-08-15 10:52:19 91

原创 go语言基础语法01天-3

5,基础数据类型前面我们写的程序中,用到的变量的类型都是整型,但是在我们GO语言中,还有很多其它的类型:类型 名称 长度 零值 说明 bool 布尔类型 1 false 其值不为真即为假,不可以用数字代表true或false byte 字节型 1 0 uint8别名 int,uint 整型 - 0 有符号32位或无符号64位 int8 整型 1 0 -128~1

2020-08-14 15:10:40 179

原创 go语言基础语法01天-2

1,注释1.1 注释作用在前面我们已经写过第一个GO程序了,该程序的功能很简单,代码量不是很多,也就是几行代码。但是大家看下面这段代码,代码量比我们写的第一个程序代码量多了很多,代码多了以后,阅读起来非常不容易接下来,在看下面的代码,由于在一些代码行上有汉字,所以阅读起来就很方便。我们通过用自己熟悉的语言(例如,汉语),在程序中对某些代码进行标注说明,这就是注释的作用,能够大大增强程序的可读性。以后,在公司中做开发,其他程序员会经常阅读我们写的代码,当然,我们也会经常阅读..

2020-08-13 15:30:38 161

原创 go语言基础语法01天-1

golang中文官方:https://golang.google.cn/官网中documentation和package需要重点关注1,go和区块链基础1.1 区块链去中心化“去中心化”解决了“信息公正”的问题,彻底解决人与人之间的信任问题。1.2 什么是区块从最简单的角度来说,比如建房子,它的基本单元结构就是砖块;组成区块链的基本单元结构称为区块。每个区块包含两部分:区块,记录当前块的元信息;还有一个记录实际数据的区块体。1.3 智能合约智能合约解决了传统合约中信任问题,.

2020-08-12 19:04:17 313

原创 mysql数据库备份脚本

通过定时任务对mysql进行备份1,假设每周备份一次,删除2周前的备份,脚本如下:vi mysql_back.sh#!/bin/bash# mysql备份脚本,每周日备份一次,删除2周前备份#backdirbackupDir=/home/mysql/dback#mysqlDumpmysqldump=/usr/local/mysql/bin/mysqldump#ip addresshost=127.0.0.1#username && passworduserna

2020-08-11 17:42:01 110

原创 kubesphere集群部署

1,kubesphere简介1.1 kubesphere官网https://kubesphere.com.cn/1.2 什么是 KubeSphereKubeSphere 是在 Kubernetes 之上构建的以应用为中心的企业级分布式容器平台,提供简单易用的操作界面以及向导式操作方式,在降低用户使用容器调度平台学习成本的同时,极大减轻开发、测试、运维的日常工作的复杂度,旨在解决 Kubernetes 本身存在的存储、网络、安全和易用性等痛点。除此之外,平台已经整合并优化了多个适...

2020-07-28 19:59:38 3198 1

原创 阿里云docker镜像下载以及加速设置

1,镜像加速阿里官网地址:https://cr.console.aliyun.com/cn-shanghai/instances/mirrors?accounttraceid=bf0b842b21804673825c2425ba9ca52cquzbsudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://xxx.mirror.aliyun

2020-07-27 12:22:51 973

原创 11,kubernetes-高可用集群构建

1,说明:在K8s集群中,如果Node节点宕机,master可以实现node节点的故障转移,但是如果单master节点出现问题,就会造成集群的不可用,因此master节点的高可用显得尤为重要本次高可用使用之前k8s集群主机,只搭建演示k8s master节点的高可用。2,系统初始化2.1 准备3台主机,按照前面博客所写系统初始化步骤进行系统初始化2.2 按照前面博客安装docker软件3,在主节点启动 Haproxy 与 Keepalived 容器导入脚本 > 运行 &gt

2020-07-27 10:02:28 106

原创 9,kubernetes-Helm及其他功能性组件

1,部署helmhttps://github.com/helm/helm/blob/master/docs/charts.md1.1 什么是 Helm ?在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。况且随 着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本 管理和控制,很大程度上简化了 Kubernetes 应用的部署和管理Helm 本质就是让 K8s 的

2020-07-21 15:24:33 673

原创 8,kubernetes-安全

1, kuberetes集群安全-机制说明Kubernetes 作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。API Server 是集群内部 各个组件通信的中介,也是外部控制的入口。所以Kubernetes的安全机制基本就是围绕保护 API Server来设计的。Kubernetes使用了认证(Authentication)、鉴权(Authorization)、准入控制(Admission Control)三步来保证API Server的安全2,kubernetes集权安.

2020-07-21 10:38:49 148

原创 7,kubernetes调度器

1,kuberbetes调度器-调度说明1.1 简介Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。听起来非常简单,但有 很多要考虑的问题: 公平:如何保证每个节点都能被分配资源 资源高效利用:集群所有资源最大化被使用 效率:调度的性能要好,能够尽快地对大批量的 pod 完成调度工作 灵活:允许用户根据自己的需求控制调度的逻辑 Sheduler 是作为单独的程序运行的,启动之后会一直坚挺 API Ser

2020-07-20 11:43:54 142

原创 生产测试环境mysql\mongo\memcache\zookeeper\kafka安装

1,编译安装mysql参考文档:https://www.nenew.net/ubuntu18-04-compile-install-mysql-5-7-26.html系统:ubuntu1804版本:5.7.30下载地址:wgethttps://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.30.tar.gz1.1 安装相关的包apt install cmakeapt install libn.

2020-07-16 17:54:11 157

原创 LVS-NAT和LVS-DR实验(具体步骤)

实验一:LVS-NAT模式案例实验示意图: 实验1.1:rr调度算法: 1,调整好各个实验主机的主机环境,调整IP,关闭防火墙; 2,LVS、RS1和RS2安装net-tools工具,安装http;LVS上安装ipvsadm工具; 3,将RS1和RS2的网卡网关指向LVS的DIP: 4,开启LVS主机的IP转发功能: 使其生效: [root@lvs ~]# sysctl -p net.ipv4.ip_forward = 1

2020-06-30 09:43:47 470

原创 Centos7 root密码破解

Centos7系统管理员的UID=0;普通用户的ID=1-60000。如果将root UID更改为不是0,即如果系统的管理员UID设置为普通用户,将导致系统无法正常启动。使用救援模式恢复系统,实验测试了如何在救援模式下恢复root密码设置(centos7版本为CentOS-7-x86_64-Everything-1810)。1,准备测试环境 将Centos7版本的/etc/passwd文件root UID修改为普通用户ID,如下图所示: 修改完成...

2020-06-28 20:30:37 1650

LVS+HAPROXY+NGINX+mysql+N7200.html

LVS+HAproxy+NGINX+mysql+nf综合实验过程,详细步骤,可以参考。

2019-08-25

空空如也

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

TA关注的人

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