K8S架构-6.5.3 Calico安装与部署
《云原生进阶之容器》专题索引:
- 第一章Docker核心技术1.1节——Docker综述
- 第一章Docker核心技术1.2节——Linux容器LXC
- 第一章Docker核心技术1.3节——命名空间Namespace
- 第一章Docker核心技术1.4节——chroot技术
- 第一章Docker核心技术1.5.1节——cgroup综述
- 第一章Docker核心技术1.5.2节——cgroups原理剖析
- 第一章Docker核心技术1.5.3节——cgroups数据结构剖析
- 第一章Docker核心技术1.5.4节——cgroups使用
- 第一章Docker核心技术1.6节——UnionFS
- 第一章Docker核心技术1.7节——Docker镜像技术剖析
- 第一章Docker核心技术1.8节——DockerFile解析
- 第一章Docker核心技术1.9节——docker-compose容器编排
- 第一章Docker核心技术1.10节——Docker网络模型设计
- 第二章——Kubernetes概述
- 第二章Controller Manager原理剖析--2.1节Controller Manager综述
- 第二章Controller Manager原理2.2节--client-go剖析
- 第二章Controller Manager原理2.3节--Reflector分析
- 第二章Controller Manager原理2.4节--Informer机制剖析
- 第二章Controller Manager原理2.5节--DeltaFIFO剖析
- 第二章Controller Manager原理2.6节--Informer controller
- 第二章Controller Manager原理2.7节--Indexer剖析
- 第二章Controller Manager原理2.8节--Resync机制
- 第三章List-Watch机制3.1节-- List-Watch机制剖析
- 第四章Operator原理4.1节--定制资源(Custom Resource)
- 第四章Operator原理4.2节--CRD
- 第四章Operator原理4.3节--Operator模式
- 第四章Operator原理4.4节--Operator深入实践
- 第五章容器运行时5.1节--容器运行时总述
- 第五章容器运行时5.2节--容器运行时接口规范CRI
- 第五章容器运行时5.3.1--runC简介与使用
- 第五章容器运行时5.3.2--runC原理解读
- 第五章容器运行时5.4--容器运行时之Firecracker
- 第五章容器运行时5.5--容器运行时之Kata Container
- 第五章容器运行时5.6--容器运行时之gVisor
- 第六章容器网络6.1--Docker网络模型
- 第六章容器网络6.2--K8S网络模型
- 第六章容器网络6.3--CNI及各CNI网络解决方案简述
1 部署系统需求
1.1 节点需求
1)配置 NetworkManager
大多数 Linux 都用 NetworkManager 来控制网络,这会影响 Calico 管理接口。
创建 /etc/NetworkManager/conf.d/calico.conf 文件可以防止 NetworkManager 干扰接口。
[keyfile]
unmanaged-devices=interface-name:cali*;
interface-name:tunl*;
interface-name:vxlan.calico;
interface-name:vxlan-v6.calico;
interface-name:wireguard.cali;
interface-name:wg-v6.cali
2)Firewalld 或其他 iptables 管理器需要关闭
防火墙会干扰 Calico 添加的 rule。如果主机需要防火墙,可以用 Calico HostEndpoint 和 GlobalNetworkPolicy 来配置防火墙,参考Security for host。
1.2 Key/Value 存储
Calico v3.24 需要所有的组件都可访问 key/value 存储。在 K8s 上,可以配置 Calico 访问 tecdv3 集群,或者使用 k8s API 数据存储。
1.3 网络需求
确保主机和防火墙配置允许必要的流量:
1.4 权限需求
确保 Calico 拥有 CAP_SYS_ADMIN 权限。最简单的方法是用 root 运行 Calico。
1.5 Kubernetes 需求
1)支持版本
Calico v3.24 支持的(测试过的) k8s 版本有:v1.22, v1.23, v1.24
2)CNI 插件支持
Calico 作为 CNI 插件安装, kubelet 必须配置 --network-plugin=cni 来使用 CNI 网络。(这是kubeadm 默认行为)
3)支持的 kube-proxy 模式
Calico 支持一下 kube-proxy 模式:
- Iptables (默认)
- Ipvs (需要 k8s >=v1.9.3,参考:Enabling IPVS in Kubernetes
4)IP 池配置
给 Pod ip地址选择的范围不能与网络中的其他地址范围冲突。
1.6 应用层策略需要
- MutatingAdmissionWebhook enabled
- Istio v1.9 or v1.10
2 安装部署Calico
Calico的部署方法有3种,针对的情况各不同:
- 针对节点数小于50,使用 k8s API 数据存储安装;
- 针对节点数大于50,使用 k8s API 数据存储和Typha 安装;
- 如果将 Calico 作为 OpenStack 和 k8s 的网络插件,可以用 etcd 数据库的方式安装。对于第一次安装,不推荐使用这种方式。
使用第1种方法。
2.1 下载部署文件
https://raw.githubusercontent.com/projectcalico/calico/v3.24.1/manifests/calico.yaml
# 需要代理
确定 pod cidr 是 192.168.0.0/16
2.2 准备镜像
1、查看需要下载的镜像
[root@master calico]# grep image: calico.yaml
image: docker.io/calico/cni:v3.24.1
image: docker.io/calico/cni:v3.24.1
image: docker.io/calico/node:v3.24.1
image: docker.io/calico/node:v3.24.1
image: docker.io/calico/kube-controllers:v3.24.1
2、拉取镜像并保存到文件
docker pull calico/cni:v3.24.1
docker pull calico/node:v3.24.1
docker pull calico/kube-controllers:v3.24.1
docker save -o cni.tar calico/cni:v3.24.1
docker save -o node.tar calico/node:v3.24.1
docker save -o kube-controllers.tar calico/kube-controllers:v3.24.1
3、修改部署文件
vim calico.yaml
将所有 image: docker.io/calico/*:v3.24.1
替换为 image: 10.x.x.x:5000/calico/*:v3.24.1
10.x.x.x:5000是本地镜像仓库接口
4、在内网环境中,导入并上传镜像
docker load -i cni.tar
docker load -i node.tar
docker load -i kube-controllers.tar
docker tag calico/cni:v3.24.1 10.x.x.x:5000/calico/cni:v3.24.1
docker tag calico/node:v3.24.1 10.x.x.x:5000/calico/node:v3.24.1
docker tag calico/kube-controllers:v3.24.1 10.x.x.x:5000/calico/kube-controllers:v3.24.1
docker push 10.x.x.x:5000/calico/cni:v3.24.1
docker push 10.x.x.x:5000/calico/node:v3.24.1
docker push 10.x.x.x:5000/calico/kube-controllers:v3.24.1
2.3 应用安装
确认环境变量 export KUBECONFIG=/etc/kubernetes/admin.conf 已经配置、执行
kubectl apply -f calico.yaml
# 执行成功后运行
kubectl get pod --all-namespaces=true
# 可以看到 calico 已经作为 kube-system 命名控件的 pod 运行
2.4 calicoctl安装
curl -O -L https://github.com/projectcalico/calicoctl/releases/download/v3.2.3/calicoctl
chmod +x calicoctl
配置
$ export CALICO_DATASTORE_TYPE=kubernetes
$ export CALICO_KUBECONFIG=~/.kube/config
$ calicoctl get workloadendpoints
相关操作
[root@host229 gaogao]# ./calicoctl node status
Calico process is running.
IPv4 BGP status
+--------------+-------------------+-------+----------+---------+
| PEER ADDRESS | PEER TYPE | STATE | SINCE | INFO |
+--------------+-------------------+-------+----------+---------+
| 172.16.1.1 | node-to-node mesh | start | 01:12:01 | Connect |
| 172.16.3.1 | node-to-node mesh | start | 01:12:01 | Connect |
| 172.16.2.1 | node-to-node mesh | start | 01:12:01 | Connect |
+--------------+-------------------+-------+----------+---------+
[root@host229 gaogao]# ./calicoctl get ipPool -o wide
NAME CIDR NAT IPIPMODE DISABLED
default-ipv4-ippool 192.168.0.0/16 true Always false
[root@host229 gaogao]# ./calicoctl get workloadEndpoint
WORKLOAD NODE NETWORKS INTERFACE
myip-5fc5cf6476-m65c5 host228 192.168.1.5/32 calia0a174e3b5b
myip-5fc5cf6476-n47g8 host229 192.168.2.2/32 cali99ed6eefcc9
myip-5fc5cf6476-npxvp host227 192.168.0.2/32 cali433253597ce
myip-5fc5cf6476-th7t2 host214 192.168.3.4/32 calid09129ac453
2.5 kubernetes上calico的使用
//由于我的环境是kube-router需要将以前的数据清理下,如果遇到问题需要清理也可以按照如下步骤
2.5.1 环境的清理
删除网卡
ip tunnel show
modprobe -r ipip
删除node已经分配的podCIDR。
此处为了方便,在/etc/profile操作做了两个 alias。
export ETCDCTL_API=3
alias etcdctl='etcdctl --endpoints=https://10.20.16.227:2379,https://10.20.16.228:2379,https://10.20.16.229:2379 --cacert=/data/cloud/ssl/ca.pem --cert=/data/cloud/ssl/etcd.pem --key=/data/cloud/ssl/etcd-key.pem'
alias kubectl='kubectl --kubeconfig=/data/cloud/ssl/admin.conf'
2.5.2 配置的调整
kube-manager
[Service]
ExecStart=/data/cloud/kubernetes/bin/kube-controller-manager \\ --address=127.0.0.1 \\ --allocate-node-cidrs=true \\ --cluster-cidr=192.168.0.0/16 \\ //换个新的网段以便区别 --cluster-name=kubernetes \\ --cluster-signing-cert-file=/data/cloud/ssl/ca.pem \\ --cluster-signing-key-file=/data/cloud/ssl/ca-key.pem \\ --service-account-private-key-file=/data/cloud/ssl/sa.key \\ --root-ca-file=/data/cloud/ssl/ca.pem \\ --leader-elect=true \\ --use-service-account-credentials=true \\ --node-monitor-grace-period=40s \\ --node-monitor-period=5s \\ --pod-eviction-timeout=2m0s \\ --controllers=*,bootstrapsigner,tokencleaner \\ --log-dir=/data/cloud/work/kubernetes/manager \\ --logtostderr=false \\ --kubeconfig=/data/cloud/ssl/controller-manager.conf \\ --v=2
kubelet
[Service]
ExecStart=/data/cloud/kubernetes/bin/kubelet \\ --fail-swap-on=false \\ --hostname-override=host229 \\ --pod-infra-container-image=k8s.gcr.io/pause:3.1 \\ --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin \\ //网络插件位置指定 --kubeconfig=/data/cloud/ssl/kubelet.conf \\ --bootstrap-kubeconfig=/data/cloud/ssl/bootstrap.conf \\ --pod-manifest-path=/data/cloud/kubernetes/manifests \\ --allow-privileged=true \\ --cluster-dns=10.254.0.2 \\ --cluster-domain=cluster.kube. \\ --authorization-mode=Webhook \\ --client-ca-file=/data/cloud/ssl/ca.pem \\ --rotate-certificates=true \\ --cert-dir=/data/cloud/kubernetes/ssl \\ --cgroup-driver=cgroupfs \\ --serialize-image-pulls=false \\ --root-dir=/data/cloud/work/kubernetes/kubelet \\ --log-dir=/data/cloud/work/kubernetes/kubelet \\ --logtostderr=false \\ --v=2
[root@host229 ~]# etcdctl get / --prefix --keys-only |grep minions/registry/minions/host214/registry/minions/host227/registry/minions/host228/registry/minions/host229[root@host229 ~]# etcdctl del /registry/minions/host214[root@host229 ~]# etcdctl del /registry/minions/host227[root@host229 ~]# etcdctl del /registry/minions/host228[root@host229 ~]# etcdctl del /registry/minions/host229
2.6 calico容器化安装
文件模板地址
https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/
Typha:在节点数比较多的情况下,Felix可通过Typha直接和Etcd进行数据交互,不通过kube-apiserver,既降低其压力。生产环境中实例数建议在3~20之间,随着节点数的增加,按照每个Typha对应200节点计算。如果需要启用需要调整Typha的replicas。
//指定calico权限rbac-kdd.yaml
[root@host229 ~]# kubectl aaply -f rbac.yaml //calico的安装
[root@host229 ~]# kubectl apply -f calico.yaml //进程查看
[root@host229 ~]# kubectl -n kube-system get pod
NAME READY STATUS RESTARTS AGE
calico-node-873k8 2/2 Running 0 8s
calico-node-d7hfd 2/2 Running 0 10s
calico-node-lq4f9 2/2 Running 0 10s
calico-node-qsb66 2/2 Running 0 10s //查看各个主机的路由表
[root@host229 calico]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.20.16.1 0.0.0.0 UG 100 0 0 eno1
10.0.0.0 0.0.0.0 255.0.0.0 U 100 0 0 eno1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tunl0
192.168.1.0 10.20.16.228 255.255.255.0 UG 0 0 0 eno1
192.168.2.0 10.20.16.227 255.255.255.0 UG 0 0 0 eno1
192.168.3.0 10.20.16.214 255.255.255.0 UG 0 0 0 eno1 [root@host229 calico]# kubectl run tomcat --image=tomcat --replicas=3
[root@host229 yaml]# kubectl get pod -o wide |grep tomcat
tomcat-64f79959d8-mngnz 1/1 Running 0 15s 192.168.2.3 host227
tomcat-64f79959d8-tsnv2 1/1 Running 0 10s 192.168.0.2 host229
tomcat-64f79959d8-zdf2z 1/1 Running 0 10s 192.168.1.2 host228 //再次查看路由表
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.20.16.1 0.0.0.0 UG 100 0 0 eno1
10.0.0.0 0.0.0.0 255.0.0.0 U 100 0 0 eno1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tunl0
192.168.1.0 10.20.16.228 255.255.255.0 UG 0 0 0 eno1
192.168.2.0 10.20.16.227 255.255.255.0 UG 0 0 0 eno1
192.168.3.0 10.20.16.214 255.255.255.0 UG 0 0 0 eno1
192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 cali12b26626b64 //联通性测试
//容器到容器
[root@host229 yaml]# kubectl exec -it tomcat-64f79959d8-mngnz -- ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=62 time=0.404 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=62 time=0.257 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=62 time=0.287 ms //主机到容器
[root@host229 yaml]# ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.097 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=64 time=0.054 ms
参考链接
k8s网络之Calico网络
Calico网络的原理、组网方式与使用
网络组件 Calico 的落地实践_Spring_java_gg的博客-CSDN博客
Calico网络模型
Kubernetes容器网络(二):Calico网络原理_邋遢的流浪剑客的博客-CSDN博客
Calico 学习指南_51CTO博客_hcia学习指南
k8s之Calico
一图看懂Calico架构原理 - 简书
Qunar 容器平台网络之道:Calico - 知乎
Calico IPAM_51CTO博客_calico ipam blocksize
Calico网络进阶_51CTO博客_calico 网络策略
K8s网络Calico 从入门到放弃系列_羊皮裘老头的技术博客_51CTO博客
Kubernetes上安装Calico_51CTO博客_kubernetes安装
114.kubernetes之calico - 简书
《重识云原生系列》专题索引:
- 【云原生布道系列】第一篇:不谋全局不足以谋一域
- 【云原生布道系列】第二篇:云原生时代领域解决方案专家的价值
- 【云原生布道系列】第三篇:“软”饭“硬”吃的计算
- 第二章计算第1节——计算虚拟化技术总述
- 第二章计算第2节——主流虚拟化技术之VMare ESXi
- 第二章计算第3节——主流虚拟化技术之Xen
- 第二章计算第4节——主流虚拟化技术之KVM
- 第二章计算第5节——商用云主机方案
- 第二章计算第6节——裸金属方案
- 第三章云存储第1节——分布式云存储总述
- 第三章云存储第2节——SPDK方案综述
- 第三章云存储第3节——Ceph统一存储方案
- 第三章云存储第4节——OpenStack Swift 对象存储方案
- 第三章云存储第5节——商用分布式云存储方案
- 第四章云网络第一节——云网络技术发展简述
- 第四章云网络4.2节——相关基础知识准备
- 第四章云网络4.3节——重要网络协议
- 第四章云网络4.3.1节——路由技术简述
- 第四章云网络4.3.2节——VLAN技术
- 第四章云网络4.3.3节——RIP协议
- 第四章云网络4.3.4.1-2节——OSPF协议综述
- 第四章云网络4.3.4.3节——OSPF协议工作原理
- 第四章云网络4.3.4.4节——[转载]OSPF域内路由
- 第四章云网络4.3.4.5节——[转载]OSPF外部路由
- 第四章云网络4.3.4.6节——[转载]OSPF特殊区域之Stub和Totally Stub区域详解及配置
- 第四章云网络4.3.4.7节——OSPF特殊区域之NSSA和Totally NSSA详解及配置
- 第四章云网络4.3.5节——EIGRP协议
- 第四章云网络4.3.6节——IS-IS协议
- 第四章云网络4.3.7节——BGP协议
- 第四章云网络4.3.7.2节——BGP协议概述
- 第四章云网络4.3.7.3节——BGP协议实现原理
- 第四章云网络4.3.7.4节——高级特性
- 第四章云网络4.3.7.5节——实操
- 第四章云网络4.3.7.6节——MP-BGP协议
- 第四章云网络4.3.8节——策略路由
- 第四章云网络4.3.9节——Graceful Restart(平滑重启)技术
- 第四章云网络4.3.10节——VXLAN技术
- 第四章云网络4.3.10.2节——VXLAN Overlay网络方案设计
- 第四章云网络4.3.10.3节——VXLAN隧道机制
- 第四章云网络4.3.10.4节——VXLAN报文转发过程
- 第四章云网络4.3.10.5节——VXlan组网架构
- 第四章云网络4.3.10.6节——VXLAN应用部署方案
- 第四章云网络4.4节——Spine-Leaf网络架构
- 第四章云网络4.5节——大二层网络
- 第四章云网络4.6节——Underlay 和 Overlay概念
- 第四章云网络4.7.1节——网络虚拟化与卸载加速技术的演进简述
- 第四章云网络4.7.2节——virtio网络半虚拟化简介
- 第四章云网络4.7.3节——Vhost-net方案
- 第四章云网络4.7.4节vhost-user方案——virtio的DPDK卸载方案
- 第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现
- 第四章云网络4.7.6节——virtio-blk存储虚拟化方案
- 第四章云网络4.7.8节——SR-IOV方案
- 第四章云网络4.7.9节——NFV
- 第四章云网络4.8.1节——SDN总述
- 第四章云网络4.8.2.1节——OpenFlow概述
- 第四章云网络4.8.2.2节——OpenFlow协议详解
- 第四章云网络4.8.2.3节——OpenFlow运行机制
- 第四章云网络4.8.3.1节——Open vSwitch简介
- 第四章云网络4.8.3.2节——Open vSwitch工作原理详解
- 第四章云网络4.8.4节——OpenStack与SDN的集成
- 第四章云网络4.8.5节——OpenDayLight
- 第四章云网络4.8.6节——Dragonflow
- 第四章云网络4.9.1节——网络卸载加速技术综述
- 第四章云网络4.9.2节——传统网络卸载技术
- 第四章云网络4.9.3.1节——DPDK技术综述
- 第四章云网络4.9.3.2节——DPDK原理详解
- 第四章云网络4.9.4.1节——智能网卡SmartNIC方案综述
- 第四章云网络4.9.4.2节——智能网卡实现
- 第六章容器6.1.1节——容器综述
- 第六章容器6.1.2节——容器安装部署
- 第六章容器6.1.3节——Docker常用命令
- 第六章容器6.1.4节——Docker核心技术LXC
- 第六章容器6.1.5节——Docker核心技术Namespace
- 第六章容器6.1.6节—— Docker核心技术Chroot
- 第六章容器6.1.7.1节——Docker核心技术cgroups综述
- 第六章容器6.1.7.2节——cgroups原理剖析
- 第六章容器6.1.7.3节——cgroups数据结构剖析
- 第六章容器6.1.7.4节——cgroups使用
- 第六章容器6.1.8节——Docker核心技术UnionFS
- 第六章容器6.1.9节——Docker镜像技术剖析
- 第六章容器6.1.10节——DockerFile解析
- 第六章容器6.1.11节——docker-compose容器编排
- 第六章容器6.1.12节——Docker网络模型设计
- 第六章容器6.2.1节——Kubernetes概述
- 第六章容器6.2.2节——K8S架构剖析
- 第六章容器6.3.1节——K8S核心组件总述
- 第六章容器6.3.2节——API Server组件
- 第六章容器6.3.3节——Kube-Scheduler使用篇
- 第六章容器6.3.4节——etcd组件
- 第六章容器6.3.5节——Controller Manager概述
- 第六章容器6.3.6节——kubelet组件
- 第六章容器6.3.7节——命令行工具kubectl
- 第六章容器6.3.8节——kube-proxy
- 第六章容器6.4.1节——K8S资源对象总览
- 第六章容器6.4.2.1节——pod详解
- 第六章容器6.4.2.2节——Pod使用(上)
- 第六章容器6.4.2.3节——Pod使用(下)
- 第六章容器6.4.3节——ReplicationController
- 第六章容器6.4.4节——ReplicaSet组件
- 第六章容器基础6.4.5.1节——Deployment概述
- 第六章容器基础6.4.5.2节——Deployment配置详细说明
- 第六章容器基础6.4.5.3节——Deployment实现原理解析
- 第六章容器基础6.4.6节——Daemonset
- 第六章容器基础6.4.7节——Job
- 第六章容器基础6.4.8节——CronJob
- 第六章容器基础6.4.9.1节——Service综述
- 第六章容器基础6.4.9.2节——使用 Service 连接到应用
- 第六章容器基础6.4.9.3节——Service拓扑感知
- 第六章容器基础6.4.10.1节——StatefulSet概述
- 第六章容器基础6.4.10.2节——StatefulSet常规操作实操
- 第六章容器基础6.4.10.3节——StatefulSet实操案例-部署WordPress 和 MySQL
- 第六章容器基础6.4.10.4节——StatefulSet实操案例-使用 StatefulSet 部署Cassandra
- 第六章容器基础6.4.10.5节——Statefulset原理剖析
- 第六章容器基础6.4.11.1节——Ingress综述
《云原生进阶之容器》专题索引:
- 第一章Docker核心技术1.1节——Docker综述
- 第一章Docker核心技术1.2节——Linux容器LXC
- 第一章Docker核心技术1.3节——命名空间Namespace
- 第一章Docker核心技术1.4节——chroot技术
- 第一章Docker核心技术1.5.1节——cgroup综述
- 第一章Docker核心技术1.5.2节——cgroups原理剖析
- 第一章Docker核心技术1.5.3节——cgroups数据结构剖析
- 第一章Docker核心技术1.5.4节——cgroups使用
- 第一章Docker核心技术1.6节——UnionFS
- 第一章Docker核心技术1.7节——Docker镜像技术剖析
- 第一章Docker核心技术1.8节——DockerFile解析
- 第一章Docker核心技术1.9节——docker-compose容器编排
- 第一章Docker核心技术1.10节——Docker网络模型设计
- 第二章——Kubernetes概述
- 第二章Controller Manager原理剖析--2.1节Controller Manager综述
- 第二章Controller Manager原理2.2节--client-go剖析
- 第二章Controller Manager原理2.3节--Reflector分析
- 第二章Controller Manager原理2.4节--Informer机制剖析
- 第二章Controller Manager原理2.5节--DeltaFIFO剖析
- 第二章Controller Manager原理2.6节--Informer controller
- 第二章Controller Manager原理2.7节--Indexer剖析
- 第二章Controller Manager原理2.8节--Resync机制
- 第三章List-Watch机制3.1节-- List-Watch机制剖析
- 第四章Operator原理4.1节--定制资源(Custom Resource)
- 第四章Operator原理4.2节--CRD
- 第四章Operator原理4.3节--Operator模式
- 第四章Operator原理4.4节--Operator深入实践
- 第五章容器运行时5.1节--容器运行时总述
- 第五章容器运行时5.2节--容器运行时接口规范CRI
- 第五章容器运行时5.3.1--runC简介与使用
- 第五章容器运行时5.3.2--runC原理解读
- 第五章容器运行时5.4--容器运行时之Firecracker
- 第五章容器运行时5.5--容器运行时之Kata Container
- 第五章容器运行时5.6--容器运行时之gVisor
- 第六章容器网络6.1--Docker网络模型
- 第六章容器网络6.2--K8S网络模型
- 第六章容器网络6.3--CNI及各CNI网络解决方案简述