自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (3)
  • 收藏
  • 关注

原创 CI/CD

CI/CDCI(continus integration)持续集成CD(continus delivery)持续交付CT(continus testing)持续测试持续的意思并不是一直运行,而是“随时可以”,“可重复多次执行”的意思。中间肯定是通过自动化来保证正确性和高效率的。持续集成,是在源代码变更后,自动检测、拉取、构建、进行单元测试的过程。持续集成的目标是快速确保开发人员提交的代码变更是好的,并且适合在代码库中进一步使用。持续交付,指的是整个流程,他自动检测代码变更,并通过构建、

2021-03-31 17:14:50 143

原创 通过GODEBUG进行性能分析

GODEBUG=gctrace=1 go run ./main.gogc 1 @1.030s 0%: 0.064+1.7+0.013 ms clock, 0.25+0.34/0.37/0.007+0.053 ms cpu, 4->4->0 MB, 5 MB goal, 4 Pgc 2 @1.817s 0%: 0.063+0.83+0.005 ms clock, 0.25+0.33/0.56/0.16+0.022 ms cpu, 4->4->0 MB, 5 MB goal, 4 .

2021-03-30 18:08:08 191

原创 k8s List-Watch

k8s List-Watch k8s系统组件之间使用HTTP协议通信,使用HTTP协议实现这么复杂的系统功能,一定是有他的过人之处。 List-Watch,顾名思义,就是由List和Watch两部分组成,List就是普通的HTTP短链接,可以获取各种资源的列表数据。 而Watch则是通过调用资源的Watch API监听资源变更时间,基于HTTP长链接实现。 Informer封装了list-watch的API,用户需要指定资源,编写时间处理函数,Add...

2021-03-29 15:37:35 1911

原创 k8s Informer机制

核心模块Informer只要由如下几个模块组成:Reflector Informer Indexer其架构图如下:Reflector 通过上图,可以看到,Reflector内部实现了ListWatch机制,可以感知资源的变化,一个ListWatch只对应一种资源,包括k8s的内置资源,也可以是用户自定义的资源。当感知到资源的创建、更新、删除时,将资源放到Delta FIFO的队列里。Informer Informer是我们要监听的资源的代码抽象,在Control...

2021-03-28 00:17:58 612 1

原创 k8s知识体系图

k8s知识体系

2021-03-25 23:52:48 261

原创 Kube-Proxy

Kube-Proxy 由于每个Service下映射的Pod可能在不同的节点上,这样就产生一个问题, Service的请求如何转发到Pod上?这就涉及到k8s的核心组件kube-proxy了。 我们登录集群的master节点,kubectl -n kube-system get pod -owide 可以看到有几个kube-proxy的pod pod的个数刚好是和集群的节点数是相同的(加上master节点)。kube-proxy是service的具体实现载体.就像是节点上...

2021-03-25 16:38:44 83

原创 网络概念

Veth (Virtual Ethernet) 虚拟网卡接口是Linux提供的一种特殊的网络设备,它总是成对出现,要创建就创建一个Pair,一个Pair中的veth就像是一根网线的两个端点,数据从一个端点进入,从另一个端点流出。每个veth都可以被赋予IP地址,并参与三层网络路由过程,可以实现不同的netns(Linux Network Namespace)之间的网络通信。1287: veth7607376@if1286: <BROADCAST,MULTICAST,UP,LOWER_UP&g

2021-03-25 12:36:28 61

原创 centos安装部署webssh

环境介绍: centos7 (192.168.1.10) python3.6 webssh 1.5.3安装相关插件webssh是python写的,所以需要有python环境。yum install python3下载安装setuptools wget https://files.pythonhosted.org/packages/94/75/05e1d69c61c4dfaf65ad12785cd18bedc1e0129976c55914d6aea...

2021-03-24 16:47:17 1228

转载 k8s常见的10种Ingress

为特定的应用部署 Kubernetes 集群时,我们通常需要实现来自应用程序本身、业务和开发人员的需求。了解这些后,我们就可以进行架构选择,并为 Kubernetes 选择合适的 Ingress 控制器。为了方便工程师高效选用合适的 Ingress 控制器,本文对业内的 Ingress 控制器做了整理和功能梳理,最后总结成一篇综述。借助这篇文章,希望读者能找到一个好的起点,然后开始自己的实践。sMeetup选择标准为了进行客观对比并得到有用的结果,首先我们需要一套特定的标准来确定研究方.

