
Linux运维
文章平均质量分 92
hakula007
这个作者很懒,什么都没留下…
展开
-
异地多活架构原理讲解
在软件开发领域,「异地多活」是分布式系统架构设计的一座高峰,很多人经常听过它,但很少人理解其中的原理。异地多活到底是什么?为什么需要异地多活?它到底解决了什么问题?究竟是怎么解决的?这些疑问,想必是每个程序看到异地多活这个名词时,都想要搞明白的问题。有幸,我曾经深度参与过一个中等互联网公司,建设异地多活系统的设计与实施过程。所以今天,我就来和你聊一聊异地多活背后的的实现原理。认真读完这篇文章,我相信你会对异地多活架构,有更加深刻的理解。这篇文章干货很多,希望你可以耐心读完。01原创 2021-10-29 09:38:11 · 458 阅读 · 0 评论 -
TCP 三次握手和四次挥手的简要描述
一、TCP报文格式 在了解三次握手和四次挥手之前,先知道TCP报文内部包含了哪些东西。 TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。TCP在发送数据前必须在彼此间建立连接,这里连接意思是:双方需要内保存对方信息(例如:IP,Port…) 报文主要段的意思 序号:表示发送的数据字节流,确保TCP传输有序,对每个字节编号 确认序号:发送方期待接收的下一序列号,接收成功后的数据字节序列号加 1。只有ACK..原创 2020-06-28 17:07:36 · 1773 阅读 · 0 评论 -
Linux安装完成后 需要做什么优化呢?
CENTOS6的优化方案:1、快速更改国内yum源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup #<<-备份系统自带yum源wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo <<—国内使用阿里云yum源速度比较快wget -O /...原创 2020-06-21 23:07:25 · 996 阅读 · 0 评论 -
centos7 Firewalld的使用教程
Firewalld 与Iptables 的区别FirewallD即Dynamic Firewall Manager of Linux systems,Linux系统的动态防火墙管理器,是 iptables 的前端控制器,用于实现持久的网络流量规则。它提供命令行和图形界面,在大多数 Linux 发行版的仓库中都有。与直接控制 iptables 相比,使用 FirewallD 有两个主要区别:FirewallD 使用区域和服务而不是链式规则。 FirewallD可以动态修改单条规则,而不需要像...原创 2020-06-21 22:55:49 · 605 阅读 · 0 评论 -
DevOps、CI、CD 分别指的是什么?
DevOpsDevOps是Development和Operations的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合。以期打破传统开发和运营之间的壁垒和鸿沟。DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。通过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。具体来说,就是在软件交付和部署过程中提高沟通与协作的..原创 2020-06-15 13:46:48 · 3656 阅读 · 1 评论 -
MySQL、MongoDB、Redis 数据库之间的区别以及使用场景
NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路。MongoDB:它是一个内存数据库,数据都是放在内存里面的。对数据的操作大部分都在内存中,但MongoDB并不是单纯的内存数据库。MongoDB 是由 C++ 语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为 WEB..转载 2020-06-12 21:17:16 · 1108 阅读 · 0 评论 -
K8S生态--交付prometheus监控及grafana炫酷dashboard到K8S集群
由于docker容器的特殊性,传统的zabbix无法对k8s集群内的docker状态进行监控,所以需要使用prometheus来进行监控:什么是Prometheus?Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Promethe原创 2020-06-12 20:33:44 · 1371 阅读 · 0 评论 -
K8S实战-配置中心(四)分环境使用apollo配置中心
要进行分环境,需要将现有实验环境进行拆分portal服务,可以各个环境共用,但是apollo-adminservice和apollo-configservice必须要分开。1、zk环境拆分为test和prod环境添加dns解析:# vi /var/named/od.com.zonezk-test.od.com A 10.4.7.11zk-prod.od.com A 10.4.7.122、namespace 分环境,创建test ...原创 2020-06-12 20:28:02 · 1336 阅读 · 0 评论 -
K8S实战-配置中心(三)配置服务使用apollo配置中心
使用配置中心,需要开发对代码进行调整,将一些配置,通过变量的形式配置到apollo中,服务通过配置中心来获取具体的配置在配置中心修改新增如下配置:项目信息:配置:重新打包镜像,使用apollo版本的代码:修改dp.yaml,将镜像使用我们刚刚打包的这个:应用资源配置清单:# kubectl apply -f http://k8s-yaml.od.com/dubbo-server/dp.yaml创建dubbo服务消费者:ap...原创 2020-06-12 19:53:11 · 643 阅读 · 0 评论 -
K8S实战-配置中心(二)交付apollo配置中心到K8S
apollo官网:官方地址apollo架构图:apollo需要使用数据库,这里使用mysql,注意版本需要在5.6以上:本次环境mysql部署在10.4.7.11上,使用mariadb:10.1以上版本# vi /etc/yum.repos.d/MariaDB.repo[mariadb]name = MariaDBbaseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64/gpg...原创 2020-06-12 19:51:04 · 706 阅读 · 0 评论 -
K8S实战-配置中心(一)configmap资源
在我们的环境中测试使用configmap资源,需要先对我们的环境进行一些准备,首先将dubbo服务调整为0个pod ,然后把zookeeper进行拆分:拆分zk环境,模拟测试环境跟生产环境:停止zookeeper:# sh /opt/zookeeper/bin/zkServer.sh stop# rm -rf /data/zookeeper/data/*# rm -rf /data/zookeeper/logs/*# vi /op...原创 2020-06-12 19:49:14 · 1093 阅读 · 0 评论 -
K8S实战-交付dubbo服务到k8s集群(六)使用blue ocean流水线构建dubbo-consumer服务
我们这里的dubbo-consumer是dubbo-demo-service的消费者:我们之前已经在jenkins配置好了流水线,只需要填写参数就行了。由于dubbo-consumer用的gitee的私有仓库,需要添加公钥,这里大家可以自己找个client服务来做实验。下面是我们通过jenkins构建的镜像,已经上传到我们的harbor私有仓库当中了:这里我们构建了两次,构建了两个镜像,11bb9cd这个用来做模拟生产发版更新实验。...原创 2020-06-12 19:48:01 · 486 阅读 · 0 评论 -
K8S实战-交付dubbo服务到k8s集群(五)交付dubbo-monitor监控服务到K8S
首先下载dubbo-monitor源码包7-200dubbo-monitor是监控zookeeper状态的一个服务,另外还有dubbo-admin,效果一样,感兴趣的可以自己研究一下。# cd /opt/src# wget https://github.com/Jeromefromcn/dubbo-monitor/archive/master.zip# yum -y install unzip# unzip master.zip# mv dubbo-monitor-mster ..原创 2020-06-12 19:46:42 · 514 阅读 · 0 评论 -
K8S实战-交付dubbo服务到k8s集群(四)使用blue ocean流水线构建dubbo-demo-service
使用jenkins创建一个新的项目:dubbo-demo,选择流水线构建勾选保存构建历史和指定项目为参数化构建项目:添加构建参数:以下配置项,是王导根据多年生产经验总结出来的甩锅大法:除了base_image和maven是choice parameter,其他都是string parameter添加完成后,效果如图:编写pipeline:仔细查看这个pipeline,里面都是我们上面编写的参数。pipeline { agent...原创 2020-06-12 19:45:28 · 697 阅读 · 1 评论 -
K8S实战-交付dubbo服务到K8S集群(三)安装配置maven和java运行时环境的底包镜像
maven 官方地址:官方地址下载maven,shdd7-200# cd /opt/src# wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz# mkdir /data/nfs-volume/jenkins_home/maven-3.6.1-8u232# tar -zxf apache-maven-3.6.1-bin.tar.gz -C .原创 2020-06-12 19:43:26 · 418 阅读 · 1 评论 -
K8S实战-交付dubbo服务到k8s集群(二)交付jenkins到k8s集群
首先下载jenkins镜像并上传到我们自己的私有仓库:7-200# docker pull jenkins/jenkins:2.190.3# docker tag 22b8b9a84dbe harbor.od.com/public/jenkins:v2.190.3# docker push harbor.od.com/public/jenkins:v2.190.3为了适应我们的环境,我们的jenkins不能直接使用,需要进行配置:# mkdir -p /data/dockerfi原创 2020-06-12 19:40:27 · 738 阅读 · 1 评论 -
K8S实战-交付dubbo服务到k8s集群(一)准备工作
本次交付的服务架构图:因为zookeeper属于有状态服务,不建议将有状态服务,交付到k8s,如mysql,zk等。首先部署zk集群:zk是java服务,需要依赖jdk,jdk请自行下载:集群分布:7-11,7-12,7-21# mkdir /opt/src# mkdir /usr/jav# cd /opt/src# tar -xf jdk-8u221-linux-x64.tar.gz -C /usr/java/# ln -s /usr/java/jd...原创 2020-06-12 19:38:32 · 555 阅读 · 0 评论 -
K8S进阶(六)K8S平滑升级
当我们遇到K8S有漏洞的时候,或者为了满足需求,有时候可能会需要升级或者降级版本,为了减少对业务的影响,尽量选择在业务低谷的时候来升级:首先准备好文件:我这里选择的是内网文件服务器上下载的,请自行下载所需的k8s源文件:3这里演示更换一个节点:7-21查看版本:将7-21更换成1.15.2# cd /opt/src# wget http://192.168.1.60:8080/day1/kubernetes-server-linux-amd64-v1.15.2..原创 2020-06-12 19:35:43 · 1083 阅读 · 0 评论 -
K8S进阶(五)dashboard--WEB管理
dashboard是k8s的可视化管理平台,是三种管理k8s集群方法之一首先下载镜像上传到我们的私有仓库中:hdss7-200# docker pull k8scn/kubernetes-dashboard-amd64:v1.8.3# docker tag fcac9aa03fd6 harbor.od.com/public/dashboard:v1.8.3# docker push harbor.od.com/public/dashboard:v1.8.3编辑dashboard资源原创 2020-06-12 19:33:33 · 1133 阅读 · 0 评论 -
K8S进阶(二) 核心网络插件Flannel的安装
网络插件Flannel介绍:https://www.kubernetes.org.cn/3682.html首先,flannel利用Kubernetes API或者etcd用于存储整个集群的网络配置,其中最主要的内容为设置集群的网络地址空间。例如,设定整个集群内所有容器的IP都取自网段“10.1.0.0/16”。接着,flannel在每个主机中运行flanneld作为agent,它会为所在主机从集群的网络地址空间中,获取一个小的网段subnet,本主机内所有容器的IP地址都将从中分配。然后,fla原创 2020-06-12 19:24:43 · 4517 阅读 · 0 评论 -
windows 下的TortoiseGit和Git配置使用同一SSH密钥
因为Git与TortoiseGit默认使用的私钥格式不一样,所以我们需要给Git和TortoiseGit个配置一份公钥私钥,但是这样会显得很麻烦,那么我们如何让Git与TortoiseGit使用同一SSH密钥呢?假设Git的公钥私钥已经配置好了空白地方右键-->TortoiseGit-->Settings,General-->点击"Re-run First Start Wizard"一直点击"下一步",直到如下窗口,选择"OpenSSH",点击"完成"。..原创 2020-06-10 17:35:35 · 388 阅读 · 0 评论 -
Windows下修改Git bash的用户主目录
在Windows下安装git后,默认的用户主目录和开始路径一般都是:C:\Users\用户名。这种默认设置会有两个麻烦:(1). 每次打开Git bash进行工作时就会自动进入此目录下,要切换到常用的自定义目录还要重复切换,很不方便。(2). 随后生成的相关配置文件,如:.ssh、.gnupg、.bash_history、.gitconfig等也会在默认的“C:\Users\用户名”路径下,这就是用户主目录。一般是不建议存放在C盘的,因为C盘内容越多越不利于计算机运行。本经验就是解决麻烦(2原创 2020-06-10 15:08:57 · 2931 阅读 · 1 评论 -
Git与SVN比较各自的有优点缺点和差异
一、集中式vs分布式1.Subversion属于集中式的版本控制系统集中式的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。Subversion的特点概括起来主要由以下几条:每个版本库有唯一的URL(官方地址),每个用户都从这个地址获取代码和数据; 获取代码的更新,也只能连接到这个唯一的版本库,同步以取得最新数据; 提交必须有网络连接(非本地版本库); 提交需要授权,...原创 2020-06-10 12:15:39 · 1845 阅读 · 0 评论 -
K8S进阶(一) kubectl工具使用详解
管理k8s核心资源的三种基本方法:一、陈述式-主要依赖命令行工具--可以满足90%以上的使用场景,但是缺点也很明显: 命令冗长,复杂,难以记忆 特定场景下,无法实现管理需求 对资源的增、删、查操作比较容易,改比较麻烦,需要patch来使用json串来更改。 1.1 查看名称空间 查询时,为了避免重名,需要指定名称空间。# kubectl get namespace简写:# kubectl get ns 1.2 查询命名空间中的资源,使用-n ...原创 2020-05-28 23:29:48 · 3653 阅读 · 0 评论 -
K8S安装(七) 部署知识点总结
1、k8s各个组件之间通信,在高版本中,基本都是使用TSL通信,所以申请证书,是必不可少的,而且建议使用二进制安装,或者在接手一套K8S集群的时候,第一件事情是检查证书有效期,证书过期或者TSL通信问题会报x509相关错误。可以从k8s kubelet-kuberconfig 使用 echo '证书' | base64 -d 反解获得k8s证书(比如阿里云)# cfssl-certinfo -domain=ca.pem -cert=client.pem2、在安装k8s运算节点的..原创 2020-05-28 22:34:04 · 485 阅读 · 0 评论 -
K8S安装(六) kube-proxy组件安装
Kube-Proxy简述参考文献:https://ywnz.com/linuxyffq/2530.html运行在每个节点上,监听 API Server 中服务对象的变化,再通过管理 IPtables 来实现网络的转发Kube-Proxy 目前支持三种模式:UserSpace k8s v1.2 后就已经淘汰 IPtables 目前默认方式 IPVS--推荐,支持7层 需要安装ipvsadm、ipset 工具包和加载 ip_vs 内核模块 kube-proxy部署在hdss7-原创 2020-05-28 22:32:04 · 2971 阅读 · 0 评论 -
shell中的括号(小括号,大括号/花括号)的使用方法
在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下:1.${var}2.$(cmd)3.()和{}4.${var:-string},${var:+string},${var:=string},${var:?string}5.$((exp))6.$(var%pattern),$(var%%pattern),$(var#pattern),$(v...原创 2020-05-07 17:08:27 · 3826 阅读 · 0 评论 -
Docker 空间清理和目录迁移
1- docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况:[root@qiku overlay2]# docker system dfTYPE TOTAL ACTIVE SIZE RECLAIMABLEImages ...原创 2019-08-18 19:56:18 · 1251 阅读 · 0 评论 -
centos7 释放内存和yum清理缓存与释放内存
安装的是centos7系统,准备对centos7释放内存,发现使用yum清理缓存与释放内存非常的方便,先使用free -m命令来查看centos7系统剩余了多少内存,准备清理掉,如下:[root@VM_230_32_centos www]# free -m total used free shared buff/cache...原创 2019-08-18 19:46:00 · 1169 阅读 · 0 评论 -
centos7之系统优化方案-15条优化条目
优化条目: 修改ip地址、网关、主机名、DNS等 关闭selinux,清空iptables 添加普通用户并进行sudo授权管理 更新yum源及必要软件安装 定时自动更新服务器时间 精简开机自启动服务 定时自动清理/var/spool/clientmqueue/目录垃圾文件,放置inode节点被占满 变更默认的ssh服务端口...原创 2019-08-18 19:32:39 · 642 阅读 · 0 评论 -
如何使用Monit部署服务器监控系统
很多Linux系统管理员依赖一个集中式的远程监控系统(比如Nagios或者Cacti)来检查他们网络基础设备的健康状况。虽然集中式监控让管理员的生活更简单了,然而处理很多机器和服务时,专用的监控中心显然成为了一个单点故障,如果监控中心挂了或者因为什么原因(比如硬件或者网络故障)不可访问了,你就会失去整个网络基础设备情况的任何信息。一个给你的监控系统增加冗余度的方法是安装独立的监控软件(作为后备...转载 2018-08-14 15:58:12 · 1554 阅读 · 0 评论 -
Docker容器日志实时查看与清理
一、docker logs 实时查看指定容器的日志docker logs -f -t --since=“2017-05-31” --tail=10 containerID命令说明:–since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。-f : 查看实时日志-t : 查看日志产生的日期-tail=20 : 查看最后的20条日志。containerID: 容...原创 2020-04-27 21:12:13 · 956 阅读 · 0 评论