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

湖蓝几何球体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.mfbz.cn/a/318961.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络协议与攻击模拟_04ICMP协议与ICMP重定向

ICMP协议是网络层协议, 利用ICMP协议可以实现网络中监听服务和拒绝服务,如 ICMP重定向的攻击。 一、ICMP基本概念 1、ICMP协议 ICMP是Internet控制报文协议,用于在IP主机、路由器之间传递控制消息,控制消息指网络通不通、主机是…

Python 二维平面Delaunay三角网建立

目录 一、算法概念二、代码实现三、结果示例根据二维平面内的离散点建立平面三角网。 一、算法概念 三角剖分与Delaunay剖分定义:如何把一个散点集剖分成不均匀的三角形网格,即在给定的平面点集上,生成三角形集合的过程。考虑平面点集P={p1,p2,p3,…,pn},我们希望得到三…

CMake+QT+大漠插件的桌面应用开发

文章目录 CMakeQT大漠插件的桌面应用开发说明环境项目结构配置编译环境代码 CMakeQT大漠插件的桌面应用开发 说明 在CMake大漠插件的应用开发——处理dm.dll,免注册调用大漠插件中已经说明了如何免注册调用大漠插件,以及做了几个简单的功能调用&#x…

金南瓜SECS/GEM发送event、VID

金南瓜SECS/GEM发送事件(CEID)很简单,只需一步就完成。 最重要是简单易懂,任何人一看就上手。无需懂得内部逻辑,以及一大堆的导入问题。 代码如下 C#的代码: // 扫码成功 private void buttonReadBarco…

【教学类-43-20】20240113 数独(二)4宫格、9宫格 无空行A4模板

作品展示: 4宫格 9宫格 题目连在一起 背景需求: 制作十宫格数独模板,为了凑满20行,删除了每个数独题之间的行列分割线 【教学类-43-18】A4最终版 20240111 数独11.0 十宫格X*YZ套(n10),套用没有分割行列的A4横版模板…

浅谈对Maven的理解

一、什么是Maven Maven——是Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等特性,已经有无数的开源项目使用它来构建项目并促进团队…

将 OpenCV Java 与 Eclipse 结合使用

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

【数据结构与算法】之数组系列-20240114

这里写目录标题 一、414. 第三大的数二、448. 找到所有数组中消失的数字三、561. 数组拆分四、594. 最长和谐子序列 一、414. 第三大的数 简单 给你一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。 示例 1: 输入&…

个人网站制作 Part 1 创建网站 | Web开发项目

文章目录 👩‍💻 基础Web开发练手项目系列:个人网站制作🚀 项目概述🔧 开发工具和环境配置🛠 项目实现步骤步骤 1: 创建HTML文件步骤 2: 添加CSS样式步骤 3: 链接CSS文件步骤 4: 添加JavaScript交互 &#…

【教学类-43-19】20240113 数独(一) 3-5-6-7-8-10宫格 无空行A4模板

作品展示: 3宫格 5宫格 6宫格 7宫格 8宫格 10宫格,题目连在一起 背景需求: 制作十宫格数独模板,为了凑满20行,删除了每个数独题之间的行列分割线 【教学类-43-18】A4最终版 20240111 数独11.0 十宫格X*YZ套(n10)&am…

【WPF.NET开发】流文档

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

综合评价 | 基于EW、EW-BP、EW-ELM的地区发展水平综合评价(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 综合评价 | 基于EW、EW-BP、EW-ELM的地区发展水平综合评价(Matlab) 程序设计 完整程序和数据获取方式:私信博主回复基于EW、EW-BP、EW-ELM的地区发展水平综合评价(Matl…

YOLOV8代码本地编译

下载pycharm 在 Linux 操作系统中安装 Pycharm 社区版_linux中安装pycharm社区版-CSDN博客 Pycharm中配置 Conda 虚拟环境 百度安全验证https://baijiahao.baidu.com/s?id1771914506705481878&wfrspider&forpc 源码编译 果您对参与开发感兴趣或希望尝试最新源代码…

昇腾910b部署Chatglm3-6b进行流式输出【pytorch框架】NPU推理

文章目录 准备阶段避坑阶段添加代码结果展示 准备阶段 配套软件包Ascend-cann-toolkit和Ascend-cann-nnae适配昇腾的Pytorch适配昇腾的Torchvision Adapter下载ChatGLM3代码下载chatglm3-6b模型,或在modelscope里下载 避坑阶段 每个人的服务器都不一样&#xff0…

《向量数据库指南》让「引用」为 RAG 机器人回答增加可信度

在之前的文章中,我们已经介绍了如何用 Milvus 向量数据库以及 LlamaIndex 搭建基础的聊天机器人《Chat Towards Data Science |如何用个人数据知识库构建 RAG 聊天机器人?》《书接上回,如何用 LlamaIndex 搭建聊天机器人&#xff…

双指针算法: 有效三角形的个数

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 前言 声明…

【AI】人工智能和水下机器视觉

目录 一、初识水下机器视觉 ——不同点 ——难点 二、AI如何助力水下机器视觉 三、应用场景 四、关键技术 水下机器视觉,非常复杂,今天来简单讨论一下。因为目标识别更难。 水下机器视觉是机器视觉技术在水下环境中的应用,它与普通机器…

读元宇宙改变一切笔记07_硬件与互操作性(上)

1. 元宇宙的头号入口 1.1. 元宇宙最令人兴奋的地方在于,我们可以借此开发用来访问、渲染和操纵它的新设备 1.1.1. App Newton于1993年发布,是世界上第一款掌上电脑 1.2. 功能超强大又轻巧的AR和沉浸式VR头显 1.2.1.…

[小程序]定位功能实现

第一步:首先要认识三个小程序的 api wx.chooseLocation 和 wx.getLocation 和 wx.openLocation (1).wx.chooseLocation 用于在小程序中选择地理位置。当用户点击选择位置按钮时,小程序会调起地图选择界面,用户可以在地图上选择一个位置,并可以…

黑马程序员 Docker笔记

本篇学习笔记文档对应B站视频: 同学们,在前两天我们学习了Linux操作系统的常见命令以及如何在Linux上部署一个单体项目。大家想一想自己最大的感受是什么? 我相信,除了个别天赋异禀的同学以外,大多数同学都会有相同的…
最新文章