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

【云原生】Kubernetes----Rancher助力Kubernetes监控

目录

引言

一、为什么需要监控K8s集群?

二、Rancher监控K8s集群的优势

三、Rancher和k8s的区别

四、Rancher 安装及配置

(一)安装rancher

1.下载镜像

2.运行容器

3.登录Rancher平台

4.添加集群

5.查看集群

6.Rancher 部署监控系统

7.使用Rancher仪表盘管理 k8s 集群

7.1 创建名称空间

7.2 创建Deployment资源

7.3 创建 service

7.4 访问测试

8.其它操作


引言

随着容器化技术的快速发展,Kubernetes已经成为企业部署和管理微服务、云原生应用的首选。然而,随着集群规模的扩大和复杂性的增加,如何有效地监控K8s集群的性能、资源使用情况以及应用的健康状况,成为了运维人员必须面对的挑战。Rancher作为一款开源的企业级K8s管理平台,提供了强大的监控能力,帮助用户实现集群的全方位掌控。

一、为什么需要监控K8s集群?

监控K8s集群的重要性不言而喻。首先,通过监控可以实时了解集群的资源使用情况,包括CPU、内存、磁盘、网络等关键指标,从而确保集群的稳定性和可用性。其次,监控可以帮助运维人员快速发现集群中的异常和故障,及时进行干预和修复,避免业务中断。此外,监控还可以为集群的扩容、优化和迁移提供数据支持,帮助企业实现更高效的资源利用和管理

二、Rancher监控K8s集群的优势

Rancher作为一款集成化的K8s管理平台,为用户提供了全面的监控能力。以下是Rancher监控K8s集群的几个优势:

易用性:Rancher提供了直观的图形化界面,用户可以通过简单的操作就能实现对集群的实时监控和告警管理。

灵活性:Rancher支持多种监控插件和工具,如Prometheus、Grafana等,用户可以根据自己的需求选择合适的监控方案。

可扩展性:Rancher的监控能力可以随着集群规模的扩大而扩展,满足各种规模的K8s集群监控需求。

安全性:Rancher遵循严格的权限管理策略,确保只有授权的用户才能访问和修改监控数据。

官网:https://docs.rancher.cn/

三、Rancher和k8s的区别

Rancher 和 k8s 都是用来作为容器的调度与编排系统。但是 rancher 不仅能够管理应用容器,更重要的一点是能够管理 k8s 集群。 Rancher2.x 底层基于 k8s 调度引擎,通过 Rancher 的封装,用户可以在不熟悉 k8s 概念的情况下轻松的通过 Rancher 来部署容器到k8s集群当中。

四、Rancher 安装及配置

环境准备

主机名IP地址主机类型资源配额
master01192.168.83.30k8s集群控制节点4C4G
node01192.168.83.40k8s集群工作节点4C4G
node02192.168.83.50k8s集群工作节点4C4G
rancher192.168.83.60Rancher节点4C8G

(一)安装rancher

1.下载镜像

//在master01节点下载rancher-agent镜像
[root@master01 rancher]#docker pull rancher/rancher-agent:v2.5.7

//在 rancher 节点下载 rancher 镜像
[root@rancher ~]#docker pull rancher/rancher:v2.5.7

2.运行容器

在Rancher节点,即服务端,进行操作

docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7

#运行容器

------------------------------------------------------------------------------------------------------------------------

docker run: Docker命令,用于创建并运行一个新的容器。

-d: 这个标志表示在后台运行容器。

--restart=unless-stopped: 这个选项设置了容器的重启策略。当Docker守护进程重启时,这个容器将被重新启动,除非它之前被用户手动停止了。

-p 80:80: 这个参数用于发布容器内部的端口到宿主机。这里,容器内的80端口映射到了宿主机的80端口,允许外部访问容器运行的服务。同样地,-p 443:443用于HTTPS流量

--privileged: 这个标志给予容器更多的权限,相当于root权限。它允许容器访问更多的宿主机资源,例如设备访问。

--name rancher: 这个选项指定了容器的名字。给容器命名可以帮助管理和识别特定的容器。

