- 博客(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
原创 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
原创 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
原创 使用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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人