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地址
控制节点 master01 192.168.198.11
工作节点 node01 192.168.198.12
工作节点 node02 192.168.198.13
Rancher节点 rancher 192.168.198.14

1.安装 rancher

#在 master01 节点下载 rancher-agent 镜像
docker pull rancher/rancher-agent:v2.5.7
#在 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守护进程启动时就已经停止了的容器

创建的时候出现以下:

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 <container_id> #停止容器

docker rm <container_id> #删除容器

此处使用停止容器

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

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 -

外链图片转存失败,建议将图片保存下来直接上传

kubectl get ns

外链图片转存失败,建议将图片保存下来直接上传

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   <none>           <none>
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   <none>           <none>

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

外链图片转存失败,建议将图片保存下来直接上传


在这里插入图片描述

4.Rancher 部署监控系统

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

外链图片转存失败,建议将图片保存下来直接上传

外链图片转存失败,建议将图片保存下来直接上传

外链图片转存失败,建议将图片保存下来直接上传

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

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

外链图片转存失败,建议将图片保存下来直接上传

外链图片转存失败,建议将图片保存下来直接上传

外链图片转存失败,建议将图片保存下来直接上传

外链图片转存失败,建议将图片保存下来直接上传

#创建 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】

外链图片转存失败,建议将图片保存下来直接上传

外链图片转存失败,建议将图片保存下来直接上传

外链图片转存失败,建议将图片保存下来直接上传

外链图片转存失败,建议将图片保存下来直接上传

#创建 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.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 作为业界流行的容器编排系统,支持更多的扩展和功能。选择哪种方案取决于具体需求和资源限制。

