使用Rancher部署k8s集群

作者:钟贻乾

nature-6572635_1280.jpg

使用Rancher部署k8s集群

概述

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

主机整体规划

image.png

一、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就说明部署好了

Untitled 10.png

四、worker-node节点的添加

1、编辑集群

Untitled 11.png

2、直接点击保存

Untitled 12.png

3、选择组件

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

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

Untitled 13.png

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集群部署下来。并且还提供了丰富的可视化功能管理模块。非常方便。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容