Kubernetes学习笔记之CSI External Provisioner源码解析

2021-02-17
阅读 12 分钟
5k
最近在部署K8s持久化存储插件时,需要按照CSI官网说明部署一个Deployment pod,由于我们的自研存储类型是文件存储不是块存储,所以部署pod不需要包含容器 external-attacher ,只需要包含 external-provisioner sidecar container和我们自研的csi-plugin容器就行,部署yaml类似如下:

Kubernetes学习笔记之CSI Plugin注册机制源码解析

2021-02-17
阅读 16 分钟
5.1k
最近在维护组内K8s CSI plugin代码时,一直对其内部原理好奇,故趁机深入学习熟悉K8s CSI相关原理。部署K8s持久化存储插件时,需要按照CSI官网说明,部署一个daemonset pod实现插件注册,该pod内容器包含 node-driver-registrar ,部署yaml类似如下:
封面图

Kubernetes学习笔记之Calico CNI Plugin源码解析(二)

2021-01-11
阅读 14 分钟
2.9k
calico插件代码仓库在 projectcalico/cni-plugin ,并且会编译两个二进制文件:calico和calico-ipam,其中calico会为sandbox container创建route和虚拟网卡virtual interface,以及veth pair等网络资源,并且会把相关数据写入calico datastore数据库里;calico-ipam会为当前pod从当前节点的pod网段内分配ip地址,当然当...

Kubernetes学习笔记之Calico CNI Plugin源码解析(一)

2021-01-11
阅读 8 分钟
3.2k
之前在 Kubernetes学习笔记之kube-proxy service实现原理 学习到calico会在worker节点上为pod创建路由route和虚拟网卡virtual interface,并为pod分配pod ip,以及为worker节点分配pod cidr网段。

Kubernetes学习笔记之kube-proxy service实现原理

2021-01-04
阅读 6 分钟
5.9k
我们生产k8s对外暴露服务有多种方式,其中一种使用 external-ips clusterip service ClusterIP Service方式对外暴露服务,kube-proxy使用iptables mode。这样external ips可以指定固定几台worker节点的IP地址(worker节点服务已经被驱逐,作为流量转发节点不作为计算节点),并作为lvs vip下的rs来负载均衡。根据vip:port...

Kubernetes学习笔记之LRU算法源码解析

2020-12-28
阅读 7 分钟
1.9k
之前一篇文章学习 Kubernetes学习笔记之ServiceAccount TokensController源码解析 ,主要学习ServiceAccount有关知识,发现其中使用了LRU Cache,代码在 L106 。k8s自己封装了一个LRU cache的对象 MutationCache ,正好趁此机会复习下 LRU 算法知识。

Kubernetes学习笔记之ServiceAccount TokensController源码解析

2020-12-28
阅读 12 分钟
3.5k
在 Kubernetes学习笔记之ServiceAccount AdmissionController源码解析 文章中,知道一个ServiceAccount对象都会引用一个type="kubernetes.io/service-account-token" 的secret对象,这个secret对象内的 ca.crt 、 namespace 和 token 数据会被挂载到pod内的每一个容器,供调用api-server时认证授权使用。

Kubernetes学习笔记之ServiceAccount AdmissionController源码解析

2020-12-28
阅读 6 分钟
1.9k
本文章基于k8s release-1.17分支代码,代码位于 plugin/pkg/admission/serviceaccount 目录,代码:admission.go 。

Kubernetes学习笔记之Calico Startup源码解析

2020-12-27
阅读 10 分钟
3.3k
我们目前生产k8s和calico使用ansible二进制部署在私有机房,没有使用官方的calico/node容器部署,并且因为没有使用network policy只部署了confd/bird进程服务,没有部署felix。采用BGP(Border Gateway Protocol)方式来部署网络,并且采用 Peered with TOR (Top of Rack) routers 方式部署,每一个worker node和其置顶交...

[笔记]iptables 学习记录

2020-05-03
阅读 4 分钟
4k
iptables 是基于内核态的 netfilter 框架,用来过滤 ip 数据包和网络地址转换 NAT 的一个工具,一般用作防火墙功能,或负载均衡功能。简单点说:iptables 是用户态的命令行工具,可以操作内核态的 iptables 的几个模块(基于更底层的 netfilter 模块),然后达到过滤或网络地址转换数据包。

(笔记)kube-proxy 源码中使用 ipvs 基本流程

2020-05-01
阅读 2 分钟
1.9k
kube-proxy 二进制文件只有 37M 左右,不是很大,没记错的话 gitlab runner 有 57M 好像(跑 gitlab ci/cd,也是 go 写的)。kube-proxy 会以DaemonSet 形式跑在每一个 Node 节点上,当然也可以只跑在一小部分 Node 节点上转发数据包,只是代理节点,而另一大部分 Node 节点跑 kubelet 进程,作为计算节点: