使用Rancher快速部署K8S集群

XiaoWang0777 2024-07-31 14:37:01 阅读 83

使用Rancher快速部署K8S集群

Rancher 是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程,开发者可以随处运行 Kubernetes(Run Kubernetes Everywhere),满足 IT 需求规范,赋能 DevOps 团队。

1. 安装要求

在开始之前,部署Kubernetes集群机器需要满足以下几个条件:

一台或多台机器,操作系统 CentOS7.x-86_x64硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点禁止swap分区

2. 准备环境

角色 IP 用途
k8s-rancher-master 192.168.10.102 master节点
k8s-rancher-node01 192.168.10.103 node节点
k8s-rancher-node02 192.168.10.104 node节点
k8s-rancher-server 192.168.10.105 rancher-server节点

以下操作在全部节点进行:

<code># 关闭防火墙

systemctl stop firewalld

# 禁用防火墙

systemctl disable firewalld

# 关闭selinux

setenforce 0 # 临时

sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久

# 关闭swap

swapoff -a # 临时

sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久 关闭后需要重启服务器

# 根据规划设置主机名

hostnamectl set-hostname <hostname>

# 在master添加hosts

cat >> /etc/hosts << EOF

192.168.10.102 k8s-rancher-master

192.168.10.103 k8s-rancher-node01

192.168.10.104 k8s-rancher-node02

192.168.10.105 k8s-rancher-server

EOF

# 将桥接的IPv4流量传递到iptables的链

vim /etc/sysctl.conf

cat > /etc/sysctl.conf << EFO

net.ipv4.ip_forward = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EFO

sysctl --system # 生效

# 时间同步

yum install ntpdate -y

ntpdate time.windows.com

3. 安装rancher

使用docker安装rancher,用户部署和管理K8S集群

🔴低版本rencher部署依赖于docker需要所有节点均执行docker安装操作

安装docker

安装Dorker

Docker一键部署脚本启动rancher

2.7.9版本

mkdir -p /data/rancher2.7.9

docker run -d --privileged -p 80:80 -p 443:443 -v /data/rancher2.7.9:/var/lib/rancher --restart=always --name rancher2.7.9 rancher/rancher:v2.7.9

2.4.18版本

docker run -d --privileged -p 80:80 -p 443:443 -v /data/rancher2.4.18:/var/lib/rancher --restart=always --name rancher2.4.18 rancher/rancher:v2.4.18

[root@rancher-server rancher2.4.18]# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

09eb32c97739 rancher/rancher:v2.4.18 "entrypoint.sh" 7 seconds ago Up 5 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp rancher2.4.18

访问https://192.168.10.105

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

image5-1.png

设置<code>admin的用户密码,最低12位

image5-2.png

设置访问URL

image5-3.png

inage5-4.png

4. 部署集群

创建集群

image5-5.png

选择自定义

image5-6.png

输入集群<code>名称和描述选择版本号网络等信息

image5-7.png

点击<code>下一步

image5-8.png

在<code>注册页面选择对应的组件

image5-9.png

复制命令到对应服务器执行

