centos7系统部署rancher2.x,并创建k8s集群

news2025/5/21 13:42:55

湖蓝几何球体LinkedIn Banner.png
转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


前言

一 本文目标:

1、部署rancher-server UI,版本:2.3.5
2、通过rancher部署一个k8s集群crystal-cluster
3、在k8s集群crystal-cluster上部属nginx实例

二 部署的几个前提:

1、按照官方的要求,选择rancher版本对应支持的系统版本和docker版本;
2、安装ntp,保证每一台服务器之间的时间同步,否则可能会出现证书验证错误的问题;
3、关闭防火墙和selinux。(如果要开启防火墙,那么要在防火墙放行rancher所需的端口,最好再检查一下默认的防火墙规则,保证服务器与Helm( Kubernetes 的软件包管理工具)的通信)
4、所有节点服务器分配静态IP,并且应该保留一个DHCP,以确保分配给节点的IP是相同的。
5、所有节点的hostname注意不要带下划线"_"。
(以上内容详细要求见官网链接:https://rancher.com/docs/rancher/v2.x/en/installation/requirements/)

三 本次实验环境描述

**系统版本:**CentOS Linux release 7.7.1908 (Core)
**docker版本:**18.06.2-ce
**rancher-server版本:**2.3.5(当前最新版)
主机分配及配置:

| hostname | IP | rancher角色 |系统配置(cpu/mem) |kubernets集群角色 |
| -------- | -------- | -------- |
| test102 | 10.0.0.102 | rancher-server |1C/1G |无 |
| test103 | 10.0.0.103 | rancher-node1 |1C/2G |etcd、Control Plane、Work |
| test104 | 10.0.0.104 | rancher-node2 |1C/1G |Work |

四 环境准备

1、yum默认安装的版本是13版本,将docker升级到18.06.2-ce版本:

1)保证内核版本在3.10及以上:uname -a 
2)删除旧版本:yum remove -y docker docker-common docker-selinux docker-engine #这一步骤在初次安装docker也最好执行一次,否则后面安装docker可能会报错
3)安装需要的软件包:yum install -y yum-utils device-mapper-persistent-data lvm2
4)设置Docker yum源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5)查看所有仓库中所有docker版本:yum list docker-ce --showduplicates | sort -r
6)安装docker:yum -y install docker-ce-18.06.2.ce-3.el7
7)设置为开机启动:systemctl enable docker
8)启动:systemctl start docker
9)查看启动状态:systemctl status docker
10)查看版本:docker version

2、给docker配置阿里源加速器:
1)创建/修改配置文件/etc/docker/daemon.json

[root@test102 ~]# cat /etc/docker/daemon.json     #这个文件可能不存在,需要新创建,然后写入下列内容
{
  "registry-mirrors": ["https://fzhifedh.mirror.aliyuncs.com"]
}
[root@test102 ~]# 

2)重新加载新修改的配置,重启docker

systemctl daemon-reload 
systemctl restart docker

3、安装ntp,确保服务器时间同步:

yum -y install ntp
systemctl enable ntpd
systemctl start ntpd
timedatectl set-ntp yes
ntpdate -u cn.pool.ntp.org
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime   
watch -n 1 'date'

环境部属

1 rancher server部署

1.1 命令:

# docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 -v /data/rancher/ranchermaster:/var/lib/rancher rancher/rancher:latest

1.2 端口说明:

1.3 等到容器起来,就能访问了:

