当前位置: 代码网 > 服务器>服务器>Linux > 使用Rancher快速部署K8S集群

使用Rancher快速部署K8S集群

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

使用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-master192.168.10.102master节点
k8s-rancher-node01192.168.10.103node节点
k8s-rancher-node02192.168.10.104node节点
k8s-rancher-server192.168.10.105rancher-server节点

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

# 关闭防火墙
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集群

  1. 安装docker
    安装dorker
    docker一键部署脚本
  2. 启动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
  1. 访问https://192.168.10.105
    因为是使用https的方式登录,所以会报以下错误。点继续前往就可以了。
    image5-1.png
  2. 设置admin的用户密码,最低12位
    image5-2.png
  3. 设置访问url
    image5-3.png

inage5-4.png

4. 部署集群

  1. 创建集群

image5-5.png

  1. 选择自定义

image5-6.png

  1. 输入集群名称描述选择版本号网络等信息

image5-7.png

  1. 点击下一步

image5-8.png

  1. 注册页面选择对应的组件

image5-9.png

  1. 复制命令到对应服务器执行
[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
  1. 等待刷新主机页面查看注册情况

image5-10.png

image5-11.png

  1. 多master节点可以选择etcd controlplane组件在多台机器执行即可

5. 在k8s节点管理集群

  1. 配置阿里云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
  1. 安装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
  1. 先建kube目录
mkdir /root/.kube
  1. 获取配置文件

image5-12.png

image5-13.png

  1. 创建/root/.kube.config文件
vi /root/.kube/config
# 将rancher上下载的配置文件复制到config
  1. 测试
[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 进行交互。

  1. 下载 rancher cli#
    rancher 提供了 windows、mac 和 linux 的 rancher cli 二进制文件下载链接,该链接位于 rancher ui 的右下角,单击链接可以下载 rancher cli 二进制文件。除此之外,您还可以访问 rancher 的 github 页面,导航到cli 发行页面,下载该二进制文件。

要求:
下载 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 会询问您是否继续连接。
  1. 指令列表
    以下指令可在 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 参数,可以通过该参数查看每个命令行的用法。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com