22、Kubernetes核心技术 - 整合Rancher通过界面管理k8s集群

news2024/11/24 16:58:41

目录

一、概述

二、Rancher API Server 的功能

2.1、授权和角色权限控制

2.2、使用 Kubernetes 的功能

2.3、配置云端基础信息

2.4、查看集群信息

三、Rancher 安装

3.1、前置环境

3.2、通过 Docker 来进行安装Rancher

3.3、在 Rancher 的界面上绑定k8s集群

3.4、在 Rancher 上部署应用


一、概述

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

Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,自动创建节点并安装 Kubernetes 集群,或者导入任何已经存在的 Kubernetes 集群。

Rancher 通过支持集群的身份验证和基于角色的访问控制(RBAC),使系统管理员能够从一个位置控制全部集群的访问。Rancher 可以对集群及其资源进行详细的监控和并在需要时发送告警,也可以将容器日志发送给外部日志系统,并通过应用商店与 Helm 集成。如果您具有外部 CI/CD 流水线系统,则可以将其与 Rancher 对接,如果没有,Rancher 也提供了简单易用的流水线来帮助您自动部署和升级工作负载。除此之外,Rancher 还有很多开箱即用的功能来帮助您更好的管理集群和业务应用,例如多集群应用,全局 DNS,服务网格,安全扫描,集群模版和基于 OPA 的策略管理等功能。

总而言之,Rancher 是一个全栈式的 Kubernetes 容器管理平台,也是一个可以在任何地方都能成功运行 Kubernetes 的工具。

二、Rancher API Server 的功能

Rancher API Server 是基于嵌入式 Kubernetes API Server 和 ETCD 数据库建立的,它提供了以下功能:

2.1、授权和角色权限控制

  • 用户管理: Rancher API server 除了管理用户在公司内部的使用的认证信息之外,还管理用户访问外部服务所需的认证信息,如登录活动目录或 GitHub 所需的账号密码。
  • 授权: Rancher API server 负责管理权限控制策略 和 安全策略。

2.2、使用 Kubernetes 的功能

  • 运行 Kubernetes 集群: Rancher API server 可以在已有节点上运行 Kubernetes 集群 ,或对 Kubernetes 进行版本升级。
  • 应用商店管理: Rancher 可以使用Helm Charts 应用商店重复部署应用。
  • 项目管理: 项目,是 Rancher 中的一个概念,Kubernetes 中并没有这个概念。项目由一个集群内的多个命名空间和多个访问控制策略组成,允许用户以组为单位,一次管理多个命名空间,对其进行 Kubernetes 相关操作。Rancher 用户界面提供了 项目管理 和 项目内应用管理 两个功能。
  • 流水线: 流水线 可以帮助开发者快速高效地上线新软件。Rancher 支持给每一个项目单独配置流水线。
  • Istio: Rancher 与 Istio 集成,管理员或集群所有者可以将 Istio 交给开发者,然后开发者使用 Istio 执行安全策略,排查问题,或为快速发布、灰度发布和 A/B 测试进行流量控制。

2.3、配置云端基础信息

  • 同步节点信息: Rancher API server 可以同步集群内所有节点的信息。
  • 配置云端基础信息: 当 Rancher 与云服务提供商配置完了之后,可以在云端动态配置新节点和持久化存储。

2.4、查看集群信息

  • 日志: Rancher 可以跟多种主流日志工具集成,您可以设置 Rancher 日志。
  • 监控: 使用 Rancher,您可以通过 Prometheus 监控集群节点、Kubernetes 组件、软件部署的状态和进度。您可以设置 集群监控 或 项目监控。
  • 告警信息: 您需要随时知道集群和项目的计划和非计划事件,才可以提高公司的运行效率。

三、Rancher 安装

3.1、前置环境

我们需要事先安装好Kubernetes集群,如果还没搭建k8s集群的话,可以参考前面使用kubeadm搭建k8s集群的文章:

