01.集群架构
0101.高可用集群设计
设计集群架构时我们需要考虑如下几个问题:
- 整个集群的主要构成元素为服务器组。一组服务器具有相同的硬件配置,服务相同的功能,在软件配置上也基本相同。这样为服务器的自动化管理打下了很好的基础。
- 由3台服务器组成的etcd集群,在其中任何一台服务器离线时,均可以正常工作。为整个Kubernetes集群的数据持久化保存提供了稳定可靠的基础
- 3台同时运行着Kubernetes核心组件
kube-apiserver
,kube-controller-manager
,kube-scheduler
的服务器,为整个集群的控制平面提供了高可用性。 - 多个运行节点服务器组,有着不同的CPU,内存,磁盘配置。让我们可以灵活的根据业务对运行环境的要求来选择不同的服务器组。
集群的架构如下如分为3个服务器群组,其中master node上部署apiserver
scheduler
controller management
etcd
[图片上传失败...(image-c950e2-1605670434901)]
0102.核心组件的关系
[图片上传失败...(image-b5ba62-1605670434902)]
通过图解我们可以得出k8s中最重要的组件是etcd和kube-apiserver, 其中etcd作为k8s存储信息库, API Server提供所有组件的API访问接口
02.部署环境介绍
kubernetes Master Node
kube-apiserver
kube-scheduler
kube-controller-manager
目前这三个组件需要部署在同一台机器上。
-
kube-scheduler
kube-controller-manager
kube-apiserver
三者的功能紧密相关; - 同时只能有一个
kube-scheduler
、kube-controller-manager
进程处于工作状态,如果运行多个,则需要通过选举产生一个 leader;
本文档记录部署一个三个节点的高可用 kubernetes master 集群步骤。
kubernetes Worker Node
kubelet
kube-proxy
需要部署在同一台机器上
集群主机信息以及部署软件规划
IP | 备注 | |
---|---|---|
10.40.61.116 | etcd,kube-apiserver,kube-controller-manager,kubelet,kube-proxy,kube-scheduler | |
10.40.58.153 | etcd,kube-apiserver,kube-controller-manager,kubelet,kube-proxy,kube-scheduler | |
10.40.58.154 | etcd,kube-apiserver,kube-controller-manager,kubelet,kube-proxy,kube-scheduler |
03.主要组件及部署信息
Kubernetes 部署的版本信息:
- Kubernetes: v1.18.0
- Etcd: v3.4.6
- Docker: v19.03.8-ce
- Flannel: v0.12.0
Kubernetes 部署的信息:
- Cluster IP CIDR: 10.243.0.0/16 #集群中pod分配网段
- Service Cluster IP CIDR: 10.244.0.0/16 #集群中service分配网断
- Service DNS IP: 10.244.0.10
- DNS: cluster.local
- Kubernetes API VIP: apiserver-p001.svc.gxd88.cn
-
Etcd Cluster IP:
https://10.40.61.116:2380,https://10.40.58.153:2380,https://10.40.58.154:2380
网友评论