2021-03-23 23:30:56 2362

原创 dry run

dry run[ˌdraɪ ˈrʌn]n.排练; 演习;在IT行业运用非常广泛。一般是只预加载、预运行的意思。起到“验证”的作用。比如阿里云cloud shell产品里对dryrun的解释是 --dryrun add `--dryrun` to validate and print request without running.另外k8s和helm里也有dry run。基本都是上面的意思。...

2021-03-23 23:21:49 1629

原创 CoreDNS 

CoreDNS 是k8s 1.3之后内置的、默认DNS服务器。CoreDNS是golang语言编写的插件式的DNS服务器。也是Apache免费开源项目之一。 定位是云原生环境下的DNS服务器及服务发现解决方案。 特点:Plugins(插件化) Service Discovery(服务发现) Fast and Flexible(快速和弹性) Simplicity(简单) 官方提供了二进制、Docker镜像模式、源码编译三种使用方式。window 、l...

2021-03-23 15:33:58 355

原创 Kubernetes CRD(Custom Resource Definition

Kubernetes CRD(Custom Resource Definition) k8s中默认的有几类资源,Deploment、StatefulSet、Service、CronJob等等。k8s为了让用户拥有完全的定制化需求,它允许用户制造一个自己想要的资源类型。这一概念就是CRD(Custom Resource Definition)。我们不需要修改原有的API源码就能实现,该功能大大地提高了k8s的可扩展能力。 当一个新的自定义CRD创建时,k8s api服务器将为你指定的...

2021-03-23 11:09:13 426

原创 CIDR

CIDR (Classless Inter-Domain Routing 无类域间路由选择),他消除了传统的A类,B类,和C类地址以及划分子网的概念,因而可以更加有效地分配IPV4的地址空间。他可以将好几个IP网络结合在一起,使用一种无类别的域际路由选择算法,使它们合并成一条路由从而减少路由表中的路由条目,减轻Internet路由器的负担。 CIDR还使用斜线记法,又称为CIDR记法,即在IP地址后端加一个斜线“/”。然后写上网络前缀所占的比特数。(这个数值相对于三级编址中子网掩码...

2021-03-23 10:50:28 82

原创 ELB

ELB(Elastic Load Balancing) 负载均衡是网络流量的入口,重要性不言而喻。 从应用场景角度看,有全局负载均衡和集群内负载均衡 从产品形态来看,有硬件负载均衡和软件负载均衡。 全局负载均衡通过DNS来实现,一个域名下映射多个VIP。每个VIP对应到不同的region. 硬件负载均衡有F5、A10、Array,其中F5最常见。 优缺点对比 硬件负载均衡:功能强大,性能好,有专业的售后团队支撑。 缺点是:缺少定制的灵...

2021-03-22 13:55:31 569

原创 Linux离线安装MySQL

一、准备工作[root@localhost /]# rpm -qa | grep mysql通过结果查看我们安装了 mysql-libs-5.2.2-5.el6_6.x86_64,那么卸载掉:rpm -e --nodeps mysql-libs-5.2.2-5.el6_6.x86_64再次验证是否还有:rpm -qa | grep mysql[root@k8s-node-4 lib64]# whereis mysqlmysql: /usr/lib64/mysql /us..

2021-03-22 00:18:03 104

原创 git超时

最近git bash偶尔会出现pull 或者 push的时候超时。在此记录一下解决方法。一、环境介绍:windows10 git 2.31.0.windows二、查找最快的节点访问http://tool.chinaz.com/dns?type=1&host=www.github.com&ip= ,查找TTL最小的IP值,三、修改配置记事本打开C:\Windows\System32\drivers\etc\hosts 文件,在最后一行加上 :13.2...

2021-03-21 11:47:01 650

原创 Serverless

一、理解Serverless Serverless 从字面意思理解,就是无服务。一个有趣的现象是,IT领域很多名字都是描述的一种极端状态或者说是理想状态。无服务,并不是真正的一个服务也没有,而是“可以做到几乎没有服务”这种状态。 所有的新技术的产生都是为了同一个目的“降本增效”。如果从这个出发点去理解Serverless,会轻松很多。接下来我们通过举例来说明一下,不妥之处,请留言指出,不胜感激。石器时代、冷兵器时代、黑火药时代、近代兵器时代、现代兵器时代和热核兵器时代二、发展1、石...

2021-03-21 11:42:02 157

原创 了解物联网协议

物联网协议

2021-03-19 14:34:14 96 1

原创 Golang学习路线图

Golang学习路线图

2021-03-18 23:21:32 551 1

原创 Golang调度机制(MPG)

golang MPG调度模型

2021-03-18 18:41:22 442

原创 kubectl之后发生了什么

1、kubectl 接收到命令后随即调用 apiserver ,写入一条数据到etcd。2、deployment controller 监听到有一条创建dp的要创建,于是创建了一个replica set,写入到etcd3、replicat set controller发现有一个replica set,下面一个pod也没有,于是往etcd里创建了对应的pod(只是静态数据)。4、这时scheduler 监听到有pod要创建,于是掐指一算,要把这个POD调度到某个节点上去,于是通过apiserver修改e

2021-03-18 16:59:56 141

原创 并发并行

把机器的一个核看成一条路,多核机器拥有多条路。单核机器,只有一条路。车子比作任务。 并发,也按字面理解,同一时刻出发,但是车子有快有慢,N个车子参差不齐地在一个道上跑(单核),在道上的某一处,只能有一辆车,其他车在前或者在后。一辆车呼啸而过之后,紧接着是下一辆。和单核在处理多个任务时不停切换类似。 并行,我们就按字面意思理解,比如N辆车并行,那肯定是同一时刻,这N辆车在并排跑,齐头并进(N个任务在同时被处理)。N量车子并行跑,由于量可能会很大,因此不可能是只...

2021-03-17 22:53:55 107

原创 校正Linux系统时间

安装rdate软件yum -y install rdate使用rdate将stdtime.gov.hk服务器的时间抓取回来,然后写入硬件rdate -t 60 -s stdtime.gov.hkhwclock -wdaterdate命令介绍及用法功能说明:显示其他主机的日期与时间语  法:rdate [-ps][主机名称或IP地址…]补充说明:执行rdate指令,向其他主机询问系统时间并显示出来参  数:-p  显示远程主机的日期与时间;-s  把从远程主机收到的日期和时

2021-03-16 15:54:16 196

原创 wrk

./wrk --latency -H "vali-region:efa" -H "Content-Type:application/json" -H "vali-area-zone:NDA" -H "vali-tenant-name:quality_dev" -H "vali-user-name:vali666" -H "vali-tenant-uuid:Tenant-PVYF8mTcVg" -H "vali-area-zone-id:666666" -H "vali-user-uuid...

2021-03-14 23:40:06 206

原创 tar命令说明

01-.tar格式解包:[*******]$ tar xvf FileName.tar打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)02-.gz格式解压1:[*******]$ gunzip FileName.gz解压2:[*******]$ gzip -d FileName.gz压 缩:[*******]$ gzip FileName03-.tar.gz格式解压:[*******]$ tar zxvf Fil.

2021-03-14 23:34:44 183

原创 grpc生成protoc协议文件命令

protoc -I . -I ../../../../vendor -I ../../../../../ --go_out=. --micro_out=. k8smgr.protoprotoc -I . -I ../../../src/go/vendor -I ../../../../../ --go_out=. --micro_out=. operational_host_consumer.protoprotoc -I src/go/vendor --go_out=. --micro_out=....

2021-03-14 23:30:18 453

原创 DLV调试

DLV调试:kubectl exec进入容器dlv的位置在 /var/log/vali下./dlv attach 8 对进程号为8的进程进行 DLV调试b /proj-workspace/portal/restful/module/sts/get.go:320 在某一行加断点,注意文件路径是相对路径c 继续此处需要调用一下接口args 查看所有参数n 下一行print statefulSet 打印变量...

2021-03-14 23:26:27 1195

原创 k8s搭建集群模式的redis

一、该搭建方式属于半自动搭建集群模式的redis,有个手动操作的过程使用以下yaml文件,在k8s集群中执行kubectl apply -f redis.yaml 需要添加nodeselector的需要自行添加,需要修改密码和端口的可以直接修改configmap中的内容。---apiVersion: v1kind: Servicemetadata: name: redis labels: app: redisspec: selector: app: redis.

2021-03-14 14:07:13 968

原创 K8s Service ClusterIP模式实例

curl apiservice.vali-service-blue.svc.cluster.local:8080 -v {service名称}.{namespace}.svc.cluster.local 输出如下:sh-4.4# curl apiservice.vali-service-blue.svc.cluster.local:8080 -v* Rebuilt URL to: apiservice.vali-service-blue.svc.cluster.local:808...

2021-03-12 16:47:03 434

原创 kafka

kafka:1、启动Zookeeper  使用安装包中的脚本启动单节点Zookeeper 实例:(参数-daemon表示后台运行)bin/zookeeper-server-start.sh -daemon config/zookeeper.properties2、启动Kafka服务 bin/kafka-server-start.sh config/server.properties3、创建TOPIC bin/kafka-topics.sh --create --zook...

2021-03-11 12:31:22 69

原创 Docker容器化Golang服务

docker容器化Golang服务

2021-03-10 23:52:26 481

原创 使用Istio进行蓝绿发布golang服务

一、环境介绍centos 7 istio-1.9.0 go1.15下述步骤是以istio基础组件均已部署好为前提,即istio-system命名空间下的组件均已正常工作二、准备工作1、准备好三个命名空间(不同环境灵活配置):命名空间 功能 说明 vali-system 部署gateway和virtual service vali-service-green 绿环境。部署绿环境的应用 需要加上label:istio-injectio...

2021-03-10 23:33:37 1442 1

原创 go get报错

win10下安装govendor报错go get -u -v github.com/kardianos/govendor错误如下:github.com/kardianos/govendor (download)# cd .; git clone -- https://github.com/kardianos/govendor D:\vali\GoProjects\src\github.com\kardianos\govendorCloning into 'D:\vali\GoProje

2021-03-10 11:52:29 522

原创 Linux安装最新helm

一、环境介绍helm3.5.2 centos7 kubernetes1.20.4二、安装1、下载helm最新版并解压tar -zxvf helm-v3.5.2-linux-amd64.tar.gzcp -a linux-amd64/helm /usr/local/bin/确认版本:helm version:version.BuildInfo{Version:"v3.5.2", GitCommit:"167aac70832d3a384f65f9745335e9fb4016

2021-03-08 00:37:43 1387

原创 部署Istio bookinfo

一、环境介绍centos 7 istio-1.9.0二、安装1、非自动注入执行启动bookinfo:kubectl apply -f <(istioctl kube-inject -f /home/vali/istio-1.9.0/samples/bookinfo/platform/kube/bookinfo.yaml)kubectl get svc istio-ingressgateway -n istio-system如果 EXTERNAL-IP 有值(IP 地址或主.

2021-03-07 17:33:17 304

原创 Linux安装部署istio及使用

一、环境介绍centos7 istio1.9.0(目前最新版)二、安装1、下载 istio-1.9.0-linux-amd64.tar.gz 并解压解压后的文件 istio-1.9.0cp bin/istioctl /usr/local/bin/2、默认安装 这个不会安装kiali、prometheus、grafana那些istioctl install或者istioctl install --set profile=demo可以配置各种设置来修改安...

2021-03-05 12:14:12 3675 5

原创 脚本吃掉CPU

linux服务器上执行一条后台脚本命令:while : ; do : ; done &然后执行top命令查看

2021-03-02 23:08:19 299

GO入门指南_20180826.pdf

GO入门指南_20180826.pdf

2021-06-03

apiserver架构说明

项目的apiserver架构图。使用visio画的图。不够全面,后续持续更新。

2018-09-28

word_cloud

python word_cloud插件,亲测可用,放心下载。python word_cloud插件,亲测可用,放心下载。

2017-10-12

空空如也

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

TA关注的人

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