3.2、通过 Docker 来进行安装Rancher

这里我们选择在master节点上(10.0.91.200)安装Rancher:

$ docker run --privileged -d --name rancher --restart=unless-stopped -p 80:80 -p 443:443 -v /opt/rancher:/var/lib/rancher rancher/rancher:v2.5.11
Unable to find image 'rancher/rancher:v2.5.11' locally
v2.5.11: Pulling from rancher/rancher
284055322776: Pull complete 
19763da17d52: Pull complete 
dcba38686409: Pull complete 
e29446e69556: Pull complete 
e0edee3cdc12: Pull complete 
6daa78a2ec74: Pull complete 
e3a3c6bc780d: Pull complete 
6c4f773f88b6: Pull complete 
c5e890fd9374: Pull complete 
85ceb4a5a420: Pull complete 
dfecfc72402d: Pull complete 
c772cfbd0e5b: Pull complete 
8c4865378f10: Pull complete 
71cc47c5d0b5: Pull complete 
457a5bbc46e0: Pull complete 
01ed63f2c8ee: Pull complete 
a7a970f5b9d3: Pull complete 
Digest: sha256:e924341c2c1a60d3551729f87a7ba43b015e3c6bf11d1e41d1517dac2f76fc94
Status: Downloaded newer image for rancher/rancher:v2.5.11
a8c61b91aa1236e20910aa3530d0a3486658804d4c2337f70434e2a306ee9c5f

$ docker ps | grep rancher
a8c61b91aa12   rancher/rancher:v2.5.11                               "entrypoint.sh"          About a minute ago   Up About a minute   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   rancher
  • --privileged:可以使我们启动的容器用 root 的方式启动(在 Rancher 2.5 版本以上需要加)
  • --restart:重启策略,我们配置的是 unless-stopped,表示当容器退出时,便会重新启动容器(除非容器之前就处于停止)

3.3、在 Rancher 的界面上绑定k8s集群

我们看到rancher的容器已经运行成功,接着我们在浏览器访问:https://10.0.91.200。

Rancher的默认用户名是admin,我们首先需要为admin设置密码。

点击Continue,进入Rancher启动页:

接下来需要配置 Kubernetes 集群:

点击Add Cluster,

这里我们选择Other Cluster类型:

点击Create创建k8s集群。

这里有三种方式,因为我们使用的是自定义的k8s集群,所以使用第三种方式,将上述红框内的命令,复制到k8s集群中master节点上(10.0.91.200)执行。

[root@master ~]# curl --insecure -sfL https://10.0.91.200/v3/import/l5r9r2pztdqfmdqgmgrdxbl9w7htwslxxmk5vqz8j9fzqq69nw6ddr_c-ntshf.yaml | kubectl apply -f -
clusterrole.rbac.authorization.k8s.io/proxy-clusterrole-kubeapiserver created
clusterrolebinding.rbac.authorization.k8s.io/proxy-role-binding-kubernetes-master created
namespace/cattle-system created
serviceaccount/cattle created
clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding created
secret/cattle-credentials-f206fee created
clusterrole.rbac.authorization.k8s.io/cattle-admin created
deployment.apps/cattle-cluster-agent created

[root@master ~]# kubectl get pod -n cattle-system
NAME                                    READY   STATUS    RESTARTS   AGE
cattle-cluster-agent-665b5f4b99-8xdvg   1/1     Running   0          2m27s

执行完之后,可以看到,它创建了一些集群角色、命令空间、Secret、Deployment等对象。

我们再次回到Rancher集群页面,可以看到,kubernetes这个集群已经成功创建出来了,并且状态也是Active。

点击Explorer,这是Rancher提供给我们的仪表盘,可以监控集群的一些资源使用情况。

3.4、在 Rancher 上部署应用

点击Create创建工作负载,根据需要填写具体的信息:

点击Create创建Deployment。稍等一会后,可以看到,nginx这个工作负载状态已经变成Active了,并且也成功创建了两个nginx的副本。

