使用Rancher部署k8s集群

本文详细介绍了如何使用Rancher部署k8s集群,包括删除已有docker、启动rancher、添加集群、配置worker-node节点以及安装kubectl工具的步骤,提供了一种简便的容器管理平台。


非常详细的长文,建议先收藏关注:

概述

随着容器的普及和Kubernetes 的日渐成熟,企业内部运行多个Kubernetes 集群已变得颇为常见,然而部署kubernetes集群的方式也多样化,二进制部署、rancher、kubeadm、minikube等。然而本篇文章主要讲解的是如何使用rancher快速部署一个k8s集群。Rancher是一个开源的企业级容器管理平台。通过Rancher,我们不必再使用一系列的开源软件去从头搭建容器服务平台。Rancher提供了在生产环境中使用的管理Docker和Kubernetes的全栈化容器部署与管理平台。

主机整体规划

一、docker容器安装

每台机器都需要安装。

1、删除已存在的docker

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

2、配置repo源和epel源

先备份原来的源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
或
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
运行 yum makecache 生成缓存
yum makecache
安装epel源
yum -y install epel-release
yum的'--showduplicates'选项对于显示软件包的多个版本很有用。当您有非常特定的依赖项并尝试查找要安装的软件包的特定名称时,它将起着非常大的作用
# yum list docker --show-duplicates

3、安装依赖

yum -y install yum-utils device-mapper-persistent-data lvm2

4、添加软件源信息

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5、更新并安装Docker-CE

yum makecache fast
yum list docker-ce --show-duplicates
yum -y install docker-ce   #这种方式是安装最新的docker-ce

6、安装指定版本的docker

yum list docker-ce --show-duplicates
yum -y install docker-ce-19.03.15-3.el7

7、添加镜像加速

可参考文档:https://www.cnblogs.com/myitnews/p/11509546.html

mkdir -p /etc/docker/
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://i******.mirror.aliyuncs.com"] //这里请添加自己的阿里云镜像加速
}
EOF

8、启动docker

# 添加开启启动
systemctl enable docker
# 更新xfsprogs
yum -y update xfsprogs   
# 启动
systemctl start docker
docker info
# 测试docker是否已经能够正常使用
# 启动第一个容器
docker run hello-world

二、启动rancher

1、启动rancher

在rancher那台机器上运行:

# docker run -d --restart=unless-stopped --name rancher -p 80:80 -p 443:443 rancher/rancher:stable

2、查看日志

# docker logs -f rancher
ERROR: Rancher must be ran with the --privileged flag when running outside o

启动时需要添加 --privileged 参数

3、再次启动

# docker run -d --restart=unless-stopped --privileged --name rancher -p 80:80 -p 443:443 rancher/rancher:stable

4、查看日志

# docker logs -f rancher
如果不出现明显的错误就可以了

5、查看运行状态

# docker ps
CONTAINER ID   IMAGE                    COMMAND           CREATED          STATUS          PORTS                                      NAMES
9868df9a9a6e   rancher/rancher:stable   "entrypoint.sh"   10 minutes ago   Up 10 minutes   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   rancher

6、在Web界面登录

https://192.168.241.138/

因为是使用https的方式登录,所以会报以下错误。点继续前往就可以了。

Untitled.png

7、登录设置密码

Untitled 1.png

使用默认的url即可

Untitled 2.png

8、语言更换

Untitled 3.png

三、集群添加

1、添加一个k8s集群

Untitled 4.png

2、选择自定义

Untitled 5.png

3、编写集群信息

这里使用的选择的是kubernetes 1.18.20的版本。

Untitled 6.png
Untitled 7.png

Master节点上这个control组件是必须的!!!

Untitled 8.png

4、登录到master01

执行上面copy过来的命令

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.9 --server https://192.168.241.138 --token 4692pw82n2jhm7qmtzz7dptlpvhwz7ls9f27v2mkv5n9s89mwp6684 --ca-checksum 9cfb504b8d3f05bd9e37477173524ccf1a2b24129ffc941f52dcc2e9c9175310 --node-name k8s-master01 --controlplane --worker

然后就是静静等待集群的启动

Untitled 9.png

等到显示active就说明部署好了


四、worker-node节点的添加

1、编辑集群


2、直接点击保存


3、选择组件

由于机器的限制,etcd就部署在了worker-node上。etcd尽量以单数形式部署1、3、5、7......

我这里是选择3台机器部署etcd组件。


4、登录node01机器

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.9 --server https://192.168.241.138 --token 4tldjd8szx8ndgk9k88hmscdx46q2k8lf6l9z7kg5mbjgmwpb452nd --ca-checksum 9cfb504b8d3f05bd9e37477173524ccf1a2b24129ffc941f52dcc2e9c9175310 --node-name k8s-worker-node01 --etcd --worker

