【云原生】Rancher部署k8s集群流程—2023.03

简介: 【云原生】Rancher部署k8s集群流程—2023.03

整体思路:

首先,准备好4台服务器,并且固定好IP;其次将4台服务器初始化,并在4台服务器上安装docker;然后在rancher节点的服务器上安装rancher,安装成功过后就可以通过IP+端口号访问rancher页面进行可视化操作了;最后在rancher节点服务器上创建配置文件,部署kubectl,就可以通过rancher节点控制整个集群了。


1. 准备工作


准备了4台机器,一台rancher,一台master,2台node,固定好IP,可以参考这篇文章,帮助您固定虚拟机IP(此处有超链接)

主机名称 IP 部署内容 组件
k8s-rancher 192.168.2.21 rancher docker\rancher\kubectl
k8s-master1 192.168.2.22 master1 docker
k8s-node1 192.168.2.23 node1 docker
k8s-node2 192.168.2.24 node2 docker


2. 初始化操作


2.1 关闭防火墙

systemctl disable firewalld  #永久关闭,移除开机自启项,以后开机不会启动
systemctl stop firewalld  #临时关闭,立刻关闭


2.2 关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config   # 修改selinux配置文件为关闭状态,以后开机不会启动
setenforce 0   #临时关闭,立刻关闭


2.3 关闭swap分区

sed -ri 's/.*swap.*/#&/' /etc/fstab  # 修改swap配置文件为关闭状态,以后开机不会启动
swapoff -a  #临时关闭,立刻关闭


2.4 设置主机名

hostnamectl set-hostname <设定的主机名称>
bash   # 刷新


2.5 修改hosts表

cat >> /etc/hosts << EOF
192.168.2.21 k8s-rancher
192.168.2.22 k8s-master1
192.168.2.23 k8s-node1
192.168.2.24 k8s-node2
EOF


2.6 时间同步

yum -y install ntpdate 
ntpdate time.windows.com


2.7 流量转发

# 将桥接的 IPv4 流量传递到 iptables 的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
cat >> /etc/sysctl.conf<<EOF
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.neigh.default.gc_thresh1=4096
net.ipv4.neigh.default.gc_thresh2=6144
net.ipv4.neigh.default.gc_thresh3=8192
EOF
#加载
modprobe br_netfilter
sysctl -p
sysctl --system   # 生效


3. 部署docker


安装之前确保没有其他dockers版本,如果有别的版本会有冲突,需要把原有的卸载再安装,可以参考这篇文章,卸载dockers(此处有超链接)

在4台服务器即所有节点上部署。

# 下载docker的yum源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo 
# 安装docker,找上一步的yum源去安装
yum  -y install docker-ce-20.10.12-3.el7
# 开机自启动并且启动docker
systemctl enable docker && systemctl start docker 
# 查看docker版本
docker --version
# 设置docker拉取镜像的加速器
cat > /etc/docker/daemon.json << EOF 
{
 "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"] 
}
EOF
# 重启docker
systemctl daemon-reload
systemctl restart docker


4. 部署rancher


在k8s-rancher服务器上部署rancher,这里部署的是2.6版本

docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 --privileged rancher/rancher:v2.6.3


5. 配置rancher


完成后,访问https://<部署主机的ip>:8443 ,进入rancher管理页面。

0c5da0b3b95d4dce90ec119c417da426.png

可以看到rancher的引导信息,提示需要进行如下操作,按照提示操作即可

# 找到容器ID
docker ps
# 找到容器对应的密码
docker logs  ${container-id}  2>&1 | grep "Bootstrap Password:"

a284a2cdaf4840ec96e6a57f61cbcebb.png

将密码输入到对话框里,点击“Log in with Local User”。

在下表面的页面填写好新密码和Server URL,然后点击Continue。

注意:

密码至少12位

Server URL一定要填写IP地址

574ab374a3104bb88e8edf57566803b9.png

可以在左侧设置语言

bffc003aea7c430e83f0da7d983d8e77.png


6. 创建k8s集群


点击创建

f158093ee6784099a45302064c8d4989.png

选择自定义

1d8282cdd850436f93379b34d9eeca00.png

输入集群名字,选择版本

