20

使用Rancher Server部署本地多节点K8S集群

 4 years ago
source link: http://dockone.io/article/9628
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

当我第一次开始我的Kubernetes之旅时,我一直在寻找一种设置本地部署环境的方式。很多人常常会使用minikube或microk8s,这两者非常适合新手在单节点集群环境下进行操作。但当我已经了解了基础知识之后,这两者显然不太够用,我需要进一步寻找能够运行本地多节点集群、与生产环境更相似的平台。为此,我查阅了许多参考资料,最后我找到了Rancher Server。接下来,我要介绍我是如何设置我的本地K8S多节点集群的。

yqAfYzn.png!web

准备master节点和worker节点的虚拟机

2eAVzmM.png!web

上图显示了集群的架构,一个master节点和3个worker节点。要尝试诸如使用ingress controller进行负载均衡、会话保持、host亲和性等跨节点功能,这是最低的配置。

Rancher Server的安装并不复杂,它被打包为一个docker镜像,并且可以作为一个容器运行。一个节点的基本配置是运行在Linux虚拟机上的docker CE 守护进程。在本例中,我选择使用Ubuntu 18.04 LTS(具体的节点要求请参考Rancher的官方文档: https://rancher.com/docs/ranch ... ents/ )。当我完成第一个VM设置时,我直接将其复制到另外三个中。如果你和我的操作一样,可以参考下方两个tips:

最终,4个节点都在我的电脑(i5,24G RAM)上启动,并分配以下资源。

  • Master节点(2 core、4G RAM、Ubuntu 18.04 + Docker CE 18.09) x 1
  • Worker节点(2 core, 3G RAM, Ubuntu 18.04 + Docker CE 18.09) x 3

在master节点上启动Rancher server

sudo docker run --restart=unless-stopped \

-p 81:80 -p 444:443 rancher/rancher

以上命令可以启动Rancher server容器,并且将其运行在master节点上。默认状态下,nginx ingress controller会嵌入到worker节点中,并且绑定端口80和443。因此我将Rancger server发布到端口81和444或其他端口,以避免端口冲突。

完成Rancher server初始设置

7JbaQfb.png!web

首先,使用master节点IP地址和端口444启动Rancher server控制台,它会要求设置管理员密码。

vEVBRvE.png!web

接着,确认worker节点到达Rancher server的URL。这里为了方便我直接使用master节点IP地址作为URL。完成了初始设置后,Rancher server就可以添加新集群了。

创建一个新的K8S集群和master节点

mQJRZvZ.png!web

因为我想要在本地虚拟机上运行K8S集群而不是在云端,所以选择“自定义”的选项(即上方说明为“ From my own existing nodes”),然后新集群的云提供商选项选为“None”。

rIRJJ3R.png!web

在ubuntu虚拟机上复制并运行docker命令来启动master节点。一个master节点至少要有etcd和control,如果你打算创建一个单节点集群,需要选择所有3个角色并更改命令。

6VVnqma.png!web

运行docker命令之后,新节点将显示在Rancher Server控制台上,配置这一节点需要花费一些时间,一旦配置完成,状态将变为active。

创建worker节点

7v6byaM.png!web

对于worker节点,我们仅需要在节点选项选择“Worker”角色,然后在3个worker节点的Ubuntu虚拟机上复制并运行docker命令。

zeANVje.png!web

最后,在我的电脑上多节点集群已经准备就绪。

安装kubectl工具来管理新的K8S集群

新集群的Kubernetes版本时v1.14.6,你可以在上面的截图内看到。为了更好地将kubectl工具版本与集群匹配,在master节点上运行以下命令,以安装特定版本:

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.14.6/bin/linux/amd64/kubectl

chmod +x ./kubectl

sudo mv ./kubectl /usr/local/bin/kubectl

Kubectl工具需要一个kubeconfig文件与集群连接,新集群地kubeconfig文件可以在Rancher Server的控制台中找到。

ZBnqUnZ.png!web

复制以上kubeconfig文件,并保存为~/.kube/config文件。随后kubectl就能够获取集群信息。

JBZVZny.png!web

有关kubectl的安装和配置可以参考以下连接:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK