01 集群环境准备
1.1 集群架构
Kubernetes集群架构大体分为两种:单 Master 节点集群和多 Master 节点集群。
- 单 Master 节点集群:由一个 Master 节点和一个或多个 Node 节点组成,有单机风险,适用于测试环境。
- 多 Master 节点集群:由多个 Master 节点和一个或多个 Node 节点组成,实现高可用,适用于生产环境。
本次教程使用多 Master 节点集群架构。
1.2 部署方式
集群部署方式有多种,目前主流的方式有 minikube、kubeadm、二进制软件包。
minikube:用于快速搭建单节点的 Kubernetes 集群的工具。
kubeadm:用于快速搭建 Kubernetes 集群的工具。
二进制软件包:从官网下载各个组件的二进制软件包依次去部署,此方式可以深入理解 Kubernetes 各个组件。
1.3 服务器规划
本地主机资源有限,etcd 和 Master、Node 全部部署在一起。
角色 | 主机名 | IP地址 | 操作系统 | 内核版本 |
---|---|---|---|---|
master、node | k8s-master-01 | 192.168.3.201 | centos 7.9 | 3.10 |
master、node | k8s-master-02 | 192.168.3.202 | centos 7.9 | 3.10 |
master、node | k8s-master-03 | 192.168.3.203 | centos 7.9 | 3.10 |
本地主机(非集群服务器) | 192.168.3.100 | centos 7.9 | 3.10 |
本地主机的用途如下:
1、下载各个组件的二进制软件包,分发到集群服务器上;
2、生成 SSL 证书,分发到集群服务器上;
3、生成服务配置文件,分发到集群服务器上;
4、生成服务启动管理文件,分发到集群服务器上;
5、生成 kubeconfig 凭证文件,分发到集群服务器上。
1.4 软件规划
软件名 | 版本 |
---|---|
kube-apiserver | v1.23.6 |
kube-controller-manager | v1.23.6 |
kube-scheduler | v1.23.6 |
kube-proxy | v1.23.6 |
kubelet | v1.23.6 |
kubectl | v1.23.6 |
containerd | v1.6.4 |
runc | v1.1.1 |
calico | v3.21.6 |
coredns | v1.8.6 |
cfssl | v1.2.0 |
etcd | v3.5.2 |
cfssl 工具包相关的命令存放在本地主机,主要是用来生成 SSL 证书。
calico 和 coredns 不需要下载二进制软件包,通过
yaml
文件来部署。
1.5 目录规划
目录路径 | 备注 |
---|---|
/etc/kubernetes/tls | SSL 证书的目录 |
/etc/kubernetes/conf | 各个组件服务配置文件的目录 |
/etc/kubernetes/kubeconfig | 各个组件 kubeconfig 凭证文件的目录 |
/var/lib/kube-proxy | kube-proxy 组件工作的目录 |
/var/lib/etcd | etcd 数据存储的目录 |
/usr/local/bin | 二进制命令的目录 |
/~/.kube | kubectl kubeconfig 凭证的目录 |
/etc/containerd | containerd 容器运行时的配置文件目录 |
1.6 网络规划
IP地址/网段 | 备注 |
---|---|
192.168.3.0/24 | 宿主机网络 |
172.16.0.0/12 | Pod 资源网段 |
10.0.0.0/12 | Service 资源网段 |
10.0.0.1 | kubernetes Service 资源的IP地址(生成 kube-apiserver 证书时 hosts 字段要加入该地址) |
10.0.0.2 | CoreDNS Service 资源的IP地址(要在 coredns.yaml 中修改) |