原文地址:https://blog.csdn.net/Katie_ff/article/details/133794146

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读942次。kube-controller-manager 和 kubelet 是异步工作的,这意味着延迟可能包括任何的网络延迟、apiserver 的延迟、etcd 延迟,一个节点上的负载引起的延迟等等。当 Kubernetes 中 Node 节点出现状态异常的情况下,节点上的 Pod 会被重新调度到其他节点上去,但是有的时候我们会发现节点 Down 掉以后,Pod 并不会立即触发重新调度,这实际上就是和 Kubelet 的状态更新机制密切相关的,Kubernetes 提供了一些参数配置来触发重新调度的时间。_node-monitor-period
文章浏览阅读3.8k次。上篇文章详细介绍了弹性云混部的落地历程,弹性云是滴滴内部提供给网约车等核心服务的容器平台,其基于 k8s 实现了对海量 node 的管理和 pod 的调度。本文重点介绍弹性云的调度能力,分为以下部分:调度链路图:介绍当前弹性云调度体系链路,对架构体系有一个初步的认知k8s 调度能力的运用:整体介绍弹性云现在用到的 k8s 调度能力和对其的增强k8s 版本的升级:介绍到从 k8s 1.12 到 1...._滴滴机房 腾讯
文章浏览阅读897次。对于cpu来说,这种分配方式并不会有太大问题,因为cpu可以灵活调度,numa调度时我们只计算绑定了numa cpu的pod是可以接受的,但是对于内存来说,numa node上申请了的内存无法做到随时迁移,这就会导致调度器视角numa node的mem资源足够,但是等到pod真正使用时,由于没有绑定numa node的pod申请的内存,导致numa node的mem资源不足,造成swap中断或者远端内存申请,这会对绑定mem的pod来带来性能损耗。忽略了没有绑定numa node的pod资源。_kubectl numa
文章浏览阅读796次,点赞17次,收藏15次。只要在Service定义中设置了ClusterIp:None,就定义了一个HeadLess Service, 它与普通的Service关键区别在于它没有ClusterIp地址,如果解析HeadLess Service的DNS域名,则会返回该Service对应的全部Pod的EndPoint列表,这就意味着客户端是直接与后端的pod建立了TCP/IP链接进行通信的。一个Label是一个键值对。注解:属于资源对象的元数据,可以被理解为一种特殊的标签,不过更多的是与程序挂钩,通常用于实现资源对象属性的自定义扩展。
文章浏览阅读763次。但是此时如果配置成 NONE, 租户创建成功了,但是无法创建资源文件,也就是无法上传文件,可能 dolphinscheduler 团队就想着将文件上传到 hdfs,暂不支持本地。需要将 resource.storage.type 置为 NONE, 因为我之前用的 1.3.6 版本的时候,即使资源文件存在本地文件也需要配置成 hdfs。_[error] 2023-10-24 18:10:43.762 +0800 org.apache.dolphinscheduler.api.servic
文章浏览阅读2.7k次,点赞2次,收藏13次。公司使用的是交老的k8s版本(1.16),由于老版本的K8s对于现在很多新特性不支持,所以需要升级到新版本。目前2023年7月11日最新版本的k8s是v1.27.3。通过参考官方文档进行k8s部署工作。其中涉及到操作系统配置、防火墙配置、私有镜像仓库等。_k8s最新版本
文章浏览阅读1.8w次,点赞14次,收藏27次。能节省你在kubeadm init 时遇到问题的排错时间⌚️。整合了网上大佬
文章浏览阅读1.1k次,点赞2次,收藏7次。具体操作步骤可以参考之前的教程,建议是先安装一台,然后克隆虚拟机,这样速度快。注意:在克隆时记得修改Mac地址、IP地址、UUID和主机名。(最后别忘了保存下快照~)_部署k8s集群
文章浏览阅读863次,点赞23次,收藏16次。当部署完 Kubernetes,便拥有了一个完整的集群。一组工作机器,称为节点, 会运行容器化应用程序。每个集群至少有一个工作节点。工作节点会 托管Pod ,而 Pod 就是作为应用负载的组件。控制平面管理集群中的工作节点和Pod。说人话版本:集群:cluster,多个几点被组织到一起共同为系统提供服务过程称之为集群。本质上是将承载同一个软件服务节点组织到一起,称之为该软件(服务)的集群,当然集群中的节点身份地位是不一样的。k8s集群也是如此,他也是多个节点组成。
文章浏览阅读943次。Rancher是一个开源的企业级多集群Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理,以确保集群的安全性,加速企业数字化转型。Rancher 1.0版本在2016年就已发布,时至今日,Rancher已经成长为企业在生产环境中运行容器和Kubernetes的首要选择。_rancher管理k8s
文章浏览阅读742次,点赞2次,收藏3次。本篇来讲解如何在centos下安装部署高可用k8s集群。_kubeadm ha keepalived + nginx
文章浏览阅读1.9k次,点赞21次,收藏25次。那么这个空间设置成内存的2倍大小。点击IPv4设置--手动--添加--设置ip--设置DNS服务器,最后点击--“保存”;首先选中--“本地标准磁盘”,存储配置--自定义分区,点击--“完成”;在--主机名--设置主机名:(例如k8s-master01),点击--点击+,设置--挂载点/boot--期望容量,点击--添加挂载点;点击--+--挂载点swap--期望容量,点击--“添加挂载点”;默认选择--亚洲--上海,并调整日期和时间,点击--“完成”;设备类型--确认--LVM,卷组--选择“修改”;_euler 服务器搭建
文章浏览阅读1k次。在1.25版本的k8s集群中部署gpu-manage时,虽然显示gpu节点上gpu-manage的pod实例都是running状态,但是给pod申领。既可以用源码的Makefile自动编译打包成新的镜像,但是源码的。说明gpu-manager和容器运行时接口通信失败了。编译后的镜像在1.25版本的k8s中可以正常使用。,但是在k8s1.23版本之后,接口路径已经改为。资源时,却始终找不到有资源的节点。,另外有一些依赖需要国际上的支持。可以看到这里用的运行时接口是。查看节点的详情时,返回的。_launch gpu manager 报错 can't create container runtime manager: context dead
文章浏览阅读1k次,点赞18次,收藏16次。SelfLink:API的资源对象之一,表示资源对象在集群当中自身的一个连结,self-Link是一个唯一的标识号,可以用于标识k8s集群当中的每个资源的对象。容器里使用的配置,在provisioner当中定义好环境变量,传给容器,storageclass的名称,NFS服务器的地址,NFS的目录。NFS的provisionner的客户端以pod的方式运行在集群当中,监听k8s集群当中PV的请求,然后动态的创建于NFS相关的PV。命名为 nfs-client-provisioner-clusterrole。
文章浏览阅读6.3k次,点赞2次,收藏20次。k8s证书过期解决方案之替换证书_k8s证书过期如何更换
文章浏览阅读1k次。KMS,Key Management Service,即密钥管理服务,在K8S集群中,以驱动和插件的形式启用对Secret,Configmap进行加密。以保护敏感数据
文章浏览阅读888次。exporter对于云服务的监控还是很不完美,毕竟每家都有自己的护城河。自动发现多实例这样的借助consul 阿波罗这样的会简单一些。aws可以借助cloudwatch这样的导入模板到grafana中。还是希望能将类似腾讯云云监控中的这些指标采集到prometheus中,但是这过程应该还很遥远grafana出图 prometheus查询语法这些东西有时间的好好研究一下。报警有必要进行分级别,收敛配置一下!_command: - "-redis.password-file=/redis_passwd.json
文章浏览阅读1k次。可以在此处(https://cloud.google.com/kubernetes-engine/docs/how-to/kube-dns)和此处(https://www.digitalocean.com/community/tutorials/an-introduction-to-the-kubernetes-dns-service)找到更多的详细信息。-or-ipvs/)和此处(https://arthurchiao.art/blog/cracking-k8s-node-proxy/)。_k8s默认命名空间
文章浏览阅读4.9k次,点赞11次,收藏32次。如果运行runc命令时提示:runc: error while loading shared libraries: libseccomp.so.2: cannot open shared object file: No such file or directory,则表明runc没有找到libseccomp,需要检查libseccomp是否安装,本次安装默认就可以查询到。所有主机均需要操作。所有主机均需要操作。所有主机均需要操作。所有主机均需要操作。所有主机均需要操作。所有主机均需要操作。_kubernetes 1.28
文章浏览阅读3.6w次,点赞118次,收藏144次。Canal 提供了网络功能,使得 Kubernetes 集群中的 Pod 可以相互通信,并与集群外部的服务进行通信。它通过网络插件的方式,为每个 Pod 分配唯一的 IP 地址,并管理网络流量的路由和转发。此外,Canal 还支持网络策略,用于定义 Pod 之间的通信规则和安全策略。Canal 基于 Calico 和 Flannel 项目,结合了二者的优点。它使用 Calico 的数据平面,提供高性能的网络转发和安全特性,同时使用 Flannel 的控制平面,实现 IP 地址管理和网络策略的配置。_k8s canal