【云原生】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          59s

NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/cattle-cluster-agent   1/1     1            1           2m33s

NAME                                              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           80s

NAME                                      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           6m6s

NAME                                      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          6m6s

NAME                        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管理方案。

  • 33
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值