1.4 通过IP+端口(https://10.0.0.102/)去访问并配置admin用户的密码:

1.5 密码配置好之后,跳转到配置rancher-server的URL地址。这里可以用公网IP/内网IP,只要保证其他的rancher-node能通过这个URL访问到rancher-server即可。如果没有特殊的网络原因,最好用内网IP:

1.6 点击“Save URL”,跳转到rancher-server首页。左下角可以看到当前rancher-server版本号,右下角可以切换语言,然后就能创建集群,尽情的玩耍了:

2 创建自定义k8s集群crystal-cluster并添加两个node节点

2.1 点击右上角“Add Cluster”按钮创建集群:

2.2 可以选择创建自定义集群,也可以选择导入集群。这里是创建一个全新的集群,因此选择自定义(Custom):

2.3 开始配置集群相关信息:

以上配置说明:
Cluster Name:填写集群名称(crystal-cluster)
Member Roles:配置访问该集群的用户,及每个用户对集群的操作权限,
Label & Annotations:为集群配置标签和注释,按需配置。
Kubernetes Options:
—>Kubernetes Version:选择kubernets版本
—>Network Provider:选择需要的网络驱动
—>Project Network Isolation:配置namespace之间的网络隔离
—>Cloud Provider:选择云提供商。本文采用VMware虚拟机部署,默认选择无
Private Registry:配置私有镜像仓库
Advanced Options:配置自定义集群参数,按需配置。
Authorized Endpoint:配置授权访问地址
以上参数均能根据页面的提示和自己的需求做出相应的配置,本文实验除了Cluster Name之外,其余均选择了默认配置。

2.4 然后点击"Next",到下一步添加主机命令,选择主机角色:
(选择主机角色,端口放行参考: https://rancher.com/docs/rancher/v2.x/en/installation/references/)

角色选择:每台主机可以运行多个角色。每个集群至少需要一个Etcd角色、一个Control角色、一个Worker角色
选择好角色后,下面的代码框会根据选择的角色生成对应的主机命令,然后将命令复制到node主机上运行(注意node节点是否已经安装好支持版本的docker,并且docker处于running的状态)。

2.5 选好角色后,将命令复制到node节点部署:
test103(10.0.0.103),运行etcd、Control Plane、Work角色。因此,在test103执行这条命令:

*注意:如果你也选择在某个节点上部署三个角色,那么内存最小都必须要大于2G,1G内存虽然能起来,但是集群活不长就会挂掉,不要问我怎么知道的 *

这一步需要安装的组件很多,需要耐心多等一会儿。组件在安装时,rancher-server能看到下面这个提示:

继续添加第二个节点了。
在test104(10.0.0.104)上运行work这一个角色,因此,在test104上运行这条命令:

2.6 点击“Done”按钮,回到主页,查看集群详情:

点击上图中的“2”进去这个界面,可以看到刚刚加进来的两台node节点分别的State、hostname、IP、Roles等等信息
下图标注的几个地方:
1、edit:可以对主机进行编辑,给主机设置别名,如:测试机104
2、Delete:可以删除该主机
3、Edit Cluster:点击这个按钮,回到刚刚创建主机的界面编辑集群。需要添加新的节点也能从这里进去找到添加主机命令

点击左上角的集群名称,可以看到对应集群的仪表盘信息:

至此,集群添加完毕。

3 在crystal-cluster集群下创建project和namespace

3.1 创建project:
为应用更好的管理,rancher在kubernetes的namespace上封装projects的概念,一个projects可以包含多个namespace,先添加一个project。
3.1.1 点击Projects/Namespace,进入创建project界面:

3.1.2 点击右上角“Add Project”:

3.1.3 填写Project Name,点击Create创建一个叫“crystal-cluster-project”的project:
(至于下面的成员信息、资源配额,容器限制、标签等配置,这里没有配置。页面提示很详细,可以按需配置)

然后在projects-namespaces这个页面的末尾,就能看到刚刚创建的project了。

3.2 创建Namespace:
3.2.1 根据前面的命名规则,再点击“Add Namespace”创建一个叫“crystal-cluster-project-namespace”的namespace:

3.2.2 跟创建project一样,这里只填写name,其余配置默认(Container Default Resource Limit这个容器资源限制,在正式环境建议设置,减少OOM风险):

在projects-namespaces界面,就能看到刚刚创建的namespace:

4 部署nginx实例

4.1 首先进入刚刚创建的project:

4.2 点击右上角的“Deploy”,开始部署:

4.3 填写好Name、Docker Image、Port Mapping等相关的部署信息:
填写完整相关信息,点击launch部署:
后面方框中的环境变量、主机调度、健康检查、数据卷、缩放/升级策略在真实环境中非常有用,功能跟rancher1类似,这里默认,不赘述。

之后跳转到这个页面,看到状态变成active了,就部属成功了:

在详情界面能看到这个应用的相关配置,也能进行扩缩容:

4.4 访问验证:
通过nginx的IP+端口,访问验证功能:

至此。本文完!

写在末尾:

1、rancher在管理docker挺实用的,更新换代还算比较快。现在2.6.x是主流了,和2.5.x以下的版本在界面差距比较大,看个人习惯用哪种界面。但是部署用法差不多。

2、本文属于记录简单入门操作的小白笔记,更多的功能说明和理论,可以查看rancher官网和k8s相关官网说明。

3、最后,不管是环境差异还是别的因素,按照这个方案部署可能会遇到坑,那就爬吧!

加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1382309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

html+JavaScript的媒体元素

<video src"conference.mpg" id"myVideo">Video player not available.</video> <!-- 嵌入音频 --> <audio src"song.mp3" id"myAudio">Audio player not available.</audio> - 属性 每个元素至少…

【蓝桥杯日记】第一篇——系统环境的搭建

目录 前言 环境相关文件 学生机环境-Web应用开发环境&#xff08;第十五届大赛&#xff09; 学生机环境-Java编程环境&#xff08;第十五届大赛&#xff09; 学生机环境-C/C编程环境&#xff08;第十五届大赛&#xff09; 学生机环境-Python编程环境 &#xff08;第十五届…

JavaScript深拷贝与浅拷贝的全面解析

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》 ​ ​ 目录 ✨ 前言 ✨ 正文 浅拷贝 对象的浅拷贝 数组的浅拷贝 浅拷贝的问题 深拷贝 什么是深拷贝…

Windows+Qt5.14.2+android x86配置与处理adb报错

资源下载 可在部分国内镜像源下载Qt5.14.2&#xff1a;Index of /qt/archive/qt/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror其他工具 android studio:下载 Android Studio 和应用工具 - Android 开发者 | Android Developerssdk manager 、ndk、java 安装过…

C语言实现俄罗斯方块游戏程序设计【附源码】

目录 一、前言 二、需求分析 2.1 产品需求概述 2.1.1 功能简介 2.1.2 运行环境 2.2 功能需求 2.2.1 绘制地图 2.2.2 生成随机方块 2.2.3 按键响应 2.2.4 预览方块 2.2.5 分数累加 三、概要设计 3.1 系统体系结构图 3.2 模块描述 四、详细设计 4.1 系统主要函数…

【WPF.NET开发】流文档

本文内容 什么是流文档&#xff1f;流文档类型创建流内容与流相关的类内容架构自定义文本 流文档旨在优化查看和可读性。 流文档根据运行时变量&#xff08;例如&#xff0c;窗口大小、设备分辨率和可选的用户首选项&#xff09;来动态调整和重新排列内容&#xff0c;而不是设…

python入门,数据容器:set集合

set最大的特点就是不支持重复元素&#xff0c;可以进行元素的去重处理&#xff0c;但不有序&#xff0c;不保证元素顺序正确 所以就不能使用下标索引的访问 1.集合的定义 集合的定义使用的是大括号{ } 对ok这个字符串进行了去重 2.add添加新元素 3.remove移除元素 4.pop随机…

redis(14):缓存雪崩、击穿、穿透及其处理方式

1 Redis 缓存过程 通常后端会采用Mysql等磁盘数据库,可以持久化但是访问慢,高并发时性能差,需要设置Nosql内存型数据库缓存:Redis等; Redis 数据库运行在内存中,因此他的查询速度比 MySql 快的多。所以我们会把一些用户经常查询的数据放在 Redis 中,当 Redis 有的时候…

简单高效 LaTeX 科学排版 第004集 命令与环境

这是《简单高效LaTeX》的第四个视频&#xff0c;主要演示讨论基本命令与排版环境&#xff0c;还有保留字符。 视频地址&#xff1a;https://www.ixigua.com/7298100920137548288?id7298102807985390120&logTagf853f23a668f8a2ee405

将 OpenCV Java 与 Eclipse 结合使用

配置 Eclipse 首先&#xff0c;从下载页面获取 OpenCV 的新版本&#xff0c;并将其解压缩到一个简单的位置&#xff0c;例如 .我使用的是 2.4.6 版&#xff0c;但其他版本的步骤或多或少相同。C:\OpenCV-2.4.6\ 现在&#xff0c;我们将 OpenCV 定义为 Eclipse 中的用户库&…

美颜技术详解:美颜SDK与直播平台集成

如今&#xff0c;美颜技术成为了吸引用户的一项重要功能。本篇文章&#xff0c;小编将深入讲解美颜技术&#xff0c;重点关注美颜SDK的原理以及如何将其无缝集成到直播平台中&#xff0c;为用户提供更加优质的视觉体验。 一、美颜技术概述 美颜技术的应用范围广泛&#xff0c…

DrissionPage获取浏览器Network数据包

DrissionPage是什么&#xff1f; GitHub - g1879/DrissionPage: 基于python的网页自动化工具。既能控制浏览器&#xff0c;也能收发数据包。可兼顾浏览器自动化的便利性和requests的高效率。功能强大&#xff0c;内置无数人性化设计和便捷功能。语法简洁而优雅&#xff0c;代码…

【C++入门到精通】智能指针 [ C++入门 ]

阅读导航 引言一、什么是智能指针二、为什么需要智能指针三、内存泄漏1. 什么是内存泄漏&#xff0c;内存泄漏的危害2. 内存泄漏的示例&#xff0c;以及解决方法3. 内存泄漏分类&#xff08;1&#xff09;堆内存泄漏(Heap leak)&#xff08;2&#xff09;系统资源泄漏 4. 如何检…

Nginx配置动静分离实例(Nginx处理静态资源)

Nginx动静分离概述 Nginx 动静分离是指动态请求跟静态请求分开&#xff0c;可以理解为使用Nginx处理静态页面&#xff08;包含静态资源文件&#xff09;&#xff0c;Tomcat处理动态页面&#xff1b; 提醒一下&#xff1a;下面实例讲解是在Mac系统演示的&#xff1b; 两个方式…

恢复 iPhone 和 iPad 数据的 10 个好工具 - [苹果数据恢复]

它发生了.. 有时您需要从您的手机或平板设备恢复重要数据。 许多人已经开始将重要文件存储在手机上&#xff0c;因为他们几乎可以在任何情况下随时随地轻松访问数据。 不言而喻; 您可以轻松访问您的电子邮件、共享图片、编辑和共享文档、支付账单等等&#xff0c;只需在您的手…

【k8s】Kubernetes 声明式 API、命令式

1. 资源管理方式&#xff1a; 1>. 命令式对象管理∶直接使用命令去操作kubernetes资源 kubectl run nginx-pod --imagenginx:1.17.1 --port802>. 命令式对象配置∶通过命令配置和配置文件去操作kubernetes资源 kubectl create/patch -f nginx-pod.yaml3>. 声明式对…

win10重新安装Windows应用商店

安装Windows 终端 用 PowerShell 重装 Microsoft Store使用 MSIX 包重装 Microsoft Store下载安装包及依赖下载Windows 应用商店的安装包安装包是依赖组件包 微软应用商店无法连接网络解决办法 参考&#xff1a; wind10自带的终端程序和powerShell 真是太垃圾了&#xff0c; 突…

简单高效LaTeX 科学排版 第005集 导言区和文档输出

导言区是LaTeX文档的前导重要部分&#xff0c;这个视频讨论了建立导言区的方法&#xff0c;并且讨论了LaTeX文档的输出。 视频链接&#xff1a;https://www.ixigua.com/7298100920137548288?id7303715340075139622&logTag6eb24f453fe9fe617a61

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《与新能源互补和独立参加多级市场的抽蓄电站容量分配策略》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 这个标题涉及到抽蓄电站在能源系统中的角色&#xff0c;特别是在多级市场中的参与&#xff0c;并强调了新能源的互补性以及抽蓄电站的独立性。下面我将…

领域驱动设计应用之WebAPI

领域驱动设计应用之WebAPI 此篇文章主要讲述领域驱动设计在WebApi中的应用&#xff0c;以及设计方式&#xff0c;这种设计的原理以及有点。 文章目录 领域驱动设计应用之WebAPI前言一、相对于传统设计模式的有点二、WebAPI对接中的使用案例业务拆分父类设计HttpResponse(返回)…