rancher/rancher:v2.5.7: 这是容器镜像的仓库名和标签。rancher/rancher是Rancher官方提供的Docker镜像仓库,v2.5.7是具体的版本号。

[root@rancher ~]#docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7
bffc75ab763fc0fc43f87a159ec1cd98f450ce8a6b0c336e28c123b78cc142d1
[root@rancher ~]#docker ps
CONTAINER ID   IMAGE                    COMMAND           CREATED         STATUS         PORTS                                                                      NAMES
bffc75ab763f   rancher/rancher:v2.5.7   "entrypoint.sh"   4 seconds ago   Up 2 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   rancher

3.登录Rancher平台

浏览器访问Rancher服务端IP地址,由于没有SSL证书,忽略直接进入即可

第一次访问可能会拒绝,需要刷新界面,而后选择中文,输入密码,默认用户名称为admin

登录后如是英文页面,可点击右下角语言选项选择中文

4.添加集群

Rancher 管理已存在的 k8s 集群
选择【添加集群】,点击【导入】
【集群名称】设置为 k8s-cluster,点击【创建】
选择复制第三条命令绕过证书检查导入 k8s 集群

在master01节点上执行复制的命令

[root@master01 rancher]#curl --insecure -sfL https://192.168.83.60/v3/import/kvcpwhv4r5rlqbvccgznpxkmrkmmd9bzvl5nc46n2t9zjhs6rtttps_c-s2frn.yaml | kubectl apply -f -
error: no objects passed to apply
#第一次失败,需要再执行一次
[root@master01 rancher]#curl --insecure -sfL https://192.168.83.60/v3/import/kvcpwhv4r5rlqbvccgznpxkmrkmmd9bzvl5nc46n2t9zjhs6rtttps_c-s2frn.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-a0245e9 created
clusterrole.rbac.authorization.k8s.io/cattle-admin created
deployment.apps/cattle-cluster-agent created
------------------------------------------------------------------------------------
[root@master01 rancher]#kubectl get ns cattle-system
NAME              STATUS   AGE
cattle-system     Active   118s
[root@master01 rancher]#kubectl get all -n cattle-system 
NAME                                        READY   STATUS    RESTARTS   AGE
pod/cattle-cluster-agent-7cc4d8b7df-cjpwk   1/1     Running   0          59sNAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/cattle-cluster-agent   1/1     1            1           2m33sNAME                                              DESIRED   CURRENT   READY   AGE
replicaset.apps/cattle-cluster-agent-54b795cff7   0         0         0       2m33s
replicaset.apps/cattle-cluster-agent-7cc4d8b7df   1         1         1       59s

5.查看集群

6.Rancher 部署监控系统

点击【启用监控以查看实时监控】
【监控组件版本】选择 0.2.1,其他的默认即可
点击【启用监控】,启动监控时间可能比较长,需要等待10分钟左右

7.使用Rancher仪表盘管理 k8s 集群

点击【仪表盘】进入 k8s 集群仪表盘界面

7.1 创建名称空间

#创建名称空间 namespace
点击左侧菜单【Namespaces】,再点击右侧【Create】
【Name】输入 rancher-test,【Description】选填可自定义
点击右下角【Create】

在master01服务器中查看

[root@master01 ~]#kubectl get ns rancher-test 
NAME           STATUS   AGE
rancher-test   Active   37s
7.2 创建Deployment资源

创建 Deployment 资源
点击左侧菜单【Deployments】,再点击右侧【Create】
【Namespace】下拉选择rancher-test ,【Name】输入 nginx-rancher-test,【Replicas】输入 3
点击中间选项【Container】,【Container Image】输入 nginx:1.18.0,【Pull Policy】选择 IfNotPresent
在【Pod Labels】下点击【Add Lable】,【Key】输入 app,【Value】输入 nginx
点击中间选项【Labels and Annotations】,点击【Add Label】,【Key】输入 app,【Value】输入 nginx
点击右下角【Create】

在master01服务器中查看

