当前位置: 首页 > news >正文

Rancher实用篇-使用rancher,部署微服务应用

说到rancher,我们必须先了解一下k8s


一、k8s简介

Kubernetes(通常简写为 K8s)是一个开源的容器管理系统,由Google于2014年发起,并在2015年贡献给Cloud Native Computing Foundation (CNCF)进行维护。它基于Borg项目的经验开发而来,旨在自动化部署、扩展和管理容器化应用程序。

Kubernetes 的核心价值在于:

  • 容器编排:Kubernetes 可以跨多台主机集群高效地管理和调度容器化的应用服务。

  • 弹性伸缩:根据预定义的策略自动调整应用实例的数量,确保服务在高负载时有足够的资源处理请求,在低负载时释放资源以节省成本。

  • 服务发现与负载均衡:为容器提供统一的服务发现机制,并通过内部负载均衡器将流量分配到不同容器实例上。

  • 存储卷管理:支持多种类型的持久化存储,并能动态挂载到容器中,实现数据持久化。

  • 自我修复:监控并自动恢复失败的容器,确保服务的高可用性。

  • 配置与密钥管理:支持通过ConfigMaps和Secrets来管理和分发非代码配置及敏感信息。

  • 部署策略:允许用户灵活控制应用程序版本更新的方式,包括滚动更新、蓝绿部署等。

  • API驱动:拥有强大的API,使得整个系统可以被程序化地操控和扩展。

通过Kubernetes,开发者能够以声明式的方式描述应用的运行状态和期望行为,而Kubernetes会负责实现和维护这种状态,极大地简化了容器化应用的部署、运维和生命周期管理。Kubernetes不仅支持在公有云、私有云以及混合云环境中使用,还广泛应用于数据中心和其他计算平台

现在越来越多的企业开始使用k8s,导致集群太多,管理复杂度上升,于是引进各种流水线平台,此篇文章将以rancher为例,来部署一套应用程序


二、rancher简介

  1. Rancher 是一款企业级的容器管理平台,它提供了对多个Kubernetes集群以及其他容器编排系统的统一管理和操作界面。
  2. Rancher 旨在简化Kubernetes的部署和运维工作,通过提供图形用户界面(GUI)、API 和命令行工具来方便地创建、配置、管理和监控Kubernetes集群。
  3. Rancher不仅支持托管Kubernetes,还提供了额外的功能,如多租户、安全控制、网络策略管理、持续集成/持续部署(CI/CD)流程集成等高级功能。

综上所述,Kubernetes 是底层的容器编排引擎,而 Rancher 则是一个上层的管理平台,它可以利用并封装 Kubernetes 的能力,为用户提供更加友好和便捷的方式来使用和管理 Kubernetes 集群及其中的应用程序。

rancher的搭建非常简单,网上有非常多博主写过,大家可以去参考一下,这里我就使用现有的rancher集群来进行应用的部署了, 本文章将会介绍,部署应用中,会用到的菜单以及所对应的功能

好了, 废话不多说, 咱们开始使用rancher,来部署应用


三、部署微服务应用

3.1 登录rancher

这里的登录密码, 在你初始化的时候,会让你在登陆后修改一次,在不删除容器与镜像的情况下,记住你修改后的密码就可以了,咱们使用简体中文登录,方便理解

3.2 rancher主页

如果没有集群,则根据指引, 新建一个集群,步骤比较简单,这里就不详细描述了,如果你的集群搭建不成功,基本上是两个原因:
1. 机器资源不够大,不足以支撑rancher集群的运行

2. 机器之间的网络不互通

点击左上角的三条横杠,打开菜单

点击集群

3.3 命名空间

可以给每一个项目准备一个命名空间,这样每个项目就可以隔离开来

 

3.4 存储-密文

每个命名空间可以对应多个密文,每个密文可以存储一个信息,一般我们都是在这里存储镜像仓库地址,以及账户和密码等信息,在部署项目前,在这里先创建一个密文, 用来在部署时拉取镜像的凭证

3.5 存储-配置映射

