草庐IT

rancher2.6部署k8s集群示例

农民工老王 2023-11-10 原文

博客主页:https://tomcat.blog.csdn.net
博主昵称:农民工老王
主要领域:Java、Linux、K8S
期待大家的关注💖点赞👍收藏⭐留言💬

目录

rancher 2.6已经发布一段时间,与2.5还是有不少变动,而且目前只有英语文档。为了方便大家顺利使用,在此演示下rancher2.6部署k8s集群。

本文是 如何通过rancher部署k8s集群 这篇博客的升级版本,该文介绍了rancher 2.5部署k8s集群的流程。大家可以对比阅读。

1 计算机准备

本次部署准备了五台机器,如下表所示。

机器名IP地址部署内容cpu核心数内存(G)硬盘(G)
k8s179192.168.130.179rancher48100
k8s180192.168.130.180master48100
k8s183192.168.130.183node832100
k8s184192.168.130.184node832100
k8s185192.168.130.185node832100

本次安装相对于rancher2.5的那次部署,有以下改进:

  • rancher和master节点部署在不同的机器上,有利于两者解耦,可以分别打快照和回滚。
  • master节点不再承担worker的角色,不参与工作负载。这也是k8s的最佳实践。

如果您的机器资源不是很宽裕,可以将rancher和master部署在同一台机器上,还可以缩减node的数量为两个。cpu、内存、硬盘资源也可以按照您的实际情况进行配置。

2 安装前准备

具体步骤参见 我的另一篇博文 如何设置k8s安装前的计算机环境(此处有超链接,可以直接点击跳转)

3 部署rancher

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

需要注意的是上面的命令中的rancher的版本v2.6.3仅仅是我2022年5月安装测试时的最新版,rancher随时在更新,您可以将上面命令中的“v2.6.3”替换为“latest”,以安装最新版本的rancher。但如果您选择最新版后,您的rancher用户界面可能会和下文的截图有差异,需要您进行一定的探索和推测。请根据您的需求选择。

4 配置rancher

完成后,访问https://<部署主机的ip或全限定域名>:8443 ,进入rancher管理页面。
可以看到rancher的引导信息,提示你需要进行如下操作

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

例如:
然后将查询到的字符串复制到Password文本框中,点击Log in with Local User。

在下面这个页面您需要依次点击第一个和第三个箭头的选择框,并填写好密码和Server URL,然后点击Continue。
需要注意两点:

  • Server URL一定要填写IP地址,而不要填写全限定域名。
  • 密码长度要超过12位。

按照如图的操作,可以设置为中文语言。

5 创建k8s集群

点击箭头处的创建。
点击自定义。
填写集群名字,并选择版本。

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

点击“Next”后,进入添加主机命令页面。
点选Etcd,Control Plan两个选项,然后复制下方的命令,到master节点执行。
点选Worker选项,然后复制下方的命令,到node节点执行。

当集群前面的状态变成Active时,就表示集群部署完成,可以点击集群的名称,进入集群详情页。
点击箭头处的标识,可以下载集群的配置文件。
在部署kubectl的计算机中,在用户文件夹下创建.kube文件夹,并在其中创建文件config,并将下载的配置文件中的内容写入config文件。然后就可以通过kebectl操作集群。

6 rancer2.6的更新点

重新设计的Rancher用户体验

重现设计用户界面的外观和感觉,使初学者和高级Kubernetes用户易于使用。

集群资源管理器的导航已经更新,用户现在可以看到用简单术语表达的最常用的Kubernetes资源的折叠子集。任何Kubernetes资源都可以通过Explorer进行管理,并通过资源搜索功能快速找到。用户现在可以管理他们的项目。像监控和日志这样的集群工具被聚集在一个容易发现的集群工具菜单下。启用监控时,集群仪表板现在包括实时指标。
全局导航经过重新设计,使用户和管理员更容易在集群和顶级应用之间快速切换。
集群管理列出了用户的所有集群,并增强了它自己的左侧导航菜单,将所有集群生命周期工具集中到一个地方。

增强品牌和定制选项

管理员现在可以通过一个品牌管理页面管理Rancher中的标识和颜色。
用户可以在集群资源管理器导航中添加自己的应用程序的链接。

增强的AKS生命周期管理

对AKS集群的配置进行了更新,以支持私有AKS端点、多节点池、自动缩放和利用Rancher云凭证进行认证。
现有的AKS集群可以被注册,从而能够管理Kubernetes版本和配置设置。

增强的GKE生命周期管理

对GKE集群的配置进行了更新,以支持共享VPC、多节点池、自动缩放和网络标签。
现有的GKE集群可以被注册,从而能够管理Kubernetes版本和配置设置。
Rancher的项目网络隔离可以为通过Rancher配置或注册的GKE集群启用。