验证nginx是否正常访问,因为我们使用的NodePort方式暴露nginx服务,所以我们可以使用集群中任何一台节点的【IP地址:30090】访问到nginx。

可以看到,成功访问到nginx,以上就是通过Rancher整合自定义的k8s集群,实现通过界面管理k8s集群,方便了许多。

更多关于Rancher的使用,请参照Rancher官方文档:Rancher文档 | K8S文档 | Rancher | Rancher文档

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

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

相关文章

redis 主从同步和故障切换的几个坑

数据不一致 当我们从节点读取一个数据时,和主节点读取的数据不一致,这是因为主从同步的命令是异步进行的,一般情况下是主从同步延迟导致的,为什么会延迟, 主要二个原因 1、网络状态不好 2、网络没问题,从节…

java 项目使用 activi 设计流程,流程线上设置条件表达式时出现以下错误

项目场景: 背景: java 项目使用 activi 设计流程,流程线上设置条件表达式后,保存时出现错误 问题描述 问题: java 项目使用 activi 设计流程,流程线上设置条件表达式后,保存时出现以下错误&…

Matlab 之数据分布拟合

文章目录 Part.I IntroductionPart.II Distribution Fitter APP 的使用Chap.I APP 简介Chap.II 简单使用 Part.III 通过代码实现分布拟合Chap.I 基于 fitdist 函数Chap.II 获取数据的频率分布后进行曲线拟合 Reference Part.I Introduction 本文主要介绍了如何使用 Matlab 对数…

Linux学习记录——삼십팔 网络层IP协议

文章目录 1、了解IP协议2、IP协议报文1、8位服务类型2、16位总长度(字节数)3、8位生存时间(TTL) 3、网段划分1、网段划分和CIDR方案2、子网划分简单方法3、IP地址问题的解决方案 4、公网内网1、内网分配2、运营商管理方法 5、路由…

2024年3月10日PMI认证考试的报名时间确定!

⏰中国大陆地区2024年第1期PMI认证考试于3月10日举办 ⏰报名时间: 为减少同一时间集中报名造成的网络拥堵,本次报名将采取以下形式分地区、分批次开放报名。👇 1️⃣第1批报名城市:⏰2024年1月11日10:00至1月18日16:00&#xff0c…

【昕宝爸爸定制】如何将集合变成线程安全的?

如何将集合变成线程安全的? ✅典型解析🟢拓展知识仓☑️Java中都有哪些线程安全的集合?🟠线程安全集合类的优缺点是什么🟡如何选择合适的线程安全集合类☑️如何解决线程安全集合类并发冲突问题✔️乐观锁实现方式 (具体步骤)。✅…

基于 Validator 类实现 ParamValidator,用于校验函数参数

目录 一、前置说明1、总体目录2、相关回顾3、本节目标 二、操作步骤1、项目目录2、代码实现3、测试代码4、日志输出 三、后置说明1、要点小结2、下节准备 一、前置说明 1、总体目录 《 pyparamvalidate 参数校验器,从编码到发布全过程》 2、相关回顾 使用 TypeV…

dubbo的springboot集成

1.什么是dubbo? Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo …

vmlinux, System.map; cmake的find_package(Clang)产生的变量们; geogebra单位切向量(简单例子)

linux4.15.y内核中的函数个数 依赖关系: vmlinux, vmlinux.bin, bzImage cd /bal/linux-stable/ file vmlinux #vmlinux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, BuildID[sha1]b99bbd9dda1ec2751da246d4a7ae4e6fcf7d789b, not str…

Git远端删除的分支,本地依然能看到 git remote prune origin

在远端已经删除ylwang_dev_786等三四个分支,本地git branch -a 时 依然显示存在。 执行 git remote show origin 会展示被删除的那些分支 当你在Git远程仓库(如GitLab)上删除一个分支后,这个变更不会自动同步到每个开发者的本地…

