5分钟搭建一个k8s平台

记录在 ubuntu-20.04.2-live-server系统上通过rancher安装k8s的过程。

0. 更换阿里云软件源

为了保障下载速度,将ubuntu软件源替换为阿里云软件源。如果网络通畅,可跳过。

0.1. 备份

1
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 

0.2. 修改

1
sudo vim /etc/apt/sources.list

将source.list文件内容替换成下面的

1
2
3
4
5
6
7
8
9
10
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

0.3. 更新

1
sudo apt-get update

1. 安装Docker

通过命令行安装最新版本docker。

1
2
3
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker your-user

安装后将当前账户加入到docker组内,否则只有root权限可以执行docker命令。对root权限的限制,也是docker相比于podman的劣势之一。
完成添加之后需要退出账号重新登陆,让设置生效。

2. 安装rancher

通过命令行完成rancher安装

1
docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 rancher/rancher:v2.4.5

2.0. 登陆

安装完成后通过浏览器访问 https://ip:8443 首次访问会要求设置管理员(用户名:admin)密码

k_0

2.1. 添加集群

单击添加集群按钮后,选择自定义

k_1

只需指定集群名称,剩下全部选择默认配置
k_2

需要指定集群角色。生产环境需要根据机器及集群状况,保障系统性能及稳定性(最小可用节点数量 n/2+1 通过raft算法保障)。测试环境可以给一个集群授予多种角色。拷贝生成的命令在已安装docker的机器上运行,向rancher完成注册操作。这里仍然在这台ubuntu机器上完成注册操作。

k_3

等待agent完成注册操作。期间会通过轮询的方式进行进度检测,可以在rancher页面中看到注册进度。

-w1282

在安装完成后,可以在页面中看到集群信息

-w1326

理论上我们在一台机器中部署了4类节点

  1. rancher: 可视化管理集群
  2. Control Plane: k8s主节点,管理、监控工作节点
  3. etcd: 配置数据存储
  4. worker: k8s工作节点,用于运行容器

实际上运行的容器会更多,用于保障集群功能,比如ingress-controller

-w1427

2.2 安装kubectl

需要根据系统选择不同的安装方式,示例仍然安装在同一台ubuntu系统内,如果跨机器,需要确认ip之间的访问通道

1
snap install kubectl --classic

将Kubeconfig File文件(Yaml格式)复制到机器的~/.kube/config目录下(如果没有则新建)完成授权操作
k_5

通过kubectl访问集群

1
kubectl get pods -n ingress-nginx

看到下列信息表示配置已完成。

k_4

至此,已完成k8s平台搭建以及命令行管理的配置。