<code>[root@rancher-master ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.4.18 --server https://192.168.10.105 --token p446s9cmj89p77tgpwps9nkh29fb2kkq28tg64h98z7r8tssvvnz8n --ca-checksum 68d62d86b9f1f7ee1c765e59268b37cee5ef74bba4fc1c762439e592024c7c17 --etcd --controlplane --worker

Unable to find image 'rancher/rancher-agent:v2.4.18' locally

v2.4.18: Pulling from rancher/rancher-agent

11323ed2c653: Pull complete

cf7d0bf94c33: Pull complete

e084de361a68: Pull complete

5fa86bb06203: Pull complete

7c6887aa1de3: Pull complete

4b7dbf907b22: Pull complete

c1653c53efc4: Pull complete

Digest: sha256:ae858d26041fd612e83246da3d77d465b8e05f027f88aa51c5db96f45f45854b

Status: Downloaded newer image for rancher/rancher-agent:v2.4.18

bb43bfe8599f2c1d4009ff4301930804134022e16a8f4de88cfa9d601f250621

[root@rancher-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.4.18 --server https://192.168.10.105 --token p446s9cmj89p77tgpwps9nkh29fb2kkq28tg64h98z7r8tssvvnz8n --ca-checksum 68d62d86b9f1f7ee1c765e59268b37cee5ef74bba4fc1c762439e592024c7c17 --worker

Unable to find image 'rancher/rancher-agent:v2.4.18' locally

v2.4.18: Pulling from rancher/rancher-agent

11323ed2c653: Pull complete

cf7d0bf94c33: Pull complete

e084de361a68: Pull complete

5fa86bb06203: Pull complete

7c6887aa1de3: Pull complete

4b7dbf907b22: Pull complete

c1653c53efc4: Pull complete

Digest: sha256:ae858d26041fd612e83246da3d77d465b8e05f027f88aa51c5db96f45f45854b

Status: Downloaded newer image for rancher/rancher-agent:v2.4.18

875c3c944d25869bbbcd9428d953c96c1f01fa4c22d64001a6783722ee0130ec

[root@rancher-node02 ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.4.18 --server https://192.168.10.105 --token p446s9cmj89p77tgpwps9nkh29fb2kkq28tg64h98z7r8tssvvnz8n --ca-checksum 68d62d86b9f1f7ee1c765e59268b37cee5ef74bba4fc1c762439e592024c7c17 --worker

Unable to find image 'rancher/rancher-agent:v2.4.18' locally

v2.4.18: Pulling from rancher/rancher-agent

11323ed2c653: Pull complete

cf7d0bf94c33: Pull complete

e084de361a68: Pull complete

5fa86bb06203: Pull complete

7c6887aa1de3: Pull complete

4b7dbf907b22: Pull complete

c1653c53efc4: Pull complete

Digest: sha256:ae858d26041fd612e83246da3d77d465b8e05f027f88aa51c5db96f45f45854b

Status: Downloaded newer image for rancher/rancher-agent:v2.4.18

9850b5690d969c40bcc7fa7d776141fe7a33a5a1a6ff893e10a578f7567450bf

等待刷新主机页面查看注册情况

image5-10.png

image5-11.png

多master节点可以选择<code>etcd controlplane组件在多台机器执行即可

节点注册启动顺序

单master:

master>node

多master:

master1>master2>master3>node1>node2

5. 在K8S节点管理集群

配置阿里云YUM软件源

[root@k8s-master ~]# cat > /etc/yum.repos.d/kubernetes.repo << EOF

[kubernetes]

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

EOF

安装kubectl

查看yum仓库中,软件包有哪些版本

使用–showduplicates参数,查看kubelet有哪些版本

yum --showduplicates list kubelet

[root@k8s-master ~]# yum --showduplicates list kubelet

已加载插件:fastestmirror

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* epel: mirror.01link.hk

* extras: ftp.sjtu.edu.cn

* updates: mirrors.aliyun.com

kubernetes | 1.4 kB 00:00:00

kubernetes/primary | 137 kB 00:00:00

kubernetes 1022/1022

可安装的软件包

......

kubelet.x86_64 1.27.4-0 kubernetes

kubelet.x86_64 1.27.5-0 kubernetes

kubelet.x86_64 1.27.6-0 kubernetes

kubelet.x86_64 1.28.0-0 kubernetes

kubelet.x86_64 1.28.1-0 kubernetes

kubelet.x86_64 1.28.2-0 kubernetes

安装于K8S版本一直或相近的kubectl

yum install -y kubectl-1.28.2-0

先建kube目录

mkdir /root/.kube

获取配置文件

image5-12.png

image5-13.png

创建<code>/root/.kube.config文件

vi /root/.kube/config

# 将rancher上下载的配置文件复制到config

测试

[root@k8s-rancher-master ~]# kubectl get nodes

NAME STATUS ROLES AGE VERSION

k8s-rancher-master Ready control-plane,etcd,master,worker 124m v1.26.10+rke2r2

k8s-rancher-node01 Ready worker 77m v1.26.10+rke2r2

k8s-rancher-node02 Ready worker 77m v1.26.10+rke2r2

6. 使用Rancher CLI管理集群

Rancher CLI(命令行界面)是一个命令行工具,可用于与 Rancher 进行交互。

下载 Rancher CLI#

Rancher 提供了 Windows、Mac 和 Linux 的 Rancher CLI 二进制文件下载链接,该链接位于 Rancher UI 的右下角,单击链接可以下载 Rancher CLI 二进制文件。除此之外,您还可以访问 Rancher 的 GitHub 页面,导航到CLI 发行页面,下载该二进制文件。

🟢提示: 国内用户,可以导航到 https://mirror.rancher.cn 下载所需资源

要求:

下载 Rancher CLI 后,需要配置一些参数:

您的Rancher Server URL,用于连接到 Rancher Server。

API Bearer Token,用于与 Rancher 进行身份验证。有关获取 Bearer Token 的更多信息,请参见创建 API 密钥。

2. CLI 认证

在使用 Rancher CLI 控制 Rancher Server 之前,必须使用 APIBearer Token 进行身份验证。使用以下命令登录(用您的信息替换 <BEARER_TOKEN> 和 <SERVER_URL> ):

$ ./rancher login https://<SERVER_URL> --token <BEARER_TOKEN>

./rancher login https://192.168.10.105/v3 --token token-m5rkv:x7gtlkczcwzmnp6m44xfzcwdgz9bfpxttvhfbb5f5mfccnv5hc6wq9

如果您的 Rancher Server 使用的是自签名证书,则 Rancher CLI 会询问您是否继续连接。

指令列表

以下指令可在 Rancher CLI 中使用。

指令 作用
apps, [app] 对应用商店 App 执行操作 (例如,单个Helm charts 或 Rancher charts)。
catalog 对应用商店执行操作。
clusters, [cluster] 对您的集群执行操作。
context 在 Rancher 的项目间切换。请看示例选择项目。
inspect [OPTIONS] [RESOURCEID RESOURCENAME] 显示有关Kubernetes 资源或 Rancher 资源(例如:项目和工作负载)的详细信息,通过名称或 ID 指定资源。
kubectl 执行kubectl 指令。
login, [l] 登录进一个 Rancher Server。例如:CLI 认证。
namespaces, [namespace] 对命名空间执行操作。
nodes, [node] 对节点执行操作。
projects, [project] 对项目执行操作。
ps 显示项目中的工作负载。
settings, [setting] 显示当前 Rancher Server 的设置。
ssh 使用 SSH 协议连接到集群里的节点。
help, [h] 显示命令列表或某个命令的帮助信息。

Rancher CLI 帮助命令

使用 CLI 登录到 Rancher Server 后,输入 ./rancher --help 可以查看可用的命令列表。

所有命令都接受 --help 参数,可以通过该参数查看每个命令行的用法。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。