基于Rancher实现kubernetes集群管理

2023-11-17

1.Rancher介绍

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

Kubernetes 已经成为了容器管理的标准。大多数云服务和虚拟服务的提供商现在将 Kubernetes 作为标准的基础设施。用户可以使用 Rancher Kubernetes Engine(简称 RKE),或其他云服务提供商的容器服务,如 GKE、AKS、 EKS 等,创建 Kubernetes 集群。用户也可以将已有集群导入 Rancher,集中管理。
Rancher架构
请添加图片描述

2.Rancher部署

主机准备

主机名 资源 操作系统 主机IP
rancher Vcpu_4个 - Mem_8G - Disk_100G CentOS8u2 172.20.251.129
node1 Vcpu_4个 - Mem_8G - Disk_100G CentOS8u2 172.20.251.115
node2 Vcpu_4个 - Mem_8G - Disk_100G CentOS8u2 172.20.251.105

以下操作需在所有主机执行

[root@rancher ~]# hostnamectl set-hostname xxx
# 主机名
[root@rancher ~]# cat >> /etc/hosts << EOF
> 172.20.251.129 rancher
> 172.20.251.115 node1
> 172.20.251.105 node2
> EOF
# 主机名解析
[root@rancher ~]# dnf -y install vim bash-completion
[root@rancher ~]# source /etc/profile.d/bash_completion.sh
# 安装小工具
[root@rancher ~]# systemctl stop firewalld && systemctl disable firewalld
[root@rancher ~]# setenforce 0
[root@rancher ~]# sed -ri "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 关闭防火墙及selinux
[root@rancher ~]# dnf -y install chrony
[root@rancher ~]# timedatectl set-timezone "Asia/Shanghai"
[root@rancher ~]# systemctl restart chronyd && systemctl enable chronyd
# 时间同步
[root@rancher ~]# 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
# 开启路由转发,性能调优
[root@rancher ~]# cat >> /etc/sysconfig/modules/load.mod <<EOF
> #!/bin/bash
> mods=(
> br_netfilter
> ip6_udp_tunnel
> ip_set
> ip_set_hash_ip
> ip_set_hash_net
> iptable_filter
> iptable_nat
> iptable_mangle
> iptable_raw
> nf_conntrack_netlink
> nf_conntrack
> nf_conntrack_ipv4
> nf_defrag_ipv4
> nf_nat
> nf_nat_ipv4
> nf_nat_masquerade_ipv4
> nfnetlink
> udp_tunnel
> VETH
> VXLAN
> x_tables
> xt_addrtype
> xt_conntrack
> xt_comment
> xt_mark
> xt_multiport
> xt_nat
> xt_recent
> xt_set
> xt_statistic
> xt_tcpudp
> )
> for mod in ${mods[@]};do
>     modprobe $mod
>         lsmod |grep $mod
> done
> EOF
# 创建加载模块脚本
[root@rancher ~]# chmod +x /etc/sysconfig/modules/load.mod
# 为脚本添加执行权限
[root@rancher ~]# source /etc/sysconfig/modules/load.mod
[root@rancher ~]# sysctl -p
net.ipv4.ip_forward = 1
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory
net.ipv4.neigh.default.gc_thresh1 = 4096
net.ipv4.neigh.default.gc_thresh2 = 6144
net.ipv4.neigh.default.gc_thresh3 = 8192
# 执行脚本,生效配置
[root@rancher ~]# sudo yum install -y yum-utils
# 安装yum-utils工具
[root@rancher ~]# sudo yum-config-manager \
>     --add-repo \
>     https://download.docker.com/linux/centos/docker-ce.repo
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
# 增加docker-ce的yum源
[root@rancher ~]# sudo yum-config-manager --enable docker-ce-nightly
[root@rancher ~]# sudo yum-config-manager --enable docker-ce-test
# 可选
[root@rancher ~]# sudo yum -y install docker-ce docker-ce-cli containerd.io
# 安装docker-ce
[root@rancher ~]# mkdir -p /etc/docker
[root@rancher ~]# cat >> /etc/docker/daemon.json <<EOF
> {
>   "registry-mirrors": ["https://32yzbld0.mirror.aliyuncs.com"]
> }
> EOF
# 配置镜像加速器
[root@rancher ~]# systemctl daemon-reload
# 重新加载配置文件
[root@rancher ~]# systemctl restart docker && systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
# 重启docker并设置开机自启

启动Rancher(rancher节点操作)

