Kubernetes源码学习-总篇

前言 在熟悉kubernetes及常用组件、插件的管理使用后,总还觉得差了些什么,不够通透,是时候来读一读源码了,结合代码与实际使用场景来互相印证,有助于对kubernetes的理解更为透彻。这里将会分多篇介绍kubernetes各核心组件的工作模式、调度管理算法等。 版本 Kubernetes ...

2019-08-08 16:06:11

阅读数 27

评论数 0

Kubernetes源码学习-Scheduler-P4-Node优先级算法

P4-Node优先级算法 前言 在上一篇文档中,我们过了一遍node筛选算法: p3-Node筛选算法 按调度规则设计,对筛选出的node,选择优先级最高的作为最终的fit node。那么本篇承接上一篇,进入下一步,看一看node优先级排序的过程。 Tips: 本篇篇幅较长,因调度优选算法较为复杂...

2019-08-22 17:03:31

阅读数 2

评论数 0

hexo图片展示-blog图床迁移至七牛云

前言 上一篇中,搭建好了hexo next主题的博客,将cxxn中的所有博客导出为md文档后再全部上传到hexo站内,但是有一个很大的问题:hexo本地图片无法显示,需要安装插件,然后以非md外链的格式插入图片,这使用起来相当不便且不通用,因此放弃插入本地图片的方案。导出的md中的图片外链有的是c...

2019-08-20 17:58:28

阅读数 8

评论数 0

Hexo+Github-pages: 免建站快速部署你的专属博客

前言 C某某N博客的页面样式实在不敢恭维,广告不少,最厉害的在于写作积分还不能用于下载,近两年Hexo挺火的,结合github pages使用,纯md文档输出,自动生成简洁好看的web页面,建站的步骤都可以省略了,试用一番下来体验确实尚可,记录一下部署过程 1. 创建github pages 登录...

2019-08-20 16:54:52

阅读数 22

评论数 0

Kubernetes源码学习-Scheduler-总览篇

调度器总体设计 调度器源码分段阅读目录 调度器入口 调度器框架 Node筛选算法 待补充 概览 首先列出官方md链接,讲解颇为生动: https://github.com/kubernetes/community/blob/master/contributors/devel/s...

2019-08-20 15:34:42

阅读数 20

评论数 0

Kubernetes源码学习-Scheduler-P3-Node筛选算法

P3-Node筛选算法 前言 在上一篇文档中,我们找到调度器筛选node的算法入口pkg/scheduler/core/generic_scheduler.go:162 Schedule()方法 p2-调度器框架 那么在本篇,由此Schedule()函数展开,看一看调度器的node筛选算法,优先级...

2019-08-20 15:33:30

阅读数 7

评论数 0

Kubernetes源码学习-Scheduler-P2-调度器框架

调度器框架 前言 在上一篇文档中,我们找到了sheduler调度功能主逻辑的入口: P1-调度器入口篇 那么在本篇,我们基于找到的入口,来进入调度器框架内部,看一看整体的逻辑流程,本篇先跳过调度的算法(Predicates断言选择、Priority优先级排序),只关注pkg/scheduler目录...

2019-08-20 15:31:41

阅读数 13

评论数 0

Kubernetes源码学习-Scheduler-P1-调度器入口篇

调度器入口 前言 本篇介绍scheduler的初始化相关逻辑 入口之前 入口函数是位于cmd/kube-scheduler/scheduler.go中的main()方法,调用的是app.NewSchedulerCommand()方法,跳转至此方法,可以看到函数上方的注释: // NewSchedu...

2019-08-20 15:11:39

阅读数 17

评论数 0

golang算法练习:排序

