前言

前面用到过的 minikube 只是一个单节点的 k8s 集群,这对于学习而言是不够的。我们需要有一个多节点集群,才能用到各种调度/监控功能。而且单节点只能是一个加引号的“集群”。

kubernetes 安装方式面面观

kubernetes 是一个组件化的系统,安装过程有很大的灵活性,很多组件都有多种实现,这些实现各有特点,让初学者眼花缭乱。

而且要把这些组件一个个安装配置好并且能协同工作,也是很不容易的。

因此社区出现了各种各样的安装方案。安装方案如此之多,以致于我不晓得该用哪个好。。于是特地调查了一番。将几个流行的安装方案罗列如下:

  1. minikube/microk8s: 单节点集群,只适合学习/开发使用。
  2. kubeadm: k8s 官方推出的一个 k8s 快速安装工具,但是仍然有一定的工作量。
  3. kubespray: k8s 社区项目,使用 ansible 部署可用于生产环境的 k8s。(k8s-sigs,即 k8s special interest group)
  4. rancher: k8s 之上的企业级管理系统,安装相当方便,中文文档相当详细,而且还提供了更高层次的管理功能。
  5. kubesphere: 和 rancher 类似,也是一个建立在 k8s 之上的云平台管理系统。界面很漂亮。

此外社区还有 n 种方案可供选择,五花八门。而且关注度(stars)都不低。贪多嚼不烂,我就不一一介绍了。

一番搜索,我最终确定了用 rancher 来部署我的第一个 kubernetes 多节点集群,怎么简单怎么来哈哈~

一、准备虚拟机

要部署多节点嘛,自然得先有多台主机。我自己的机器内存够用,就直接开了一台 Ubuntu 虚拟机,然后克隆了四份。(这个克隆操作导致我后面掉进了坑。。)

主机的操作系统可以用 rancher 官方的精简版 RancherOS,也可以用自己熟悉的 Ubuntu Debian 等。这里主要强调一个坑:

  1. 各主机的 hostname 不能相同!!!否则后续的节点永远部署不上!(血泪教训。。)

具体的主机配置过程官方文档写得非常详细,请移步 Rancher-基础环境配置

二、部署 rancher

1. 部署 rancher server

首先在用做 rancher server 的虚拟机上跑官方给出的 docker 命令启动 rancher server:

sudo docker run -d -v <主机路径>:/var/lib/rancher/ --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:stable

不过说实话我觉得用 docker-compose 的方式会更好一点。

部署好后访问 https://<server-ip> 配置好账号/密码/url,这没啥好说的。

2. 部署 kubernetes 集群

现在进入了 rancher 首页,点击右上角的「添加集群」,选择「自定义」来添加本地集群。

然后输入「集群名称」,「云提供商」选择「无」。

然后就是最后一步——在各个节点上部署 rancher agent——了。

只要你勾选了 worker 选项(其实就是添加了 --worker 参数),rancher agent 在运行时,就会自动在节点上部署 k8s 节点所需要的所有容器。

在多个节点上运行带 --worker 的 rancher agnet 命令,就能得到多个 k8s worker。而 etcd 和 controller 开发环境各部署一个就好了。

然后就可以愉快地玩耍了hhh~

02-10 06:20