铁岭免费移动网站建设,免费域名freenom,大连网站开发,线上如何做推广常见的K8S安装部署方式
Minikube
Minikube是一个工具#xff0c;可以在本地快速运行一个单节点微型K8S#xff0c;仅用于学习、预览K8S的一些特性使用。 部署地址#xff1a;Install Tools | Kubernetes
Kubeadm
Kubeadm也是一个工具#xff0c;提供kubeadm init和kube…常见的K8S安装部署方式
Minikube
Minikube是一个工具可以在本地快速运行一个单节点微型K8S仅用于学习、预览K8S的一些特性使用。 部署地址Install Tools | Kubernetes
Kubeadm
Kubeadm也是一个工具提供kubeadm init和kubeadm join用于快速部署K8S集群相对简单。 Kubeadm | Kubernetes
二进制安装部署
生产首选从官方下载发行版的二进制包手动部署每个组件和自签TLS证书组成K8S集群新手推荐。但是部署过程要很久长则一两天。 Releases · kubernetes/kubernetes · GitHub K8S降低部署门槛但屏蔽了很多细节遇到问题很难排查。如果想更容易可控推荐使用二进制包部署K8S集群虽然手动部署麻烦点期间可以学习很多工作原理也利于后期维护。
k8s部署 二进制与高可用的区别
●二进制部署 部署难管理方便集群伸展性能好 更稳定集群规模到达一定的规模(几百个节点、上万个Pod)二进制稳定性是要高于kubeadm部署 遇到故障宿主机起来了进程也会起来
●kubeadm部署 部署简单管理难 是以一种容器管理容器的方式允许的组件及服务故障恢复时间比二进制慢 遇到故障启动宿主机再启动进程最后去启动容器集群才能恢复速度比二进制慢 单master集群架构图 K8S的三种接口
CRI 容器运行时接口 docker containerd podman cri-o CNI 容器网络接口 flannel calico cilium CSI 容器存储接口 nfs ceph gfs oss s3 minio
K8S的三种网络
节点网络 nodeIP 物理网卡的IP实现节点间的通信 Pod网络 podIP Pod与Pod之间可通过Pod的IP相互通信 Service网络 clusterIP 在K8S集群内可通过service资源的clusterIP实现对Pod集群的网络代理转发
VLAN 和 VXLAN 的区别 作用不同VLAN主要用作于在交换机上逻辑划分广播域还可以配合STP生成树协议阻塞路径接口避免产生环路和广播风暴 VXLAN可以将数据帧封装成UDP报文再通过网络层传输给其它网络从而实现虚拟大二层网络的通信 VXLAN支持更多的二层网络VXLAN最多可支持 2^24 个VLAN最多支持 2^12 个4096-2 VXLAN可以防止物理交换机MAC表耗尽VLAN需要在交换机的MAC表中记录MAC物理地址VXLAN采用隧道机制MAC物理地址不需记录在交换机 CNI网络组件
flannel和calico
flannel 与 calico 的区别
flannel
模式UDP VXLAN HOST-GW默认网段10.244.0.0/16 通常会采用VXLAN模式用的是叠加网络、IP隧道方式传输数据对性能有一定的影响。 Flannel产品成熟依赖性较少易于安装功能简单配置方便利于管理。但是不具备复杂的网络策略配置能力。
calico
模式IPIP BGP 混合模式CrossSubnet默认网段192.168.0.0/16 使用IPIP模式可以实现跨子网传输但是传输过程中需要额外的封包和解包过程对性能有一定的影响。 使用BGP模式会把每个node节点看作成路由器通过Felix、BIRD组件来维护和分发路由规则可实现直接通过BGP路由协议实现路由转发传输过程中不需要额外封包和解包过程因此性能较好但是只能在同一个网段里使用无法跨子网传输。 calico不使用cni0网桥而使通过路由规则把数据包直接发送到目标主机所以性能较高而且还具有更丰富的网络策略配置管理能力功能更全面但是维护起来较为复杂。 所以对于较小规模且网络要求简单的K8S集群可以采用flannel作为cni网络插件。对于K8S集群规模较大且要求更多的网络策略配置时可以考虑采用性能更好功能更全面的calico或cilium。 flannel的三种模式
模式说明UDP出现最早的模式但是性能最差基于flanneld应用程序实现数据包的封装/解封装VXLANflannel的默认模式也是推荐使用的模式性能比UDP模式更好基于内核实现数据帧的封装/解封装而且配置简单使用方便HOST-GW性能最好的模式但是配置负载且不能跨网段 flannel的UDP模式工作原理
1原始数据包从源主机的Pod容器发出到cni0网桥接口再由cni0转发到flannel0虚拟接口 2flanneld服务进程会监听flannel0接口接收到的数据flanneld进程会将原始数据包封装到UDP报文里 3flanneld进程会根据在etcd中维护的路由表查到目标Pod所在的nodeIP并在UDP报文外封装nodeIP头部、MAC头部再通过物理网卡发送到目标node节点 4UDP报文通过8285端口送达到目标node节点的flanneld进程进行解封装再根据本地路由规则通过flannel0接口发送到cni0网桥再由cni0发送到目标Pod容器
flannel的VXLAN模式工作原理
1原始数据帧从源主机的Pod容器发出到cni0网桥接口再由cni0转发到flannel.1虚拟接口 2flannel.1接口接收到数据帧后添加VXLAN头部并在内核将原始数据帧封装到UDP报文里 3根据在etcd中维护的路由表查到目标Pod所在的nodeIP并在UDP报文外封装nodeIP头部、MAC头部再通过物理网卡发送到目标node节点 4UDP报文通过8472端口送达到目标node节点的flannel.1接口并在内核进行解封装再根据本地路由规则发送到cni0网桥再由cni0发送到目标Pod容器
calico的IPIP模式工作原理
1原始数据包从源主机的Pod容器发出通过 veth pair 设备送达到tunl0接口再被内核的IPIP驱动封装到node节点网络的IP报文里 2根据Felix维护的路由规则通过物理网卡发送到目标node节点 3IP数据包到达目标node节点的tunl0接口后再通过内核的IPIP驱动解封装得到原始数据包再根据本地路由规则通过 veth pair 设备送达到目标Pod容器
calico的BGP模式工作原理本质就是通过路由规则来实现Pod之间的通信
每个Pod容器都有一个 veth pair 设备一端接入容器另一个接入宿主机网络空间并设置一条路由规则。 这些路由规则都是 Felix 维护配置的由 BIRD 组件基于 BGP 动态路由协议分发路由信息给其它节点。 1原始数据包从源主机的Pod容器发出通过 veth pair 设备送达到宿主机网络空间 2根据Felix维护的路由规则通过物理网卡发送到目标node节点 3目标node节点接收到数据包后会根据本地路由规则通过 veth pair 设备送达到目标Pod容器
CoreDNS
CoreDNS 是 K8S 默认的集群内部 DNS 功能实现为 K8S 集群内的 Pod 提供 DNS 解析服务 根据 service 的资源名称 解析出对应的 clusterIP 根据 statefulset 控制器创建的Pod资源名称 解析出对应的 podIP