[root@master01 ~]#kubectl get deployments.apps,pod -n rancher-test 
NAME                                 READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx-rancher-test   3/3     3            3           80sNAME                                      READY   STATUS    RESTARTS   AGE
pod/nginx-rancher-test-6978bb677f-4ngph   1/1     Running   0          80s
pod/nginx-rancher-test-6978bb677f-dptg5   1/1     Running   0          80s
pod/nginx-rancher-test-6978bb677f-qzx5n   1/1     Running   0          80s
7.3 创建 service

点击左侧菜单【Services】,再点击右侧【Create】
点击【Node Port】
【Namespace】下拉选择 rancher-test,【Name】输入 nginx-rancher-svc
【Port Name】输入 web,【Listening Port】输入 80,【Target Port】输入 80,【Node Port】输入 32000
点击中间选项【Selectors】,【Key】输入 app,【Value】输入 nginx
点击右下角【Create】
点击【nginx-rancher-test】查看 service 是否已关联上 Pod

在master01服务器中查看

[root@master01 ~]#kubectl get deployments.apps,pod,svc -n rancher-test 
NAME                                 READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx-rancher-test   3/3     3            3           6m6sNAME                                      READY   STATUS    RESTARTS   AGE
pod/nginx-rancher-test-6978bb677f-4ngph   1/1     Running   0          6m6s
pod/nginx-rancher-test-6978bb677f-dptg5   1/1     Running   0          6m6s
pod/nginx-rancher-test-6978bb677f-qzx5n   1/1     Running   0          6m6sNAME                        TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
service/nginx-rancher-svc   NodePort   10.96.136.41   <none>        80:32000/TCP   35s
7.4 访问测试

访问集群任意节点的32000端口

8.其它操作

管理告警通知:Rancher支持多种告警通知方式,如邮件、Slack等。用户可以设置告警规则,当集群中的某个指标超过阈值时,系统将自动发送告警通知给指定的接收者。

例如添加通知

通过Rancher的监控功能,用户可以实现对K8s集群的全方位掌控。无论是实时查看集群状态、快速定位故障还是进行性能优化,Rancher都能提供有力的支持。随着容器化技术的不断发展,Rancher将继续优化和完善其监控能力,为企业提供更加稳定、高效和安全的K8s管理方案。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 开发uniapp 小程序时遇到的问题
  • DeepSORT(目标跟踪算法) 卡尔曼滤波 状态向量是如何映射到观测向量(测量向量)的即观测矩阵的构建方式
  • MySQL怎么为表添加描述
  • PR插件-图层抖动弹跳缩放旋转模糊闪烁缩放抖动动作效果预设
  • spring管理的对象通过@Init注解修饰的方法不会在new对象的时候触发
  • 【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(二)
  • css3新增的伪类有哪些
  • mysql8.0 sql_mode与ONLY_FULL_GROUP_BY报错
  • 《广告数据定量分析》核心内容——搜索广告投放优化方法
  • 湖州等保测评公司有几家?在那里?电话多少?
  • mtk镜像签名
  • 13600KF+3060Ti,虚拟机安装macOS 14,2024年6月
  • java算法:快速排序
  • 车载网络安全指南 概述(一)
  • PHP实名认证接口开发示例、银行卡实名认证API
  • SegmentFault for Android 3.0 发布
  • 收藏网友的 源程序下载网
  • 【剑指offer】让抽象问题具体化
  • ERLANG 网工修炼笔记 ---- UDP
  • go append函数以及写入
  • JSONP原理
  • Just for fun——迅速写完快速排序
  • Node 版本管理
  • Redux系列x:源码分析
  • SOFAMosn配置模型
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • Vim Clutch | 面向脚踏板编程……
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 从输入URL到页面加载发生了什么
  • 来,膜拜下android roadmap,强大的执行力
  • 离散点最小(凸)包围边界查找
  • 强力优化Rancher k8s中国区的使用体验
  • 全栈开发——Linux
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • #### golang中【堆】的使用及底层 ####
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (13):Silverlight 2 数据与通信之WebRequest
  • (4)logging(日志模块)
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .libPaths()设置包加载目录
  • .Net 4.0并行库实用性演练
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET CLR Hosting 简介
  • .NET Framework杂记
  • .net 发送邮件
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化