基于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集群管理 的相关文章

  • 从 gitlab docker runner 启动声纳扫描仪

    我有一个 CI 工作流程 集成了 linting 作业和代码质量作业 我的 Linting 工作是一个 docker runner 从应用程序代码启动我的 eslint 脚本 然后我的代码质量工作应该启动声纳扫描仪泊坞窗实例 检查我的代码并
  • 如何为容器设置正确的 cpu 毫核?

    我想要优化配置 CPU 核心 而不会分配过多或不足 如何测量给定容器所需的 CPU 毫核 它还带来了一个问题 即代理将根据 CPU 消耗将多少流量发送到任何给定的 Pod 以便我们可以最佳地使用计算 目前我发送请求并进行监控 kubectl
  • docker 容器中的 nmcli

    我目前正在寻找在 docker 容器中运行 nmcli nmcli 在我的主机上工作得很好 但如果我启动一个特权容器 nmcli 就不起作用 启动我的容器 sudo docker run privileged net host it ima
  • 如何使用 Prometheus Alert Manager 在 Kubernetes 中触发警报

    我在集群中设置了 kube prometheus https github com coreos prometheus operator tree master contrib kube prometheus https github co
  • 除了 80 / 443 之外,我还可以为 Kubernetes 入口设置自定义端口来侦听吗?

    我并不是说能够路由到特定端口 我的意思是实际更改入口侦听的端口 这可能吗 如何 这是在哪里记录的 不 从Kubernetes 文档 https kubernetes io docs concepts services networking
  • 如何从 docker-compose 链接到 Amazon RDS

    我的 docker compose yml 看起来像这样 django build user django links LINK TO AMAZON RDS command gunicorn sh env file config setti
  • Spring Cloud Kubernetes + Spring Cloud Gateway:无法找到 k8s 服务的实例

    我正在使用 Spring Cloud Kubernetes Spring Cloud Gateway SCG 但在 GKE 上部署应用程序时遇到一些问题 SCG 找不到 k8s 服务 我仍然收到此错误 There was an unexpe
  • Docker DNS 设置

    我尝试使用自定义网络和 dos 设置创建 docker 容器 docker网络创建 driver bridge opt com docker network bridge enable ip masquerade true opt com
  • 如何将新的 Kubernetes Minion 添加到当前集群

    我有一个运行在 3 台服务器上的 Kubernetes 集群 一台主服务器和 2 台服务器 我想添加另一个小黄人 是否可以添加 Minion 而无需再次进行完整安装 到目前为止 在寻找执行此操作的指南时 我只能找到有关建立整个集群的优秀指南
  • 列出 Docker 容器的卷

    如何列出 Docker 容器的所有卷 我知道它应该很容易获得 但我找不到如何获得 另外 是否可以获取已删除容器的卷并将其删除 您可以使用 docker ps 获取容器 id 并写入 docker检查container id 像这儿 Volu
  • ECS 任务定义是否支持卷映射语法?

    docker compose 规范支持卷映射语法services 例如 version 2 volumes jenkins home external true services jenkins build context args DOC
  • Docker 构建器构建与 docker 构建

    在 Docker 的文档页面上 有一个条目码头工人建造者 https docs docker com engine reference commandline builder 这是父命令docker 构建器构建 https docs doc
  • 2 个具有共享 Redis 依赖的 Helm Chart

    目前 我有 2 个 Helm Charts Chart A 和 Chart B Chart A 和 Chart B 对 Redis 实例具有相同的依赖关系 如Chart yaml file dependencies name redis v
  • 允许 Kubernetes 用户列表/获取命名空间

    我有以下用户清单 我希望允许 myapp user 获取集群内所有命名空间的列表 根据我的查找 我应该创建一个 ClusterRole 但我无法真正找到足够的详细信息 是否有所有 apiGroup 以及相应资源和动词的列表 apiVersi
  • 将当前目录复制到 docker 镜像

    构建 Docker 映像时 我需要将同一目录中的所有文件复制到 Docker 映像中 我尝试这样做 ADD HOME src RUN ls HOME src 但似乎不起作用 ls cannot access root src No such
  • Docker:PermissionError:[Errno 13]权限被拒绝[重复]

    这个问题在这里已经有答案了 我在运行 docker compose 时得到了这个 Got permission denied while trying to connect to the Docker daemon socket at un
  • 如何在docker的keycloak中添加SSL

    我在将 SSL 证书添加到在 docker 上运行的 Keycloak 时遇到问题 我通过负载均衡器从 AWS EC2 获得了 SSL 证书 但不知道如何将其添加到 docker 上的 Keycloak 中 我正在通过谷歌搜索 但尚未找到任
  • 如何在 Linux 主机上的 docker 容器中挂载目录 [重复]

    这个问题在这里已经有答案了 我想将一个目录从 docker 容器挂载到本地文件系统 该目录是网站根目录 我需要能够使用任何编辑器在本地计算机上编辑它 我知道我可以跑docker run v local path container path
  • 为什么 tty 在命令完成后挂起?

    我想运行这样的命令 kubectl run busybox it rm restart Never image busybox command sh c env 预计运行命令并删除 pod 它打印变量 但随后终端冻结 尽管 pod 处于完成
  • Docker-compose:npm 安装成功后卷中不存在 node_modules

    我有一个具有以下服务的应用程序 web 在端口 5000 上保存并运行 python 3 Flask Web 服务器 使用 sqlite3 worker 有一个index js文件是队列的工作人员 Web 服务器通过端口使用 json AP

随机推荐

  • 第十四届蓝桥杯大赛软件赛省赛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