技术预览 - RKE2集群配置

为了支持RKE2集群的配置,我们引入了一个建立在集群API之上的新的配置框架。
RKE2集群可以通过Rancher在不同的云基础设施供应商(如AWS、Azure、vSphere、Linode和DigitalOcean)配置虚拟机。
RKE2集群也可以在现有的虚拟或裸机服务器上进行配置。

技术预览 - RKE2支持Windows工作节点

Windows工作节点可以被添加到任何使用默认Calico CNI的RKE2自定义集群中。

技术预览 - 集群模板

集群模板提供了控制哪些参数可以被定制的能力,以配置集群。

集群可以定义的例子有。

etcd、control和worker的节点池。
用于配置节点的云凭证。

使用OIDC的Keycloak

Keycloak现在可以使用OIDC进行认证。

安全性增强

管理员现在可以通过Rancher和Kubernetes审计日志中的用户名和身份提供者(IdP)来追踪用户。
管理员可以启用Rancher API令牌的单向哈希。

如需转载,请注明本文的出处:农民工老王的CSDN博客https://blog.csdn.net/monarch91 。

有关rancher2.6部署k8s集群示例的更多相关文章

  1. ruby-on-rails - 每次我尝试部署时,我都会得到 - (gcloud.preview.app.deploy) 错误响应 : [4] DEADLINE_EXCEEDED - 2

    我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie

  2. ruby-on-rails - Ruby on Rails 可以部署在 Azure 网站上吗? - 2

    我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/

  3. postman——集合——执行集合——测试脚本——pm对象简单示例02 - 2

    //1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json

  4. jenkins部署1--jenkins+gitee持续集成 - 2

    前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon

  5. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  6. Ruby,使用包含 TK GUI 的 ocra 部署一个 exe - 2

    Ocra无法处理需要“tk”的应用程序require'tk'puts'nope'用奥克拉http://github.com/larsch/ocra不起作用(如链接中的一个问题所述)问题:https://github.com/larsch/ocra/issues/29(Ocra是1.9的"new"rubyscript2exe,本质上它用于将rb脚本部署为可执行文件)唯一的问题似乎是缺少tcl的DLL文件我不认为这是一个问题据我所知,问题是缺少tk的DLL文件如果它们是已知的,则可以在执行ocra时将它们包括在内有没有办法知道tk工作所需的DLL依赖项? 最佳答

  7. Ruby-vips 图像处理库。有什么好的使用示例吗? - 2

    我对图像处理完全陌生。我对JPEG内部是什么以及它是如何工作一无所知。我想知道,是否可以在某处找到执行以下简单操作的ruby​​代码:打开jpeg文件。遍历每个像素并将其颜色设置为fx绿色。将结果写入另一个文件。我对如何使用ruby​​-vips库实现这一点特别感兴趣https://github.com/ender672/ruby-vips我的目标-学习如何使用ruby​​-vips执行基本的图像处理操作(Gamma校正、亮度、色调……)任何指向比“helloworld”更复杂的工作示例的链接——比如ruby​​-vips的github页面上的链接,我们将不胜感激!如果有ruby​​-

  8. ruby-on-rails - NameError(未初始化常量 Unzipper::Zip)但仅在 Heroku 部署(Rails)上 - 2

    我有一个类unzipper.rb,它使用Rubyzip解压文件。在我的本地环境中,我可以成功解压缩文件,而无需使用require'zip'明确包含依赖项但是在Heroku上,我得到一个NameError(uninitializedconstantUnzipper::Zip)我只能通过使用明确的require来解决问题:为什么这在H​​eroku环境中是必需的,但在本地主机上却不是?我的印象是Rails自动需要所有gem。app/services/unzipper.rbrequire'zip'#OnlyrequiredforHeroku.Workslocallywithout!class

  9. arrays - 如何在下面的示例中将两个值数组分组为 n 个值数组? - 2

    我已经有很多两个值数组,例如下面的例子ary=[[1,2],[2,3],[1,3],[4,5],[5,6],[4,7],[7,8],[4,8]]我想把它们分组到[1,2,3],[4,5],[5,6],[4,7,8]因为意思是1和2有关系,2和3有关系,1和3有关系,所以1,2,3都有关系我如何通过ruby​​库或任何算法来做到这一点? 最佳答案 这是基本Bron–Kerboschalgorithm的Ruby实现:classGraphdefinitialize(edges)@edges=edgesenddeffind_maximum_

  10. ruby - Google-api-ruby-client 翻译 API 示例 - 2

    很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个

随机推荐