【教学类-45-01】X-Y之间的“三连加“题(a+b+c=)

作品展示: 背景需求: 我常去的大4班孩子们基本都适应了0-5之间的加法题,做题速度极快。 为了增加“花样”,吸引幼儿参与,修改参数,从二连加12变为三连加111。 素材准备: 代码重点 代码展示 X-Y 之间的3…

springboot基于java的小区物业管理系统(保安巡逻绿化消防)设计+jsp

小区物业管理系统采用的是JAVA语言开发,利用MySQL为数据库, 使用IDEA平台来编写代码,框架方面选择的是springbootweb框架,采用B/S结构实现系统。本系统的设计与开发过程中严格遵守软件工程的规范,运用软件设计模式&…

uniapp最简单的底部兼容安全区域显示

效果图&#xff1a; 1.html写上动态padding-bottom <view class"button-wrap" :style"padding-bottom:bottomPaddingrpx"><view class"com-btn cencel-btn">取消</view><view class"com-btn confirm-btn " cl…

Xcalibur软件Qual Brower程序的使用

找到Qual Brower&#xff1a;在System>Program里 打开采集的数据文件*.RAW&#xff0c;软件界面主窗口能查看色谱图和质谱图&#xff1a; 1、图形的放大和拷贝、色谱中查看峰的质谱信息&#xff1a; 点亮如图图像右上角的按钮&#xff0c;可以激活该图形并进行操作&#x…

前端 Node 项目迁徙为桌面 Electron 应用笔记

起因 我的服务器到期了&#xff0c;服务器上有几个服务&#xff0c;人家问这几个网站怎么不好使了&#xff0c;奈何服务器续费太贵租不起了… 但是服务还是要提供的&#xff0c;所以我在想如何把 node 的项目变成桌面端应用&#xff0c;于是有了这个笔记 效果展示 页面没啥…

强化学习10——免模型控制Q-learning算法

Q-learning算法 主要思路 由于 V π ( s ) ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V_\pi(s)\sum_{a\in A}\pi(a\mid s)Q_\pi(s,a) Vπ​(s)∑a∈A​π(a∣s)Qπ​(s,a) &#xff0c;当我们直接预测动作价值函数&#xff0c;在决策中选择Q值最大即动作价值最大的动作&…

如何寻找到相对完整的真正的游戏的源码 用来学习?

在游戏开发的学习之路上&#xff0c;理论与实践是并重的两个方面。对于许多热衷于游戏开发的学习者来说&#xff0c;能够接触到真实的、完整的游戏源码无疑是一个极好的学习机会。但问题来了&#xff1a;我们该如何寻找到这些珍贵的资源呢&#xff1f; 开源游戏项目 GitHub:地…

BUUCTF ---> Encrypto

转眼就一月十号了&#xff0c;本来今天不想更的&#xff0c;&#xff08;因为我懒&#xff09;是因为明天要考python&#xff0c;好像还不止 但是呢&#xff0c;发现BUUCTF的密码学模块刚好可以用到py的脚本&#xff0c;那就当时复习一下吧&#xff01;&#xff01; 这里就要介…

http跟https有什么区别?

HTTPS和HTTP的概念&#xff1a; HTTP&#xff1a;是互联网上应用最为广泛的一种网络协议&#xff0c;是一个客户端和服务器端请求和应答的标准&#xff08;TCP&#xff09;&#xff0c;用于从WWW服务器传输超文本到本地浏览器的传输协议&#xff0c;它可以使浏览器更加高效&am…

2024--Django平台开发-Django知识点(六)

day06 Django知识点 今日概要&#xff1a; Form和ModelForm组件【使用】【源码】缓存【使用】ORM【使用】其他&#xff1a;ContentTypes、Admin、权限、分页、信号等 1.Form和ModelForm组件 背景&#xff1a;某个公司后台管理项目。 垃圾 def register(request):"&quo…