• K8S:Rancher管理 Kubernetes 集群


    一.Rancher 简介

    1.Rancher概念

    Rancher 是一个开源的企业级多集群 Kubernetes 管理平台,实现了 Kubernetes 集群在混合云+本地数据中心的集中部署与管理, 以确保集群的安全性,加速企业数字化转型。超过 40000 家企业每天使用 Rancher 快速创新。

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

    2.Rancher 和 k8s 的区别

    Rancher 和 k8s 都是用来作为容器的调度与编排系统。但是 rancher 不仅能够管理应用容器,更重要的一点是能够管理 k8s 集群

    Rancher2.x 底层基于 k8s 调度引擎,通过 Rancher 的封装,用户可以在不熟悉 k8s 概念的情况下轻松的通过 Rancher 来部署容器到k8s集群当中。

    二.Rancher 安装及配置

    实验环境

    节点主机名IP地址
    控制节点master01192.168.198.11
    工作节点node01192.168.198.12
    工作节点node02192.168.198.13
    Rancher节点rancher192.168.198.14

    1.安装 rancher

    #在 master01 节点下载 rancher-agent 镜像
    docker pull rancher/rancher-agent:v2.5.7
    
    • 1
    • 2
    #在 rancher 节点下载 rancher 镜像,rancher这台机器需要有docker容器
    docker pull rancher/rancher:v2.5.7
    #在 rancher 节点
    docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7
    #--restart=unless-stopped 表示在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
    
    • 1
    • 2
    • 3
    • 4
    • 5

    创建的时候出现以下:

    docker run -d --restart=unless-stopped -p 80:80 -p 8443:443 --privileged --name rancher rancher/rancher:v2.5.7
    6631fe2a0f913dde14b7b650738dab5ef85f34ee918e6341204f7fb4a8bc0471
    docker: Error response from daemon: driver failed programming external connectivity on endpoint rancher (cedbda15ce8b48fc5e90c5ca2262958d5fb0dc731bad30bfdb430e505d9cd8c6): Bind for 0.0.0.0:80 failed: port is already allocated.

    是端口号被占用了,可以停止删除之前的端口号或者换其他的端口即可,此处是将之前的端口号停止删除

    docker ps #查看存在容器并找到端口号

    docker stop #停止容器

    docker rm #删除容器

    此处使用停止容器

    docker stop e531c7774eb8

    docker ps #查看已经没有80端口及443端口的容器存在

    再次创建即可

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

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    docker ps -a|grep rancher
    
    4ce02f66eed2   rancher/rancher:v2.5.7             "entrypoint.sh"           46 seconds ago   Up 44 seconds                   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   rancher
    
    • 1
    • 2
    • 3

    2.登录 Rancher 平台

    需要先等一会儿,再浏览器访问 https://192.168.198.14 ,由于未使用授信证书,会有报警,忽略即可
    登录后如是英文页面,可点击右下角语言选项选择中文

    如果等待刷新还不可以,输入init 6重启虚拟机再次访问刷新

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    登入输入密码有两种方式:

    (1)自定义密码

    (2)随机生成密码,生成密码后需复制随机生成的密码(kG1mk!@&Mgv9VE5X)

    此处使用第二种

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    3.Rancher 管理已存在的 k8s 集群

    选择【添加集群】,点击【导入】

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    【集群名称】设置为 k8s-cluster,点击【创建】

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    选择复制第三条命令绕过证书检查导入 k8s 集群

    #在 k8s 控制节点 master01 上执行刚才复制的命令,如第一次执行报错,再执行一次即可
    curl --insecure -sfL https://192.168.198.14/v3/import/d6mtqc4kwcv82jp925gpk28sgfpdsl8dbgjr6v8x9kz2wnr6klbh7k_c-lrcc4.yaml | kubectl apply -f -
    
    • 1
    • 2

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    kubectl get ns
    
    • 1

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    kubectl get pods -n cattle-system -o wide
    
    NAME                                   READY   STATUS    RESTARTS   AGE    IP           NODE       NOMINATED NODE   READINESS GATES
    cattle-cluster-agent-cbf67657c-48hx4   1/1     Running   0          2m4s   10.244.0.5   master01              
    
    • 1
    • 2
    • 3
    • 4
    kubectl get pods -n fleet-system -o wide
    
    NAME                           READY   STATUS    RESTARTS   AGE   IP            NODE     NOMINATED NODE   READINESS GATES
    fleet-agent-55bfc495bd-zd864   1/1     Running   0          55s   10.244.1.79   node02              
    
    • 1
    • 2
    • 3
    • 4

    点击仪表盘可以查看集群的相关信息

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    在这里插入图片描述

    4.Rancher 部署监控系统

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

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

    //以创建 nginx 服务为例
    点击【仪表盘】进入 k8s 集群仪表盘界面
    
    • 1
    • 2
    #创建名称空间 namespace
    点击左侧菜单【Namespaces】,再点击右侧【Create】
    【Name】输入 rain-depl,【Description】选填可自定义
    点击右下角【Create】
    
    • 1
    • 2
    • 3
    • 4

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    #创建 Deployment 资源
    点击左侧菜单【Deployments】,再点击右侧【Create】
    【Namespace】下拉选择 rain-depl,【Name】输入 nginx-rain-depl,【Replicas】输入 3
    点击中间选项【Container】,【Container Image】输入 nginx:1.14,【Pull Policy】选择 IfNotPresent
    在【Pod Labels】下点击【Add Lable】,【Key】输入 app 【Value】输入 nginx
    点击右下角【Create】
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    #创建 service
    点击左侧菜单【Services】,再点击右侧【Create】
    点击【Node Port】
    【Namespace】下拉选择 rain-depl,【Name】输入 nginx-rain-depl
    【Port Name】输入 nginx,【Listening Port】输入 80,【Target Port】输入 80,【Node Port】输入 30180(30000以上)
    点击中间选项【Selectors】,【Key】输入 app,【Value】输入 nginx
    点击右下角【Create】
    点击【nginx-dev】查看 service 是否已关联上 Pod
    
    #点击 service 资源的节点端口 30180/TCP,可以访问内部的 nginx 页面了
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    三.拓展

    1.Rancher和kubesphere相比较

    (1)KubeSphere 和 Rancher 都是用于管理和操作 Kubernetes 集群的平台,它们在概念和功能上有一些区别。以下是它们的区别概述:

    ①KubeSphere: KubeSphere 是一个开源的容器平台,旨在提供全面的解决方案,用于部署、管理和运行容器化应用程序。它提供了一个集成的界面和工具,使用户能够轻松地构建、编排和监控容器化应用程序。

    主要特点包括:

    • 一站式平台:KubeSphere 提供了从应用程序开发、CI/CD、容器编排、多租户管理、监测告警、日志记录等一系列功能,使用户能够在一个平台上完成大部分任务。
    • 多租户管理:KubeSphere 支持多租户模式,可以为不同的团队或项目提供隔离的环境和权限管理。
    • 安全和策略:KubeSphere 提供了安全审计、访问控制、镜像安全扫描等功能,帮助用户保护容器环境的安全。

    ②Rancher: Rancher 是一个开源的容器管理平台,旨在简化 Kubernetes 的部署、管理和监控。它提供了一个集中式管理界面,使用户能够轻松地配置和操作 Kubernetes 集群。

    主要特点包括:

    • 多集群管理:Rancher 支持在一个界面中管理多个 Kubernetes 集群,无论这些集群是部署在本地、云端还是边缘节点上。
    • 声明式配置:Rancher 使用声明式配置模型,允许用户通过 YAML 文件定义基础架构和应用程序的配置,并且能够自动化应用程序的部署和更新。
    • 第三方集成:Rancher 提供了与各种第三方工具和服务的集成,包括监控、日志记录、认证等,帮助用户将 Kubernetes 与其他系统集成在一起。

    总结: KubeSphere 和 Rancher 都是功能强大的容器管理平台,但它们的定位和重点略有不同。KubeSphere 更加注重提供一站式的容器解决方案,包括开发、构建、编排、监测等各个环节;而 Rancher 则专注于多集群管理和声明式配置,使用户能够更方便地操作和管理 Kubernetes 集群。选择哪个平台取决于需求和偏好。

    2.K3S和K8S相比较

    K3s 和 Kubernetes (K8s) 都是用于容器编排和管理的工具,但有些区别:

    (1)大小和复杂度:K3s 是一种轻量级的 Kubernetes 发行版,适用于资源受限的环境,它比 K8s 小得多,仅需要约 512MB 的 RAM 和 1 CPU 核心即可运行。K8s 是一个更复杂的系统,需要更多的资源才能正常运行。

    (2)安装和配置:K3s 的安装非常简单,通常只需要运行一行命令即可完成。相比之下,K8s 的安装过程较为复杂,需要一些额外的步骤和配置。

    (3)扩展性:K8s 作为业界流行的容器编排系统,拥有广泛的扩展程序和插件,可以满足各种不同的需求。而 K3s 虽然也支持扩展,但由于是要保持轻量级,可能不会提供所有功能。

    (4)性能:由于 K3s 是一个轻量级的 Kubernetes 变体,因此在启动时间和资源使用方面表现更好。也就是说,它适用于部署在资源有限的边缘设备或 IoT 设备上。

    (5)社区和支持:K8s 有一个庞大的社区,并且由 CNCF 维护,可以获得广泛的支持和资源。而 K3s 的社区较小,但它仍然有一些活跃的贡献者和用户,可以获得一定程度的支持。

    总之,K3s 是一个更简单、更轻量级的 Kubernetes 变体,适合部署在边缘设备或 IoT 设备上。而 K8s 作为业界流行的容器编排系统,支持更多的扩展和功能。选择哪种方案取决于具体需求和资源限制。

  • 相关阅读:
    处理.git文件夹过大出现臃肿问题-filter-branch和BFG工具
    Nginx(openresty) 开启目录浏览 以及进行美化配置
    基本算法——二分查找
    安踏携手华为运动健康共同验证冠军跑鞋 创新引领中国体育
    ArrayList的初始容量是多少。
    Django 表单
    详解nvim内建LSP体系与基于nvim-cmp的代码补全体系
    深入探索Sharding JDBC:分库分表的利器
    ES2022新规发布,8个实用新功能
    拨开发展迷雾,将“智慧”嵌入全业务场景【2022戴尔科技峰会预告】
  • 原文地址:https://blog.csdn.net/Katie_ff/article/details/133794146