k8s rancher开源平台(概念,部署示例,)

目录

一、概念

[Rancher 与 Kubernetes 的区别](#Rancher 与 Kubernetes 的区别)

[Rancher 的关键特性](#Rancher 的关键特性)

[二、Rancher 安装及配置](#二、Rancher 安装及配置)

实验环境

[安装 Rancher](#安装 Rancher)

[登录 Rancher 平台](#登录 Rancher 平台)

[管理已存在的 Kubernetes 集群](#管理已存在的 Kubernetes 集群)

[导入 Kubernetes 集群到 Rancher](#导入 Kubernetes 集群到 Rancher)

[验证 Kubernetes 集群状态](#验证 Kubernetes 集群状态)

部署监控系统

[部署监控系统到 Rancher](#部署监控系统到 Rancher)

启用监控:

[使用 Rancher 仪表盘管理 Kubernetes 集群](#使用 Rancher 仪表盘管理 Kubernetes 集群)

[三、创建 nginx 服务为例:](#三、创建 nginx 服务为例:)

创建名称空间 (Namespace)

[创建 Deployment 资源](#创建 Deployment 资源)

[创建 Service 资源](#创建 Service 资源)

[访问 Nginx 页面](#访问 Nginx 页面)


一、概念

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

Rancher 是一个功能强大的开源平台,旨在简化 Kubernetes 的部署、管理和操作。它为企业提供了一个统一的界面,用于管理跨多个环境(包括公有云、私有云和边缘计算环境)的 Kubernetes 集群。

Rancher 与 Kubernetes 的区别

  • Kubernetes:

  • Kubernetes 是一个开源的容器编排平台,它提供了自动化的容器部署、扩展和管理功能。

  • 它主要用于创建、运行和管理容器化应用程序,并确保它们在预定义的状态下运行。

  • Rancher:

  • Rancher 是建立在 Kubernetes 之上的管理平台,它提供了一个用户友好的界面,使得 Kubernetes 更易于使用和理解。

  • Rancher 通过抽象 Kubernetes 的复杂性,允许用户在不了解 Kubernetes 概念的情况下部署和管理容器化应用程序。

  • 它支持多集群管理,使得用户可以在一个集中的位置管理多个 Kubernetes 集群,无论它们位于何处。

Rancher 的关键特性

  • 多集群管理:

  • 支持在一个界面中管理多个 Kubernetes 集群,无论它们是在本地、云中还是混合环境中。

  • 应用目录:

  • 提供了一个应用目录,用户可以从中选择并部署预配置的应用程序到 Kubernetes 集群。

  • CI/CD 集成:

  • 支持与流行的持续集成和持续部署工具集成,如 Jenkins、GitLab CI/CD 等。

  • 安全性:

  • 提供了企业级的安全特性,包括 RBAC、网络策略、Pod 安全策略等。

  • 用户友好的界面:

  • 提供了一个直观的 Web UI,使得 Kubernetes 的管理变得更加简单和直观。

  • 自动化:

  • 支持自动化的集群部署和升级,简化了 Kubernetes 集群的生命周期管理。

  • 监控和日志:

  • 集成了监控和日志工具,提供了对集群性能和应用程序状态的实时视图。

  • 支持多种运行环境:

  • 支持在多种环境中运行 Kubernetes,包括公有云、私有云、边缘计算和混合云环境。

通过使用 Rancher,企业可以更快速、更安全地采用 Kubernetes 技术,同时降低了 Kubernetes 的学习曲线和管理复杂性。Rancher 通过提供额外的工具和服务,增强了 Kubernetes 的功能,使其更适合企业级应用。

二、Rancher 安装及配置

如何在实验环境中安装和配置 Rancher,以及如何使用 Rancher 管理 Kubernetes 集群

实验环境

控制节点(master01): 192.168.41.31
工作节点(node01): 192.168.41.33
工作节点(node02): 192.168.41.34
Rancher 节点: 192.168.10.23

安装 Rancher

  • 在控制节点(master01)上下载 rancher-agent 镜像。

    docker pull rancher/rancher-agent:v2.5.7

  • 在 Rancher 节点上下载 rancher 镜像。

    docker pull rancher/rancher:v2.5.7

  • 使用 Docker 运行 Rancher 容器,映射 80 和 443 端口,并设置为特权模式。

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

  • 确认 Rancher 容器已成功运行。

    docker ps -a|grep rancher

登录 Rancher 平台

  • 访问 Rancher 节点的 IP 地址(http://192.168.10.23)。

  • 忽略由于未使用授信证书而产生的安全报警。

  • 如果需要,更改语言设置为中文,点击右下角语言选项选择中文

管理已存在的 Kubernetes 集群

导入 Kubernetes 集群到 Rancher

  • 添加集群:

  • 在 Rancher 的 Web UI 中,选择【添加集群】。

  • 选择【导入】选项来导入一个已存在的 Kubernetes 集群。

  • 设置集群名称:

  • 将导入的集群命名为 k8s-cluster,然后点击【创建】。

  • 复制导入命令:

  • Rancher 会提供一个命令,用于绕过证书检查并将 Kubernetes 集群导入到 Rancher。

  • 执行导入命令:

  • 在 Kubernetes 控制节点 master01 上,执行 Rancher 提供的 curl 命令。

  • 如果第一次执行时出现错误,再次执行该命令通常可以解决问题。

    curl --insecure -sfL https://192.168.10.23/v3/import/ltlhl7vggnwz8knbjncgbxqlrf6krpbfbxtzh4qlpnqxrq5559k6gf_c-jf5bx.yaml | kubectl apply -f -

验证 Kubernetes 集群状态

  • 查看命名空间:

  • 使用 kubectl get ns 命令查看 Kubernetes 集群中的所有命名空间及其状态。

    kubectl get ns

  • 查看 cattle-system 命名空间的 Pod:

  • 使用 kubectl get pods -n cattle-system -o wide 命令查看 cattle-system 命名空间中运行的 Pod,包括 cattle-cluster-agent

    kubectl get pods -n cattle-system -o wide

  • 查看 fleet-system 命名空间的 Pod:

  • 使用 kubectl get pods -n fleet-system -o wide 命令查看 fleet-system 命名空间中运行的 Pod,包括 fleet-agent

    kubectl get pods -n fleet-system -o wide

部署监控系统

部署监控系统到 Rancher

启用监控:
  • 在 Rancher 的 Web UI 中,找到并点击【启用监控以查看实时监控】的按钮。

  • 在弹出的对话框或页面中,选择监控组件版本为 0.2.1,接受其他默认设置。

  • 点击【启用监控】按钮来启动监控系统。请注意,监控系统的启动可能需要大约 10 分钟的时间。

使用 Rancher 仪表盘管理 Kubernetes 集群

三、创建 nginx 服务为例:

创建名称空间 (Namespace)

  • 进入 k8s 集群仪表盘界面 - 这是通过访问 Kubernetes Dashboard 来完成的,它是一个基于 Web 的用户界面,用于管理和部署应用程序到 Kubernetes 集群。

  • 点击【Namespaces】菜单 - 这个菜单项允许查看和管理 Kubernetes 集群中的名称空间。

  • 点击【Create】按钮 - 这将打开一个表单,用于创建新的名称空间。

  • 输入名称空间名称 - 在【Name】字段中输入 dev。名称空间用于将集群资源逻辑上分隔成不同的环境,通常是根据开发、测试和生产环境来划分。

  • 可选的【Description】字段 - 可以在这里添加对名称空间的描述,这有助于其他用户理解该名称空间的用途。

  • 点击【Create】按钮 - 完成名称空间的创建。

创建 Deployment 资源

  • 选择【Deployments】菜单 - 这个菜单项让能够创建和管理 Deployment 资源,Deployment 是 Kubernetes 中用于声明式管理无状态应用的资源。

  • 点击【Create】按钮 - 打开创建 Deployment 的表单。

  • 选择【Namespace】 - 在下拉菜单中选择之前创建的 dev 命名空间。

  • 输入【Name】 - 输入 nginx-dev 作为 Deployment 的名称。

  • 设置【Replicas】 - 输入 3 表示希望运行 3 个 Nginx 容器的副本。

  • 配置容器镜像 - 在【Container Image】字段中输入 nginx:1.14,指定要使用的 Nginx 镜像版本。【Pull Policy】选择 IfNotPresent 意味着只有在本地没有该镜像时才会从镜像仓库拉取。

  • 添加 Pod 标签 - 在【Pod Labels】中添加一个标签,【Key】为 app,【Value】为 nginx。这些标签用于识别和管理属于同一应用的 Pod。

  • 添加标签和注解 - 在【Labels and Annotations】中同样添加一个标签,这有助于在更高级别上组织和选择资源。

  • 点击【Create】按钮 - 创建 Deployment,Kubernetes 将会根据这些设置创建和管理 Nginx 容器。

创建 Service 资源

  • 选择【Services】菜单 - 这个菜单项用于创建和管理 Service 资源,Service 定义了一种访问 Pod 的方式,通常用于负载均衡和发现。

  • 点击【Create】按钮 - 打开创建 Service 的表单。

  • 选择【Node Port】类型 - 这种类型的 Service 会为集群内的 Pod 提供一个稳定的网络接口,即使 Pod 所在的节点发生变化。

  • 选择【Namespace】 - 再次选择 dev 命名空间。

  • 输入【Name】 - 输入 nginx-dev 作为 Service 的名称。

  • 配置端口 - 在【Port Name】、【Listening Port】和【Target Port】中都输入 80,表示 Service 将会在 80 端口上监听并转发到 Pod 的 80 端口。

  • 设置选择器 - 在【Selectors】中添加之前定义的标签,【Key】为 app,【Value】为 nginx,这样 Service 就知道要将流量转发到哪些 Pod。

  • 点击【Create】按钮 - 创建 Service,现在 Nginx 的 Pod 可以通过这个 Service 被访问。

访问 Nginx 页面

  • 查看 Service 与 Pod 的关联 - 在创建 Service 后,可以在 Service 的详情页查看它是否已经关联到了 Nginx 的 Pod。

  • 通过节点端口访问 Nginx - 找到 Service 资源后,可以通过点击节点端口 30180/TCP 来访问内部的 Nginx 页面。这个端口是 Service 在集群外部的入口点,通过这个端口,可以测试 Nginx 服务是否正常工作。

相关推荐
drebander4 小时前
Docker 安全基础:权限、用户、隔离机制
安全·docker·容器
Marcel1116 小时前
WSL2使用Kind创建K8S集群时出现IPV6网络创建失败
云原生·kubernetes·kind
IT_张三7 小时前
Ubuntu Linux运维实战指南4_文件系统基础知识
linux·运维·ubuntu
陈译8 小时前
Grafana——如何迁移Grafana到一台新服务器
运维·服务器·grafana
柳鲲鹏8 小时前
docker push镜像到阿里云
阿里云·docker·容器
wangjun51598 小时前
linux redis ipv6、ipv4 只接收本地访问、接收本地和远程访问
linux·运维·服务器
铁头乔8 小时前
IoTDB 断电后无法启动 DataNode,日志提示 Meet error while starting up
数据库·开源·时序数据库·iotdb
eaglesstone8 小时前
centos 9 时间同步服务
linux·运维·centos
信阳农夫8 小时前
linux中yum是干啥的?
linux·运维·服务器
黑客老李9 小时前
新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)
java·运维·服务器·前端·xss