• 【云原生】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是具体的版本号。

    1. [root@rancher ~]#docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7
    2. bffc75ab763fc0fc43f87a159ec1cd98f450ce8a6b0c336e28c123b78cc142d1
    3. [root@rancher ~]#docker ps
    4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    5. 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节点上执行复制的命令

    1. [root@master01 rancher]#curl --insecure -sfL https://192.168.83.60/v3/import/kvcpwhv4r5rlqbvccgznpxkmrkmmd9bzvl5nc46n2t9zjhs6rtttps_c-s2frn.yaml | kubectl apply -f -
    2. error: no objects passed to apply
    3. #第一次失败,需要再执行一次
    4. [root@master01 rancher]#curl --insecure -sfL https://192.168.83.60/v3/import/kvcpwhv4r5rlqbvccgznpxkmrkmmd9bzvl5nc46n2t9zjhs6rtttps_c-s2frn.yaml | kubectl apply -f -
    5. clusterrole.rbac.authorization.k8s.io/proxy-clusterrole-kubeapiserver created
    6. clusterrolebinding.rbac.authorization.k8s.io/proxy-role-binding-kubernetes-master created
    7. namespace/cattle-system created
    8. serviceaccount/cattle created
    9. clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding created
    10. secret/cattle-credentials-a0245e9 created
    11. clusterrole.rbac.authorization.k8s.io/cattle-admin created
    12. deployment.apps/cattle-cluster-agent created
    13. ------------------------------------------------------------------------------------
    14. [root@master01 rancher]#kubectl get ns cattle-system
    15. NAME STATUS AGE
    16. cattle-system Active 118s
    17. [root@master01 rancher]#kubectl get all -n cattle-system
    18. NAME READY STATUS RESTARTS AGE
    19. pod/cattle-cluster-agent-7cc4d8b7df-cjpwk 1/1 Running 0 59s
    20. NAME READY UP-TO-DATE AVAILABLE AGE
    21. deployment.apps/cattle-cluster-agent 1/1 1 1 2m33s
    22. NAME DESIRED CURRENT READY AGE
    23. replicaset.apps/cattle-cluster-agent-54b795cff7 0 0 0 2m33s
    24. 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服务器中查看

    1. [root@master01 ~]#kubectl get ns rancher-test
    2. NAME STATUS AGE
    3. 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服务器中查看

    1. [root@master01 ~]#kubectl get deployments.apps,pod -n rancher-test
    2. NAME READY UP-TO-DATE AVAILABLE AGE
    3. deployment.apps/nginx-rancher-test 3/3 3 3 80s
    4. NAME READY STATUS RESTARTS AGE
    5. pod/nginx-rancher-test-6978bb677f-4ngph 1/1 Running 0 80s
    6. pod/nginx-rancher-test-6978bb677f-dptg5 1/1 Running 0 80s
    7. 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服务器中查看

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

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

    8.其它操作

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

    例如添加通知

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

  • 相关阅读:
    【C++】map和set——树形结构的关联式容器
    java毕业设计打车拼车系统服务端Mybatis+系统+数据库+调试部署
    kafka集群与redis集群的概念对应关系
    4.多层感知机-3GPT版
    vue-(5)
    ElementUI动态树,数据表格以及分页的实现
    springBoot整合讯飞星火认知大模型
    谷歌插件笔记06——安全,请求和沙盒
    Spring Web MVC
    ClickHouse(03)ClickHouse怎么安装和部署
  • 原文地址:https://blog.csdn.net/hy199707/article/details/139649394