云原生Kubernetes:Rancher管理k8s集群

目录

一、理论

1.Rancher

2.Rancher 安装及配置

二、实验

1.Rancher 安装及配置

三、问题

1. Rancher 部署监控系统报错

四、总结


一、理论

1.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集群当中。

(3)Rancher架构

Kubernetes 已经成为了容器管理的标准。大多数云服务和虚拟服务的提供商现在将 Kubernetes 作为标准的基础设施。用户可以使用 Rancher Kubernetes Engine(简称 RKE),或其他云服务提供商的容器服务,如 GKE、AKS、 EKS 等,创建 Kubernetes 集群。用户也可以将已有集群导入 Rancher,集中管理。

Rancher架构如下:

2.Rancher 安装及配置

(1)环境

表1 环境

节点主机IP地址
控制节点master1192.168.204.180
控制节点master2192.168.204.181
工作节点node1192.168.204.182
Rancher节点rancher192.168.204.30 

配置hosts文件

vim /etc/hosts

192.168.204.180   master1
192.168.204.181   master2    
192.168.204.182   node1
192.168.204.30    rancher

关闭安全机制

关闭防火墙
[root@ harbor~]# systemctl stop firewalld && systemctl disable firewalld


关闭selinux
[root@ harbor~]# setenforce 0
[root@harbor~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
注意:修改selinux配置文件之后,重启机器,selinux才能永久生效

(2)安装docker

#配置docker-ce国内yum源(阿里云)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装docker依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2

#安装docker-ce
 yum install docker-ce -y

#启动docker服务
systemctl start docker && systemctl enable docker
 systemctl status docker

#查看Docker 版本信息
docker version  

#开启包转发功能和修改内核参数
modprobe br_netfilter

cat > /etc/sysctl.d/docker.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sysctl -p /etc/sysctl.d/docker.conf

systemctl restart docker 

(3) 部署rancher

1、安装 rancher
#在 master1 节点下载 rancher-agent 镜像
docker pull rancher/rancher-agent:v2.5.7

#在 rancher 节点下载 rancher 镜像
docker pull rancher/rancher:v2.5.7

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 ps -a|grep rancher
23874501455d   rancher/rancher:v2.5.7   "entrypoint.sh"   30 seconds ago   Up 28 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   rancher


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

3、Rancher 管理已存在的 k8s 集群
选择【添加集群】,点击【导入】
【集群名称】设置为 k8s-cluster,点击【创建】
选择复制第三条命令绕过证书检查导入 k8s 集群

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


kubectl get ns
NAME              STATUS   AGE
cattle-system          Active   2m20s
default                Active   93d
fleet-system           Active   2m2s
kube-node-lease        Active   93d
kube-public            Active   93d
kube-system            Active   93d
kubernetes-dashboard   Active   92d


kubectl get pods -n cattle-system -o wide
NAME                                    READY   STATUS    RESTARTS   AGE    IP           NODE     NOMINATED NODE   READINESS GATES
cattle-cluster-agent-f9bbd6fb8-d7dbg   1/1     Running   0          2m26s   10.244.137.65   master1   <none>           <none>

kubectl get pods -n fleet-system -o wide
NAME                           READY   STATUS    RESTARTS   AGE    IP           NODE     NOMINATED NODE   READINESS GATES
fleet-agent-55bfc495bd-gd95w   1/1     Running   0          117s   10.244.166.149   node1   <none>           <none>

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

5、使用 Rancher 仪表盘管理 k8s 集群
//以创建 nginx 服务为例
点击【仪表盘】进入 k8s 集群仪表盘界面

#创建名称空间 namespace
点击左侧菜单【Namespaces】,再点击右侧【Create】
【Name】输入 dev,【Description】选填可自定义
点击右下角【Create】

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

#创建 service
点击左侧菜单【Services】,再点击右侧【Create】
点击【Node Port】
【Namespace】下拉选择 dev,【Name】输入 nginx-dev
【Port Name】输入 nginx,【Listening Port】输入 80,【Target Port】输入 80,【Node Port】输入 30180
点击中间选项【Selectors】,【Key】输入 app,【Value】输入 nginx
点击右下角【Create】
点击【nginx-dev】查看 service 是否已关联上 Pod

#点击 service 资源的节点端口 30180/TCP,可以访问内部的 nginx 页面了

二、实验

1.Rancher 安装及配置

(1)环境

表1 环境

节点主机IP地址
控制节点master1192.168.204.180
控制节点master2192.168.204.181
工作节点node1192.168.204.182
Rancher节点rancher192.168.204.30 

修改主机名

配置hosts文件

关闭安全机制

配置rancher到k8s主机互信

(2)安装docker

安装docker依赖包

安装docker-ce

启动docker服务

查看Docker 版本信息

(3) 安装rancher

在 master1 节点下载 rancher-agent 镜像

在 rancher 节点下载 rancher 镜像

--restart=unless-stopped 表示在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

查看进程

(4)登录 Rancher 平台

需要先等一会儿,再浏览器访问 http://192.168.204.30 ,由于未使用授信证书,会有报警,忽略即可

登录后如是英文页面,可点击右下角语言选项选择中文

提示,关闭即可

(5)Rancher 管理已存在的 k8s 集群

右下角设置语言

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

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

选择复制第三条命令绕过证书检查导入 k8s 集群
在 k8s 控制节点 master01 上执行刚才复制的命令,如第一次执行报错,再执行一次即可

添加成功

master节点查看信息

(6)Rancher 部署监控系统

启用监控

(7)使用 Rancher 仪表盘管理 k8s 集群

(8)创建名称空间 namespace

点击左侧菜单【Namespaces】,再点击右侧【Create】

Name】输入 dev,【Description】选填可自定义
点击右下角【Create】

(9)创建 Deployment 资源

点击左侧菜单【Deployments】,再点击右侧【Create】
【Namespace】下拉选择 dev,【Name】输入 nginx-dev,【Replicas】输入 3
点击中间选项【Container】,【Container Image】输入 nginx:1.14,【Pull Policy】选择 IfNotPresent
在【Pod Labels】下点击【Add Lable】,【Key】输入 app,【Value】输入 nginx
点击中间选项【Labels and Annotations】,点击【Add Label】,【Key】输入 app,【Value】输入 nginx
点击右下角【Create】

(10)创建 service

点击左侧菜单【Services】,再点击右侧【Create】
点击【Node Port】
【Namespace】下拉选择 dev,【Name】输入 nginx-dev
【Port Name】输入 nginx,【Listening Port】输入 80,【Target Port】输入 80,【Node Port】输入 30180
点击中间选项【Selectors】,【Key】输入 app,【Value】输入 nginx
点击右下角【Create】

点击【nginx-dev】查看 service 是否已关联上 Pod
 

点击 service 资源的节点端口 30180/TCP,可以访问内部的 nginx 页面了

三、问题

1. Rancher 部署监控系统报错

(1)报错

(2)原因分析

CPU内核数与内存需要扩容

(3)解决方法

调大内核与内存

修改前:

修改后:

四、总结

官方提供了三种安装模式:docker、单节点、集群(高可用)
 

Rancher有docker安装在单节的模式,也有这样的把rancher安装在K8S集群里的高可用模式。

Rancher有如下问题:

直观上Rancher给人的感觉是它是K8S的上游,可以管理多个K8S集群,但是一个高可用的集群又往往需要安装在K8S集群中

Rancher可以理解为K8S的上层(2.x版本以后),有点像Anaconda与Python的关系,但是由于Anaconda没有高可用问题,结构很清晰;早前Rancher和Kubernetes是在同一个赛道上的,都是做容器编排的,后来随K8S大火,2.x以后Rancher就等价于Kubernetes的超集了。

03-18
<think>好的,我需要帮助用户了解Rancher容器管理平台的使用介绍。首先,我要整理用户提供的引用内容,看看有哪些关键点需要覆盖。用户给的引用内容提到了Rancher的概述、部署方法、功能特点以及应用场景。 首先,我应该从基本概念开始,解释Rancher是什么,它的核心功能。根据引用[1]和[3],Rancher是一个开源的容器管理平台,支持多集群管理,集成Kubernetes和Docker,适合生产环境。需要强调它简化了Kubernetes的使用,这点很重要,因为用户可能对Kubernetes的复杂性有顾虑。 接下来是部署方式。引用[2]、[3]、[5]提到了使用Docker安装Rancher,这可能是一个常见的部署方法。需要分步骤说明如何在Docker环境下部署,包括安装前的环境检查,比如Docker服务状态,以及具体的安装命令。这里要注意使用正确的Docker命令,比如docker run的参数,确保用户能顺利操作。 然后是基本使用介绍。根据引用[5],可能需要包括集群添加、应用部署、监控日志等功能。这部分需要简明扼要,让用户知道Rancher能做什么,如何管理容器。例如,添加集群的步骤、使用应用商店部署应用,以及如何监控系统状态。 应用场景部分,引用[4]提到了企业级应用、混合云管理等,这些是Rancher的强项。需要说明Rancher在不同环境下的优势,比如跨云管理、DevOps支持,帮助用户理解其实际应用价值。 最后,用户可能需要相关问题来进一步学习,比如部署常见问题、与Kubernetes的关系、监控工具集成等。需要生成几个相关的问题,帮助用户深入探索。 需要注意格式要求,行内公式用$...$,独立公式用$$...$$,但当前内容可能涉及较少数学公式,不过如果有技术参数或命令,需正确使用代码块。同时,确保引用标识正确添加到对应的内容后面,比如在提到多集群管理时引用[4]。 需要检查LaTeX语法是否正确,虽然这次内容可能用不上太多数学表达式,但如果有的话要正确应用。另外,使用中文回答,保持结构清晰,分步骤说明,尽量详细但不过于冗长。 可能还需要考虑用户的实际操作环境,比如个人测试环境还是生产环境,引用[5]提到的是个人测试环境部署,需要明确说明环境要求,避免用户混淆。 总之,结构大致分为概述、部署步骤、基本功能、应用场景、相关问题和引用。确保每个部分的信息准确,引用正确,并且语言通俗易懂,帮助用户有效理解Rancher的使用方法。</think>### Rancher 容器管理平台使用介绍 #### 一、Rancher 概述 Rancher 是一款开源的容器管理平台,专为多集群 Kubernetes 管理设计。它通过统一的控制台简化了容器编排工具(如 Kubernetes、Docker Swarm)的部署与管理,支持混合云、本地数据中心和边缘计算环境[^1][^4]。核心功能包括: - **多集群管理**:集中管控多个 Kubernetes 集群。 - **应用商店**:提供预配置的应用模板,支持一键部署。 - **安全与权限**:基于角色的访问控制(RBAC)和审计日志。 - **监控与日志**:集成 Prometheus、Grafana 等工具实现资源监控。 #### 二、部署 Rancher ##### 1. 环境准备 - 确保 Docker 已安装并运行(以下命令检查状态): ```bash systemctl status docker ``` 若未安装,可通过 `apt-get install docker-ce` 或参考官方文档安装[^5]。 ##### 2. 使用 Docker 快速部署 运行以下命令启动 Rancher 服务: ```bash docker run -d --name rancher --restart=unless-stopped \ -p 80:80 -p 443:443 \ --privileged \ rancher/rancher:latest ``` 部署完成后,通过 `https://<服务器IP>` 访问控制台,首次登录需设置管理员密码[^3]。 #### 三、基本使用步骤 1. **添加集群** - 进入控制台,选择 **集群管理 > 创建集群**。 - 支持导入现有集群或自动创建新集群(如 AWS EKS、自定义节点等)。 2. **部署应用** - 通过 **应用市场** 选择模板(如 WordPress、MySQL),配置参数后一键部署[^4]。 - 自定义部署:上传 Kubernetes YAML 文件或使用图形化编辑器。 3. **监控与运维** - 在 **仪表盘** 查看集群 CPU、内存等资源使用情况。 - 通过 **日志** 功能追踪容器运行状态,支持 ELK 集成。 #### 四、典型应用场景 1. **混合云管理** 统一管理跨公有云(AWS、Azure)和私有云的 Kubernetes 集群。 2. **DevOps 流水线** 集成 CI/CD 工具(如 Jenkins),实现自动化构建与部署[^1]。 3. **边缘计算** 通过轻量级 K3s 集群支持边缘设备容器化。 ####
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值