02-k8s的集群架构、网段说明及部署方式说明
一、集群架构及组件说明

https://www.cnblogs.com/dezyan/gallery/image/512931.html
官方链接:
https://kubernetes.io/zh/docs/concepts/overview/components/
- Scheduler
kube-scheduler根据调度算法为新创建的Pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上。
- Controller Manager
Kube-controller-manager,处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。
- Cloud Controller Manager
用在云平台上的Kube-controller-manager组件。如果我们直接在物理机上部署的话,可以不使用该组件。
- API Server
kube-apiserver,集群的统一入口,各组件协调者,以RESTFUL API提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给etcd存储。
- Etcd
分布式键值存储系统,用于保存集群状态元数据信息,比如Pod,Service等对象信息。这个数据库是可以单独拿出来部署,只需要API server可以连接到该分布式数据库集群即可。
- kubelet
可以理解为Master在工作节点上的Agent,管理本机运行容器的生命周期,比如创建容器,Pod挂载数据卷,下载secret,获取容器的节点状态等工作。kubelet将每一个Pod转换成一组容器。
- kube-proxy
在工作节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。换句话说,就是用于负责Pod网络路由,用于对外提供访问的实现。可以找到你关心的项目所在的pod节点。
- POD
用户划分容器的最小单位,一个POD可以存在多个容器。
- docker/rocket(rkt,已停止支持)
容器引擎,用于运行容器
- CNI
Pod跨节点进行网络通信的网络插件。
二、Kubernetes的三种网段说明
-
K8S各组件通信的网络
使用时物理网卡,默认网段: 10.0.0.0/24。 -
跨节点容器实现通信的网段:
用户可以自定义,学习环境推荐: 10.100.0.0/16。但是在自定义网段时,要考虑将来能够分片的IP地址数量,"10.100.0.0/16"最多有65536个IP地址。
如果将来容器运行的数量超过该规模时,应该考虑将网段地址调大,比如"10.0.0.0/8"。
-
Service网段:
为容器提供负载均衡和服务发现功能。也是需要一个独立的网段,比如"10.200.0.0/16"最多有65536个IP地址。同理,如果规模较大时,应该考虑网段分配的问题
三、K8S的部署方式
CNCF技术蓝图:
https://landscape.cncf.io/
1.官方默认的两种部署方式
在生产环境中都可以使用,且都支持高可用环境。咱们学习过程中,建议选择kubeadm,因为对新手友好。
1.1 二进制部署K8S集群
手动部署K8S各个组件,配置文件,启动脚本及证书生成,kubeconfig文件。
优点:
可以高度定制,自定义配置信息,提高集群性能;
缺点:
配置繁琐,对新手不友好,尤其是证书管理。老手部署的话2小时起步,新手20+小时;排查问题困难,升级不便;
1.2 kubeadm部署K8S集群
是官方提供的一种快速部署K8S各组件的部署方式,如果镜像准备就绪的情况下,基于容器的方式部署。
需要提前安装kubelet,docker或者containerd,kubeadm组件。
优点:
配置简单,适合新手。新手在镜像准备好的情况下,仅需要2分钟部署完毕;
缺点:
自定义能力有限,维护难度相对来说较高;
2.第三方提供的部署方式
2.1 国内公司
- 青云科技: kubesphere
底层基于kubeadm快速部署K8S,提供了丰富的图形化管理界面。
- kuboard
底层基于kubeadm快速部署K8S,提供了丰富的图形化管理界面
- kubeasz
底层基于二进制方式部署,结合ansible的playbook实现的快速部署管理K8S集群
2.2 国外产品
- rancher
和国内的kubesphere很相似,也是K8S发行商,提供了丰富的图形化管理界面。
还基于K8S研发出来了K3S,号称轻量级的K8S
2.3 云厂商产品
- 阿里云的ACK的SAAS产品
- 腾讯云的TKE的SAAS产品
- 华为云的CCE的SAAS产品
- ucloud的UK8S的SAAS产品
- 亚马逊的Amazon EKS的SAAS产品
- 京东云,百度云的SAAS产品等。
2.4 其他部署方式
-
minikube:
适合在windows部署K8S,适合开发环境搭建的使用。不建议生产环境部署。 -
kind:
可以部署多套K8S环境,轻量级的命令行管理工具。 -
yum:
不推荐,版本支持较低,默认是1.5.2。
3.二进制部署和kubeadm部署的区别
相同点:
都可以部署K8S高可用集群。
不同点:
- 1.部署难度: kubeadm简单.
- 2.部署时间: kubeadm短时间。
- 3.证书管理: 二进制需要手动生成,而kubeadm自建一个10年的CA证书,各组件证书有效期为1年。
- 4.软件安装: kubeadm需要单独安装kubeadm,kubectl和kubelet组件,由kubelet组件启动K8S其他相关Pod,而二进制需要安装除了kubeadm的其他K8S组件。
4.Kubernetes的版本选择
首先,是K8S 1.23.17版本,该版本的第一个rc版本是2021年初,最后一个版本是23年年初结束。
其次,部署K8S 1.24,基于kubekey的方式部署K8S 1.28版本,而后部署kubesphere来管理多套K8S集群。
最后,我们以二进制部署K8S集群搭建最新版本讲解。
本文来自博客园,作者:丁志岩,转载请注明原文链接:https://www.cnblogs.com/dezyan/p/18813523

浙公网安备 33010602011771号