93f1b28784a84b488174cf406ddec4db.png

在“Advanced Options”中进行高级设置,比如:选择是否启用Nginx Ingress,我这里没有选择没有开启。这个设置项后续可以点击rancher界面中此集群的升级按钮进行重新选择。

758b5f2baca546b1833d052b8abd5c5d.png

点击“Next”后,进入添加主机命令页面

0ac0eb7fa93e4973b5cabf04ecef083c.png

点选Etcd,Control Plan两个选项,最好把Worker选项也选上,然后复制下方的命令,到master1节点执行,这里没有选择Worker。如果部署的是多个master节点的集群,只要把对应的命令在每一台master节点上执行就可以。

点选Worker选项,然后复制下方的命令,到2个node节点执行。

46a9b422fa394012823b4aceca5d8045.png

当集群前面的状态变成Active时,就表示集群部署完成。

4ee7179a5470418ea6cc0561527badc0.png

可以点击集群的名称,进入集群详情页

650d7b32cb7f459eb177fe1b7d2cfc4f.png

点击箭头处的标识,可以下载集群的配置文件保存。

在k8s-rancher服务器上创建文件夹.kube,并在此文件夹下创建config文件,将下载的配置文件内容复制进去,保存退出,

e5a3e7a53dfa4319a0ddc07795d3191e.png

然后在k8s-rancher服务器部署kubectl命令,就可以通过kubectl命令控制集群了。

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
yum install -y kubectl


查看节点状态

kubectl get nodes


661cb4e775e34a1da61e90159b149d4a.png

到这里,rancher部署单master节点的k8s集群就完成了。整体下来给我的感觉就是方便,不用再修改配置文件,也不用再去找错误了,大大的缩短了部署集群的时间。在可视化平台上只需要点一点,集群就轻松部署完成了非常方便。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
27天前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
178 1
|
1月前
|
弹性计算 监控 调度
ACK One 注册集群云端节点池升级:IDC 集群一键接入云端 GPU 算力,接入效率提升 80%
ACK One注册集群节点池实现“一键接入”,免去手动编写脚本与GPU驱动安装,支持自动扩缩容与多场景调度,大幅提升K8s集群管理效率。
210 89
|
6月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
256 9
|
6月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
本文介绍如何利用阿里云的分布式云容器平台ACK One的多集群应用分发功能,结合云效CD能力,快速将单集群CD系统升级为多集群CD系统。通过增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy),并修改单集群kubeconfig为舰队kubeconfig,可实现无损改造。该方案具备多地域多集群智能资源调度、重调度及故障迁移等能力,帮助用户提升业务效率与可靠性。
|
3月前
|
运维 Dubbo Cloud Native
Dubbo 云原生重构出击:更快部署、更强控制台、更智能运维
Apache Dubbo 最新升级支持云原生,提供一键部署微服务集群与全新可视化控制台,提升全生命周期管理体验,助力企业高效构建云原生应用。
333 25
|
8月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
792 33
|
8月前
|
Kubernetes 开发者 Docker
集群部署:使用Rancher部署Kubernetes集群。
以上就是使用 Rancher 部署 Kubernetes 集群的流程。使用 Rancher 和 Kubernetes,开发者可以受益于灵活性和可扩展性,允许他们在多种环境中运行多种应用,同时利用自动化工具使工作负载更加高效。
454 19
|
8月前
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
存储 Cloud Native 数据处理
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
本文整理自阿里云资深技术专家、Apache Flink PMC 成员梅源在 Flink Forward Asia 新加坡 2025上的分享,深入解析 Flink 状态管理系统的发展历程,从核心设计到 Flink 2.0 存算分离架构,并展望未来基于流批一体的通用增量计算方向。
260 0
从嵌入式状态管理到云原生架构:Apache Flink 的演进与下一代增量计算范式
|
3月前
|
运维 监控 Cloud Native
从本土到全球,云原生架构护航灵犀互娱游戏出海
本文内容整理自「 2025 中企出海大会·游戏与互娱出海分论坛」,灵犀互娱基础架构负责人朱晓靖的演讲内容,从技术层面分享云原生架构护航灵犀互娱游戏出海经验。
402 16

推荐镜像

更多