5、以后添加node节点只需要添加以下参数就可以了

主机名:

--node-name k8s-worker-node02

--node-name k8s-worker-node03

组件:

--etcd

--controlplane

--worker

五、kubectl工具的安装

我这里是将kubectl工具安装在master上

1、使用wget命令下载或者将它下载到本地再上传到服务器。

wget https://storage.googleapis.com/kubernetes-release/release/v1.18.20/bin/linux/amd64/kubectl

2、加x权限

# chmod +x kubectl

3、将二进制文件移到PATH中

# mv kubectl /usr/local/bin/

4、查看版本

# kubectl version --client
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.20", GitCommit:"1f3e19b7beb1cc0110255668c4238ed63dadb7ad", GitTreeState:"clean", BuildDate:"2021-06-16T12:58:51Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

5、创建kube目录

mkdir ~/.kube

6、编辑config文件

Untitled 14.png
Untitled 15.png

在~/.kube目录下创建config

vim ~/.kube/config

查看node状态

# kubectl get nodes
NAME                STATUS   ROLES                 AGE     VERSION
k8s-master01        Ready    controlplane,worker   30m     v1.18.20
k8s-worker-node01   Ready    etcd,worker           5m50s   v1.18.20
k8s-worker-node02   Ready    etcd,worker           5m1s    v1.18.20
k8s-worker-node03   Ready    etcd,worker           30m     v1.18.20

查看所有pod状态

# kubectl get pods -A
NAMESPACE       NAME                                      READY   STATUS      RESTARTS   AGE
cattle-system   cattle-cluster-agent-66dcc68754-7lp4q     1/1     Running     2          29m
cattle-system   cattle-node-agent-5twkm                   1/1     Running     0          5m57s
cattle-system   cattle-node-agent-v7c5l                   1/1     Running     0          29m
cattle-system   cattle-node-agent-wsnnr                   1/1     Running     0          6m46s
........

如下

Untitled 16.png

到这里,rancher部署k8s集群就完成了。可以发现我们只需要在rancher控制台上面点点点的操作就可以简单的把k8s集群部署下来。并且还提供了丰富的可视化功能管理模块。非常方便。

欢迎关注公众号:持续交付实践指南

往期好文:

使用 Rancher 部署 K8S 可参考以下步骤: ### 环境准备 在所有主机执行基础设置: - 安装基础软件(以 CentOS 7.6 环境为例): ```bash yum install -y vim net-tools wget lrzsz ``` - 防火墙设置: ```bash sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 systemctl stop firewalld.service && systemctl disable firewalld.service ``` - 时间同步: ```bash yum install -y ntp systemctl enable ntpd && systemctl start ntpd timedatectl set-timezone Asia/Shanghai timedatectl set-ntp yes ntpq -p ``` ### 安装流程 1. **rkm 安装 K8S**:文档中未详细提及 rkm 安装 K8S 的具体步骤,但已知节点信息如下: | 节点名称 | IP 地址 | 系统版本 | | ---- | ---- | ---- | | k8s - master01 | 192.168.1.9 | centos7.9 / kernel5.11 | | k8s - master02 | 192.168.1.10 | centos7.9 / kernel5.11 | | k8s - master03 | 192.168.1.11 | centos7.9 / kernel5.11 | | k8s - worker01 | 192.168.1.12 | centos7.9 / kernel5.11 | | k8s - worker02 | 192.168.1.13 | centos7.9 / kernel5.11 | 2. **在 K8S 集群上搭建 Helm**:文档未给出此步骤的具体操作,通常需要先下载 Helm 二进制文件,然后配置 Helm 仓库等。 3. **通过 Helm 创建 Rancher 容器应用**: - 下载 Rancher 镜像: ```bash sudo docker run --privileged -itd --restart=unless - stopped -p 86:86 -p 443:443 -v /home/rancher:/var/lib/rancher/:rw --name "rancher" rancher/rancher:stable ``` - 可以使用官方镜像下载工具及列表: - https://github.com/rancher/rancher/releases/download/v2.2.2/rancher - load - images.sh - https://github.com/rancher/rancher/releases/download/v2.2.2/rancher - save - images.sh - https://github.com/rancher/rancher/releases/download/v2.2.2/rancher - images.txt [^3] ### 编排工具选择说明 Rancher 2.0 完全构建在 K8S 之上的容器管理平台,包含内置的 Kubernetes Master,通过命令启动 Rancher 时会立刻启动一个 Kubernetes 集群。不过在 2018 年初时 2.0 只是预览版,安装有 bug 无法成功,后续正式版有望解决问题 [^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值