所有你需要的配置文件,例如nginx.conf、xxx.yml文件,都可以在这里创建,在部署的时候直接使用

3.6 存储-持久卷声明

这里是创建你需要的挂载的,前提你有对应的持久卷,这个也要你自己根据项目的实际情况来创建

 

3.7 服务发现-Ingresses

这里是用来配置域名的,将对应的nginx与域名做映射,就可以通过域名,访问应用了

3.8 工作负载-Deployments

这里是部署的应用,点击创建,根据我的描述填写对应的值

资源配置

这里添加应用所需要的内存,和CPU大小

挂载文件

首先要切换到pod,存储里面,将之前配置的配置文件,或者存储卷先选中

然后在容器的存储列中,将对应的配置文件挂载到相应的位置

点击保存,rancher会自动拉取对应的镜像进行启动

接下来我用一个复杂点的应用,截图来进行一个示范:

1.先绑定存储文件

2.容器列中挂载文件

3.资源配置

4.配置启动的镜像、端口、启动参数等

5.配置环境变量

6.点击保存,查看Deployments  如果是active状态,代表此应用部署成功

上面已经详细的介绍了用到的一些配置,其他应用也完全是按照这样来就可以了,希望对大家有所帮助,如有错误请指正,有问题欢迎评论!

相关文章:

Rancher实用篇-使用rancher,部署微服务应用

说到rancher,我们必须先了解一下k8s 一、k8s简介 Kubernetes(通常简写为 K8s)是一个开源的容器管理系统,由Google于2014年发起,并在2015年贡献给Cloud Native Computing Foundation (CNCF)进行维护。它基于Borg项目的…...

爬取m3u8视频

网址:https://www.bhlsm.com/cupfoxplay/609-3-1/ 相关代码: #采集网址:https://www.bhlsm.com/cupfoxplay/609-3-1/ #正常视频网站:完整视频内容 # pip install pycryptodomex #流媒体文件:M3U8(把完整的…...

抖音视频抓取软件的优势|视频评论内容提取器|批量视频下载

抖音视频抓取软件在市场上的优势明显: 功能强大:我们的软件支持关键词搜索抓取和分享链接单一视频提取两种方式,满足用户不同的需求。同时,支持批量处理数据,提高用户获取视频的效率。 操作简单:我们的软件…...

apidoc接口文档的自动更新与发布

文章目录 一、概述二、环境准备三、接口文档生成1. 下载源码2. 初始化3.执行 四、文档发布五,配置定时运行六,docker运行 一、概述 最近忙于某开源项目的接口文档整理,采用了apidoc来整理生成接口文档。 apidoc是一个可以将源代码中的注释直…...

Oracle EBS R12.1 FA 批量计划外折旧

在资产工作台上可以进行单个资产的计划外折旧,如果进行批量计划外折旧的话就需要进行开发客户化form或者webadi 进行数据上载后调用FA 标准API了 以下是标准API的demo示例 DECLAREl_trans_rec FA_API_TYPES.trans_rec_type; l_asset_hdr_rec FA_API_TYPES.asset_hdr…...

15.3 基于深度学习的WiFi指纹低成本地点识别

文献来源:Nowicki M, Wietrzykowski J. Low-effort place recognition with WiFi fingerprints using deep learning[C]//Automation 2017: Innovations in Automation, Robotics and Measurement Techniques 1. Springer International Publishing, 2017: 575-584. 摘要 使…...

Git基本操作(1)

Git基本操作(1) 初始化git本地仓库git本地仓库配置git config user.name 和git config user.emailgit config --unset user.name和git config --unset user.emailgit config --global 认识工作区,暂存区,版本库更深层次理解 git a…...

k8s-helm部署应用 19

Helm部署nfs-client-provisioner(存储类): 预先配置好外部的NFS服务器 部署 Helm部署nginx-ingress应用: 添加下载ingress 拉取 解开并修改 部署 测试 回收 helm部署metrics-server: 清除之前的metrics部署 下载…...

OGG-00918 映射中缺少键列 id.

