记录在
ubuntu-20.04.2-live-server系统上通过rancher安装k8s的过程。
为了保障下载速度,将ubuntu软件源替换为阿里云软件源。如果网络通畅,可跳过。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list
将source.list文件内容替换成下面的
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
sudo apt-get update
通过命令行安装最新版本docker。
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的劣势之一。
完成添加之后需要退出账号重新登陆,让设置生效。
通过命令行完成rancher安装
docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 rancher/rancher:v2.4.5
安装完成后通过浏览器访问 https://ip:8443 首次访问会要求设置管理员(用户名:admin)密码
单击添加集群按钮后,选择自定义
只需指定集群名称,剩下全部选择默认配置
需要指定集群角色。生产环境需要根据机器及集群状况,保障系统性能及稳定性(最小可用节点数量 n/2+1 通过raft算法保障)。测试环境可以给一个集群授予多种角色。拷贝生成的命令在已安装docker的机器上运行,向rancher完成注册操作。这里仍然在这台ubuntu机器上完成注册操作。
等待agent完成注册操作。期间会通过轮询的方式进行进度检测,可以在rancher页面中看到注册进度。
在安装完成后,可以在页面中看到集群信息
理论上我们在一台机器中部署了4类节点
实际上运行的容器会更多,用于保障集群功能,比如ingress-controller
需要根据系统选择不同的安装方式,示例仍然安装在同一台ubuntu系统内,如果跨机器,需要确认ip之间的访问通道
snap install kubectl --classic
将Kubeconfig File文件(Yaml格式)复制到机器的~/.kube/config目录下(如果没有则新建)完成授权操作
通过kubectl访问集群
kubectl get pods -n ingress-Nginx
看到下列信息表示配置已完成。
至此,已完成k8s平台搭建以及命令行管理的配置。