需求 排序操作,列举常见的几种排序模型:冒泡、选择、插入、快排 备注:需求和运行输出结果均已在代码中注释 冒泡 代码: package main import "fmt" /* 思路: 从第一个元素开始循环,与其相邻的元素两两比较,若左边元素大于右边元素,则两者互换位置,保...

2019-07-22 17:34:13

阅读数 34

评论数 0

golang算法练习:单链表/双链表/环形链表

需求 链表,常见且非常灵活的数据模型,可定制性强,可根据需求调整满足不同的使用需求,如FIFO\LIFO,快速查找等,这里分别列举基础的单向链表和双向链表增删改查操作 单向链表 代码 package main import ( "errors" "fmt&quo...

2019-07-18 17:42:53

阅读数 19

评论数 0

golang算法练习:基于array的队列实现

需求 队列,很常用的FIFO(先入先出)数据模型,下面尝试使用golang的array数据结构来实现队列模型 简单队列 代码: package main import ( "fmt" ) type SingleQueue struct { Cap int `js...

2019-07-18 17:30:58

阅读数 15

评论数 0

k8s(十六): VXLAN和Flannel

前言 目前k8s中比较常用的cni有calico、flannel、kube-router等,个人比较熟悉的是kube-router的bgp纯直通方案,flannel则是另一款使用较多的比较简单易用的方案,这里着重了解一下flannel的vxlan这一常用模式 VXLAN 在了解flannel之前,...

2019-07-17 16:57:41

阅读数 67

评论数 0

k8s(十五)、Kubernetes v1.14多master集群部署

前言 距离上一次搭1.9版本,已经过去一年了,这一年时间里,kubernetes已经迭代到了v1.14.3版本了,为了体验新版本的特性,今天来搭建最新版的集群,部署步骤与之前的一致,CNI kube-router经过了线上一年的验证,这里继续沿用kube-router的bgp直通网络方案。 具体步...

2019-06-18 09:51:04

阅读数 139

评论数 0

linux TCP连接失败(不回复SYN,ACK)问题分析

问题现象 在某一台服务器无法访问另一台服务器的https服务,telnet检测端口发现端口无法连接: [root@020113 ~]# telnet 192.168.5.27 443 Trying 192.168.5.27... 问题分析 第一步:网络检查 同网段其他主机访问服务端是正常的,因...

2019-06-10 16:52:33

阅读数 85

评论数 0

Golang基础学习: Struct和Json

前言 结构体是将多个任意类型的命名变量组合在一起的聚合数据类型,通过结构体,可以多维度/方面的聚合逻辑数据,形成一个整体,其中的这些命名变量叫做结构体的成员。 Struct 声明: // 声明一个结构体类型 type Employee struct { ID int Name ...

2019-05-03 15:38:49

阅读数 46

评论数 0

Golang基础学习: array和slice对比和使用

前言 在golang中,常见的序列型数据类型有array和slice这两种,但array因为其固定长度的限制,在实际使用中用得不多,slice则更为常用。下面简单介绍和对比一下这两种相似却又有很多差异的数据类型。 Array: 概念: 在golang中,数组由相同类型的元素组成的具有固定长度的一种...

2019-04-27 12:09:29

阅读数 28

评论数 0

k8s踩坑(三)、kubeadm证书/etcd证书过期处理

故障现象 使用kubeadm部署的集群,在运行了一年之后今天,出现k8s api无法调取的现象,使用kubectl命令获取资源均返回如下报错: Unable to connect to the server: x509: certificate has expired or is not yet ...

2019-03-08 17:47:36

阅读数 2796

评论数 8

Python子线程异常捕获 & Python自定义优化线程池

前言 虽然CPython因为GIL的存在导致多线程的并发计算能力大打折扣,但是在i/o密集型的场景时,使用多线程还是能带来效率上的飞跃。近期在使用多线程时遇到了主线程无法捕获子线程抛出的异常问题,这里记录一下解决的办法。 需求 将某一指定目录下所有的文件(包含子目录下的文件)中所有被$[]$字符包...

2019-01-21 16:37:13

阅读数 544

评论数 0

Kubernetes踩坑(二): Service IP(LVS)间断性TCP连接故障排查

问题阶段(一): 用户反应某个redis使用卡顿,连接该redis服务使用的是svc代理,即ipvs snat的方式,ipvsadm -L发现,VIP收到的6379端口的数据包,会以rr的方式分别转发到pod的80 6379端口上,相当于会有50%的丢包,不卡才怪: # ipvsadm | gre...

2018-12-11 11:49:16

阅读数 1050

评论数 0

k8s(十四)、RBAC权限控制

前言 kubernetes 集群相关所有的交互都通过apiserver来完成,对于这样集中式管理的系统来说,权限管理尤其重要,在1.5版的时候引入了RBAC(Role Base Access Control)的权限控制机制. PS: RBAC作为集群管理的基础组件之一,本该放在最前面几篇,但是最...

2018-12-06 20:16:10

阅读数 1272

评论数 0

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