kubernetes学习:2.kubernetes集群搭建(一)架构介绍

kubernetes集群搭建:架构介绍


作为一个容器的编排管理工具,k8s的性能出众而且社区力量强大,连docker官方也已经默认k8s为容器编排的首选工具。所以我们更有必要去学习和了解它。

k8s的整体架构主要分为两个部分: master(控制节点)node(计算节点)
从以下图中可以清晰的看到两者的关系和各自负责的功能:
这里写图片描述

1.左边是master节点的内容:
作为k8s的控制节点,主要包含如下几个组件:

(1)kube-apiserver 提供了统一的资源操作入口,对于k8s任何资源的增加改查操作都需要首先经过apiserver处理后才能在etcd服务上进行状态修改,主要分为http/https服务和一些功能性插件。它的职能总结为以下几点:
1 对外提供restful的管理接口,可以对pod、service、replication controller、计算节点进行增、删、改、查和监听操作。
2 配置k8s的资源对象,并且将资源对象的期望状态和当前实际存储在etcd集群的数据进行比对和分析
3 提供用户自定义的插件
4 系统日志收集
5 可配置api文档

(2)kube-scheduler 是一个资源调度器,它根据特定的调度算法把pod生成到指定的计算节点中。
(3)kube-controller-manager 也是运行在控制节点上一个很关键的管理组件,它管理很多类型的资源,例如:服务端点、副本、垃圾回收、计算节点、服务、路由、资源配额、命名空间等等。

2.右边两个分别是k8s的两个计算节点,计算节点主要包含以下几个组件:
(1)kubelet 负责维护和管理这个计算节点,它可以使得pod的运行状态和期望值一致。
(2)kube-proxy 为service提供了服务发现和负载均衡的功能
(3)docker 作为最底层的容器组件在计算节点也是必须存在的,它管理着容器的管理工作。

3.etcd 保存了整个集群的状态,它可以作为一个etcd集群独立在其他节点部署,etcd的个数必须是基数个(由分布式的算法决定)。

4.上述是搭建一个k8s所必须具备的组件,如果还需要对整个集群做功能上的扩展,可以参考如下组件:

(1)ingress 为服务提供外网入口
(2)kube-dns 为整个集群提供dns服务
(3)Dashboard 提供GUI
(4)Heapster 提供资源监控,也可以使用第三方监控(Prometheus)


系统环境

节点名称 ip 配置
wecloud-test-k8s-1(master) 192.168.99.183 4核,4G,50G磁盘
wecloud-test-k8s-2(node1) 192.168.99.189 4核,4G,50G磁盘
wecloud-test-k8s-3(node2) 192.168.99.185 4核,4G,50G磁盘
wecloud-test-k8s-4(node3) 192.168.99.196 4核,4G,50G磁盘

上述k8s的组建部署如下:

master: kube-schedulerkube-controller-managerkube-apiserveretcd
node: kubeletkube-proxydockeretcd

扫描二维码关注公众号,回复: 1701760 查看本文章

由于资源有限,所以把etcd集群部署在了这四个节点上

部署的整体步骤如下:

1.创建tls证书和秘钥;
2.创建kubeconfig文件;
3.创建etcd集群;
4.安装kubectl命令;
5.部署master节点;
6.安装flannel网络插件;
7.部署node节点;
8.其他组件安装;

后续我们来逐步介绍整体的搭建过程。

猜你喜欢

转载自blog.csdn.net/linux_player_c/article/details/79766750