胡伟煌

个人博客

Lxcfs资源视图隔离

1. 资源视图隔离 容器中的执行top、free等命令展示出来的CPU,内存等信息是从/proc目录中的相关文件里读取出来的。而容器并没有对/proc,/sys等文件系统做隔离,因此容器中读取出来的CPU和内存的信息是宿主机的信息,与容器实际分配和限制的资源量不同。 123456/proc/cpuinfo/proc/diskstats/proc/meminfo/proc/stat/proc/......

k8s多集群管理的思考

k8s多集群的思考 1. 为什么需要多集群 1、k8s单集群的承载能力有限。 Kubernetes v1.21 支持的最大节点数为 5000。 更具体地说,Kubernetes旨在适应满足以下所有标准的配置: 每个节点的 Pod 数量不超过 100 节点数不超过 5000 Pod 总数不超过 150000 容器总数不超过 300000 参考:https://kubernetes.io/......

CNI接口介绍

1. CNI(Container Network Interface) CNI(Container Network Interface)即容器网络接口,通过约定统一的容器网络接口,从而kubelet可以通过这个标准的API来调用不同的网络插件实现不同的网络功能。 kubelet启动参数–network-plugin=cni来指定CNI插件,kubelet从--cni-conf-dir (默认......
CNI

Macvlan介绍

1. 简介 macvlan可以看做是物理接口eth(父接口)的子接口,每个macvlan都拥有独立的mac地址,可以被绑定IP作为正常的网卡接口使用。通过这个特性,可以实现在一个物理网络设备绑定多个IP,每个IP拥有独立的mac地址。该特性经常被应用在容器虚拟化中(容器可以配置macvlan的网络,将macvlan interface移动到容器的namespace中)。 示意图: 2. 四......
CNI

controller-manager 源码思维导图

controller-manager 源码思维导图 源码整体结构图 var isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|Bro......

Cgroup不支持pid资源

问题描述 机器内核版本较低,kubelet启动异常,报错如下: 1Failed to start ContainerManager failed to initialize top level QOS containers: failed to update top level Burstable QOS cgroup : failed to set supported cgroup sub......

Cgroup子系统无法挂载

问题描述 内核版本: 5.4.56-200.el7.x86_64 docker报错 12345May 13 16:54:26 8b26d7a8 dockerd[44352]: time="2021-05-13T16:54:26.565235530+08:00" level=warning msg="failed to load plugin io.contain......

increase the mlock limit

问题描述 容器启动报错:increase the mlock limit,原因是ulimit mlock值比较小,需要将ulimit值调大。 报错如下: 12345678910111213141516171819202122232425262728293031323334353637383940runtime: mlock of signal stack failed: 12runtime:......

使用etcdadm部署Etcd集群

1. 安装etcdadm 在Releases · kubernetes-sigs/etcdadm · GitHub中选择需要部署的版本,示例如下: 123wget https://github.com/kubernetes-sigs/etcdadm/releases/download/v0.1.5/etcdadm-linux-amd64mv etcdadm-linux-amd64 /usr/......

kube-scheduler 源码思维导图

kube-scheduler 源码思维导图 源码整体结构图 var isMobile = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|Browser......