## 前言距离上一次搭1.9版本,已经过去一年了,这一年时间里,kubernetes已经迭代到了v1.14.3版本了,为了体验新版本的特性,今天来搭建最新版的集群,部署步骤与之前的一致,CNI kube-router经过了线上一年的验证,这里继续沿用kube-router的bgp直通网络方案。具体 ...
inux TCP连接失败(不回复SYN,ACK)问题分析
## 问题现象在某一台服务器无法访问另一台服务器的https服务,telnet检测端口发现端口无法连接:[root@020113 ~]# telnet 192.168.5.27 443Trying 192.168.5.27... 问题分析第一步:网络检查同网段其他主机访问服务端是正常的,因此网络问 ...
Golang基础学习: Struct和Json
前言结构体是将多个任意类型的命名变量组合在一起的聚合数据类型,通过结构体,可以多维度/方面的聚合逻辑数据,形成一个整体,其中的这些命名变量叫做结构体的成员。 Struct声明:// 声明一个结构体类型type Employee struct { ID int Name ...
Golang基础学习: array和slice对比和使用
前言在golang中,常见的序列型数据类型有array和slice这两种,但array因为其固定长度的限制,在实际使用中用得不多,slice则更为常用。下面简单介绍和对比一下这两种相似却又有很多差异的数据类型。 Array:概念: 在golang中,数组由相同类型的元素组成的具有固定长度的一种序列 ...
k8s踩坑(三)、kubeadm证书/etcd证书过期处理
故障现象使用kubeadm部署的集群,在运行了一年之后的今天,出现k8s api无法调取的现象,使用kubectl命令获取资源均返回如下报错:Unable to connect to the server: x509: certificate has expired or is not yet va ...
Python子线程异常捕获 & Python自定义优化线程池
前言虽然CPython因为GIL的存在导致多线程的并发计算能力大打折扣,但是在i/o密集型的场景时,使用多线程还是能带来效率上的飞跃。近期在使用多线程时遇到了主线程无法捕获子线程抛出的异常问题,这里记录一下解决的办法。 需求将某一指定目录下所有的文件(包含子目录下的文件)中所有被$[]$字符包裹起来 ...
Kubernetes踩坑(二): Service IP(LVS)间断性TCP连接故障排查
问题阶段(一):用户反应某个redis使用卡顿,连接该redis服务使用的是svc代理,即ipvs snat的方式,ipvsadm -L发现,VIP收到的6379端口的数据包,会以rr的方式分别转发到pod的80 6379端口上,相当于会有50%的丢包,不卡才怪: # ipvsadm | grep ...
k8s(十四)、RBAC权限控制
前言kubernetes 集群相关所有的交互都通过apiserver来完成,对于这样集中式管理的系统来说,权限管理尤其重要,在1.5版的时候引入了RBAC(Role Base Access Control)的权限控制机制. RBAC也是初接触k8s的用户较难理解的一部分,同时RBAC作为集群管理的 ...
kube-router工作模式抓包分析
## 前言kube-router是由CNCF官方孵化的CNI插件项目,灵活度很高,支持Service网段、pod网段bgp宣告,与集群内外构建直连网络,同时支持ipvs Service代理,目前已有不少大中型公司采用此CNI,github的star数量已经超越calico,因此决定采用kube-r ...
Docker registry仓库历史镜像批量清理
前言在jenkins CI/CD流水线中以自动打包并push镜像的方式运行了一段时间之后,docker registry中堆积的历史镜像数量极多,磁盘空间告急,为此,有必要定期做镜像的清理,并释放镜像占用的存储空间 清除原理Docker registry提供有restful api进行镜像管理,参 ...