[root@rancher ~]# docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --name rancher --privileged -v /var/lib/rancher/:/var/lib/rancher/ rancher/rancher:stable 
...
32b1c3e4c3f81e3ba3063981d84dde599f3b518d4cd241e73c97a253e246a50c
# 运行Rancher容器

网页访问rancher(172.20.251.151)
请添加图片描述
点击高级
请添加图片描述
点击继续前往
请添加图片描述

[root@rancher ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND           CREATED         STATUS              PORTS                                                                      NAMES
32b1c3e4c3f8   rancher/rancher:stable   "entrypoint.sh"   3 minutes ago   Up About a minute   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   rancher
# 查看当前运行的容器
[root@rancher ~]# docker logs 32 2>&1 | grep "Bootstrap Password:"
2022/04/26 01:29:22 [INFO] Bootstrap Password: gg8bp9fhpj764nksbpdcl8q8fjhs8qnkrwzfnjktf7w22wcm4nt4qx
# 获取密码

粘贴上去
请添加图片描述
点击Log in with Local User

请添加图片描述
选择自己设置密码,注意不能少于12位,完成之后勾选下面我同意选项,点击continue
请添加图片描述
成功进入Rancher

添加kubernetes集群

请添加图片描述
下滑主界面找到Create,点击
请添加图片描述
选择Custom

请添加图片描述
输完名字后下滑找到next点击
请添加图片描述
请添加图片描述
勾选etcd和Control Plane,复制下面一段代码在node1和node2执行

[root@node1 ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.6.3 --server https://172.20.251.151 --token m77q9mjhbwnzqts2h7trmvlvbw8z4lfh9989xblnwgqmmhbzpzvq2z --ca-checksum d3d846fe2e185247d2f066b623b6ef8f1f3b72b9e46177fa96473fb45ac54e31 --etcd --controlplane --worker
...
2b4fe0e6f4e255deefc3108ea7e302038c9094389928a81b837b9a4b5a26ef98
[root@node2 ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.6.3 --server https://172.20.251.151 --token m77q9mjhbwnzqts2h7trmvlvbw8z4lfh9989xblnwgqmmhbzpzvq2z --ca-checksum d3d846fe2e185247d2f066b623b6ef8f1f3b72b9e46177fa96473fb45ac54e31 --etcd --controlplane --worker
...
defab1ca0668b7863e05a3617720072c154d8f384780781c5bf2009977b85665

请添加图片描述
当两个节点都执行完毕下方就会出现提示,这时点击Done即可请添加图片描述
可以看到node1和node2节点均为Active状态

3.Rancher简单操作

请添加图片描述
设置简体中文

部署一个Deployments类型的工作负载
请添加图片描述
点击进入test集群
请添加图片描述
点击工作负载,选择Deployments
请添加图片描述
创建Deployments
请添加图片描述
自定义Deployment,添加端口映射,下滑点击创建
请添加图片描述
等待一会,发现均为Ready,成功

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Rancher实现kubernetes集群管理 的相关文章

随机推荐

  • 第十四届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

    目录 试题 A 日期统计 本题总分 5 分 试题 B 01 串的熵 本题总分 5 分 试题 C 冶炼金属 本题总分 10 分 试题 D 飞机降落 本题总分 10 分 试题 E 接龙数列 本题总分 15 分 试题 F 岛屿个数 本题总分 15
  • node.js express 文件服务器,如何用nodejs+express搭建一个简单的后台服务器?

    Express框架 根据官方的介绍 Express是一个基于Node js平台 快速 开放 极简的Web开发框架 安装 Express是一个基于Node js的平台 所以在安装Express之前 你得先确保你已经安装了Node js 打开命
  • 计算1到10的阶乘之和:1!+2!+3!+......+10!(C语言&&Python)

    计算1到10的阶乘之和 1 2 3 10 C语言 include
  • Java 文件上传 三种方式

    一 配置springBoot上传文件限制 spring servlet multipart max file size 100MB 单个文件大小 max request size 1024MB 总文件大小 二 代码 import org s
  • 【LVGL 学习】样式(style)过渡动画学习

    transition 过渡动画 当一个控件的状态发生改变时 可以让样式也发生变化以提醒用户 通过过渡动画 transition 可以让样式的改变更自然 例如 按钮在点击时 以及开关在切换时 都具有一小段的过渡动画 过渡动画使用 lv sty
  • Vue手动控制点击事件Click触发

    方法一 变量的值 触发函数 方法二 利用变量控制css样式设置其pointer event none
  • Dynamics 365 for Sales: Email Engagement

    今天我们来看看和电子邮件相关的新功能 Email Engagement 这个功能是用来跟踪电子邮件的反馈状态 非常适合做邮件营销的公司 在做邮件营销的时候 我们会对发出去的邮件进行反馈统计 例如 多少邮件被查看了 有多少邮件被回复了 有多少
  • 微信小程序:css弹出菜单+多语言切换功能

    如何用css写出弹出菜单效果以及它的使用 1 核心知识点 2 实现效果 3 注意点分解 4 代码源码 5 写在最后 1 核心知识点 1 弹出菜单 animation动画 transform属性 2 语言切换功能 点击事件函数catchtap
  • tar解压文件到指定目录出现Not found in archive

    使用tar解压文件到指定目录时出现Not found in archive是因为没有设置 C这个参数 create 解压后的文件只有 通过设置 C 注意要大写 这个参数 创建默认文件夹才能被成功解压 如需要把home目录下的 jdk 8u1
  • 企业微信自动打卡插件开发

    今日科技快讯 近日中国多家VPN供应商已收到了来自苹果公司的通知 通知主要告知这些供应商和开发者 他们的软件将从中国区App Store下架 对此苹果方面表示 工信部今年早些时候宣布 所有提供VPN服务的开发者必须获得政府的许可 我们被要求
  • rabbitmq 安装

    文章目录 RabbitMQ 安装 erlang安装 RabbitMQ安装 环境变量 管理界面 添加用户 配置允许远程访问的用户 未验证 RabbitMQ 安装 erlang安装 http www erlang org downloads R
  • 鼠标、键盘、窗口监听事件

    一 画笔paint 画笔 public class TestPaint public static void main String args new MyPaint loadFrame class MyPaint extends Fram
  • openwrt路由器(RP-LINK)安装python并设置开机启动程序

    由于项目需求 实际条件限制 需要在某台设备上运行一个python小程序 在工业机器人和云服务器之间实现信息转发的功能 因为机器人也需要通过路由器认证连接校园网 出于简化设备的考虑 不想每次跑程序还得开电脑 我决定尝试在路由器上运行这个程序
  • js时间戳与日期格式的转换

    1 将时间戳转换成日期格式 function timestampToTime timestamp 时间戳为10位需 1000 时间戳为13位不需乘1000 var date new Date timestamp 1000 var Y dat
  • 软件测试用例设计之因果图

    软件测试用例设计之因果图 自动贩卖机功能测试 若投入5角钱或1元钱的硬币 押下 橙汁 或 啤酒 的按钮 则相应的饮料就送出来 若售货机没有零钱找 则一个显示 零钱找完 的红灯亮 这时在投入1元硬币并押下按钮后 饮料不送出来而且1元硬币也退出
  • char* buf和char buf[64],定义两种字符串作为参数传递给函数的区别

    问题描述 最近在项目中遇到了一个让人疑惑的问题 有一个发送函数需要传递void 类型的参数 我定义了char buf abcdefg 然后将buf作为参数传递给了这个发送函数 但是函数返回值显示发送成功 但是另一端没有接收到数据 查找了好久
  • WEB服务器和应用服务器有什么区别

    author skate time 2009 12 04 俗的讲 Web服务器传送 serves 页面使浏览器可以浏览 然而应用程序服务器提供的是客户端应用程序可以调用 call 的方法 methods 确切一点 你可以说 Web服务器专门
  • 部署MES管理系统首先要解决什么问题

    随着制造业市场竞争的加剧 企业需要更加高效 灵活的生产运营 以提高产品质量和降低成本 在这种情况下 MES管理系统解决方案成为许多企业的选择 然而 在部署MES管理系统之前 必须首先解决一些关键问题 以确保系统的成功实施 本文将探讨部署ME
  • C和C++中的结构体

    解释一 C C 结构体的区别 C中的结构体和C 中结构体的不同之处 在C中的结构体只能自定义数据类型 结构体中不允许有函数 而C 中的结构体可以加入成员函数 C 中的结构体和类的异同 一 相同之处 结构体中可以包含函数 也可以定义publi
  • 基于Rancher实现kubernetes集群管理

    基于Rancher实现kubernetes集群管理 1 Rancher介绍 2 Rancher部署 添加kubernetes集群 3 Rancher简单操作 1 Rancher介绍 Rancher可以通过图形化操作的方式管理kubernet