2024-02-23 14:54:49 INFO OGG-02756 从线索文件获取了表 GISTAR.PXPH_PON_ROUTE 的定义。. The following columns did not default because of type mismatches: id OGG-00918 映射中缺少键列 id. 目标端有字段ID,由于mysql自增,所以只能是b…...

QT_day4

1.思维导图 2. 输入闹钟时间格式是小时:分钟 widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);id startTimer(1000);flag1;speecher new QTextT…...

Spring Boot应用集成Actuator组件以后怎么自定义端点暴露信息

一、 前言 在平时业务开发中,我们往往会在spring Boot项目中集成Actuator组件进行系统监控,虽然Actuator组件暴露的端点信息已经足够丰富了,但是特殊场景下,我们也需要自己暴露端点信息,此时应该怎么操作呢&#xff1…...

C# CAD备忘录

Document doc Application.DocumentManager.MdiActiveDocument; Database db doc.Database; Editor ed doc.Editor; 1、获取打开cad文件-文件路径 string fileName db.Filename;//文件名 输出结果 fileName “L:\目录\200401.dwg” 2、获取打开cad文件-文件名称 string fi…...

【数据结构】排序(2)

目录 一、快速排序: 1、hoare(霍尔)版本: 2、挖坑法: 3、前后指针法: 4、非递归实现快速排序: 二、归并排序: 1、递归实现归并排序: 2、非递归实现归并排序: 三、排序算法…...

HarmonyOS开发行业前景就业分析与实例解析

HarmonyOS的简介 鸿蒙系统(HarmonyOS)是华为公司自主研发的一种全场景分布式操作系统,旨在为各种设备提供统一的开发和运行环境。它的编程基础主要建立在多种技术和语言之上,包括鸿蒙系统的核心框架和应用程序开发框架。 本章将…...

Elasticsearch:创建自定义 ES Rally tracks 的分步指南

作者:Alejandro Snchez 按照这个综合教程学习如何制作个性化的 Rally tracks ES Rally 是什么?它的用途是什么? ES Rally 是一个用于在 Elasticsearch 上测试性能的工具,允许你运行和记录比较测试。 做出决策可能很困难&#x…...

5分钟JavaScript快速入门

目录 一.JavaScript基础语法 二.JavaScript的引入方式 三.JavaScript中的数组 四.BOM对象集合 五.DOM对象集合 六.事件监听 使用addEventListener()方法添加事件监听器 使用onX属性直接指定事件处理函数 使用removeEventListener()方法移除事件监听器 一.JavaScript基础…...

如何使用IP代理解决亚马逊账号IP关联问题?

亚马逊账号IP关联问题是指当同一个IP地址下有多个亚马逊账号进行活动时,亚马逊会将它们关联在一起,从而可能导致账号被封禁或限制。 为了避免这种情况,许多人选择使用IP代理。 IP代理为什么可以解决亚马逊IP关联问题? IP代理是…...

opencv之cvScalar

CV_INLINE CvScalar cvScalar( double val0, double val1 CV_DEFAULT(0), double val2 CV_DEFAULT(0), double val3 CV_DEFAULT(0)) { CvScalar scalar; scalar.val[0] val0; scalar.val[1] val1; scalar.val[2] val2; scalar.val[3] val3; return scalar; } 该函数的…...

通过 GithubActions 实现自动化部署 Hexo

一、在自己电脑上新建一个文件夹,打开 git bash here,输入以下命令 # 生成秘钥 ssh-keygen -f github-deploy-key之后会生成两个文件, 一个私钥文件为:github-deploy-key; 另一个公钥文件为:github-deploy-key.pub …...

如何快速导出vercel project中的环境变量

我在vercel中集成了某些插件或者链接了数据库,要如何快速的导出这些环境变量呢? 具体方法如下: npm i -g vercelvercel linkvercel env pull .env.local首先是安装vercel然后登录vercel 最后拉取环境变量到.env.local...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

ip子接口配置及删除

配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...

Go语言多线程问题

打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...