搭建 k8s 集群网上很多教程,如果是手工部署或者实验环境可以直接使用 MiniKube 或者 Kind,来在本地启动简单的 Kubernetes 集群进行后面的学习即可。如果是使用 MiniKube 的话,阿里云还维护了一个国内版的 MiniKube,这对于在国内的同学来说会比较友好。
下面介绍使用 kubeadm 这个 Kubernetes 半官方管理工具的工作原理。kubeadm 的初衷就是让 Kubernetes 集群的部署不再让人头疼,而且发展比较成熟,关于各种问题网上都有对应的文章来解决,我们就来使用它部署一个完整的 Kubernetes 集群。
准备工作
首先准备三台虚拟机,或者是三台服务器,我是从企鹅☁️上买的三个轻量服务器,还挺便宜,但是后来看文档才知道,这所谓的轻量服务器原来就是k8s上的容器,所以我这属于是在 k8s 的容器里上搭建 k8s 集群了,搁这搁这呢。 为什么我肯定这个提供的就是一个有官方镜像 linux 的容器呢,具体是因为我买了后发现他们所谓的内网在不同账号下是不能互通的,也就是说不同账号的轻量服务器分配到了不同的 node 上,内网ip只能在同一个 node 上互通,不同的node之间想互通只能去配置路由,并且配置属于自己的二层网络。所以这听起来就知道是容器了。
在本次部署中,我准备的机器配置如下:
2 核 CPU、 4 GB 内存(三台);
80 GB 磁盘;
Centos 7.6;
内网互通;
外网访问权限不受限制。
这里的内网互通我是直接通过 iptables 来进行配置的,因为三台服务器公网ip可以互通,但是内网ip是不互通的,在 k8s 中默认是用内网ip来交互的,所以我只能用如下命令来进行配置。
sudo iptables -t nat -A OUTPUT -d <另外服务器的内网ip> -j DNAT --to-destination <另外服务器的外网ip>