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集群搭建最新版本讲解。
posted @ 2025-04-07 20:22  丁志岩  阅读(241)  评论(0)    收藏  举报