云原生Kubernetes:Rancher管理k8s集群

目录

一、理论

1.Rancher

2.Rancher 安装及配置

二、实验

1.Rancher 安装及配置

三、问题

1. Rancher 部署监控系统报错

四、总结


一、理论

1.Rancher

(1)  概念

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

云原生Kubernetes:Rancher管理k8s集群_第1张图片

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

(2)Rancher 和 k8s 的区别
Rancher 和 k8s 都是用来作为容器的调度与编排系统。但是 rancher 不仅能够管理应用容器,更重要的一点是能够管理 k8s 集群。 Rancher2.x 底层基于 k8s 调度引擎,通过 Rancher 的封装,用户可以在不熟悉 k8s 概念的情况下轻松的通过 Rancher 来部署容器到k8s集群当中。

云原生Kubernetes:Rancher管理k8s集群_第2张图片

(3)Rancher架构

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

Rancher架构如下:

云原生Kubernetes:Rancher管理k8s集群_第3张图片

2.Rancher 安装及配置

(1)环境

表1 环境

节点 主机 IP地址
控制节点 master1 192.168.204.180
控制节点 master2 192.168.204.181
工作节点 node1 192.168.204.182
Rancher节点 rancher 192.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 <

(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              

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              

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地址
控制节点 master1 192.168.204.180
控制节点 master2 192.168.204.181
工作节点 node1 192.168.204.182
Rancher节点 rancher 192.168.204.30 

修改主机名

配置hosts文件

云原生Kubernetes:Rancher管理k8s集群_第4张图片

关闭安全机制

配置rancher到k8s主机互信

云原生Kubernetes:Rancher管理k8s集群_第5张图片

(2)安装docker

云原生Kubernetes:Rancher管理k8s集群_第6张图片

安装docker依赖包

安装docker-ce

启动docker服务

云原生Kubernetes:Rancher管理k8s集群_第7张图片

查看Docker 版本信息

云原生Kubernetes:Rancher管理k8s集群_第8张图片

(3) 安装rancher

在 master1 节点下载 rancher-agent 镜像

云原生Kubernetes:Rancher管理k8s集群_第9张图片

在 rancher 节点下载 rancher 镜像

云原生Kubernetes:Rancher管理k8s集群_第10张图片

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

查看进程

(4)登录 Rancher 平台

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

云原生Kubernetes:Rancher管理k8s集群_第11张图片

登录后如是英文页面,可点击右下角语言选项选择中文
云原生Kubernetes:Rancher管理k8s集群_第12张图片

云原生Kubernetes:Rancher管理k8s集群_第13张图片

提示,关闭即可

云原生Kubernetes:Rancher管理k8s集群_第14张图片

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

右下角设置语言

云原生Kubernetes:Rancher管理k8s集群_第15张图片

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

云原生Kubernetes:Rancher管理k8s集群_第16张图片

【集群名称】设置为 k8s-cluster,点击【创建】
云原生Kubernetes:Rancher管理k8s集群_第17张图片

选择复制第三条命令绕过证书检查导入 k8s 集群
云原生Kubernetes:Rancher管理k8s集群_第18张图片在 k8s 控制节点 master01 上执行刚才复制的命令,如第一次执行报错,再执行一次即可

云原生Kubernetes:Rancher管理k8s集群_第19张图片

添加成功

master节点查看信息

云原生Kubernetes:Rancher管理k8s集群_第20张图片

(6)Rancher 部署监控系统

启用监控

云原生Kubernetes:Rancher管理k8s集群_第21张图片(7)使用 Rancher 仪表盘管理 k8s 集群

云原生Kubernetes:Rancher管理k8s集群_第22张图片

(8)创建名称空间 namespace

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

云原生Kubernetes:Rancher管理k8s集群_第23张图片

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

云原生Kubernetes:Rancher管理k8s集群_第24张图片

(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】
云原生Kubernetes:Rancher管理k8s集群_第25张图片

(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】

云原生Kubernetes:Rancher管理k8s集群_第26张图片

云原生Kubernetes:Rancher管理k8s集群_第27张图片

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

云原生Kubernetes:Rancher管理k8s集群_第28张图片

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

云原生Kubernetes:Rancher管理k8s集群_第29张图片

三、问题

1. Rancher 部署监控系统报错

(1)报错

云原生Kubernetes:Rancher管理k8s集群_第30张图片

(2)原因分析

CPU内核数与内存需要扩容

(3)解决方法

调大内核与内存

修改前:

云原生Kubernetes:Rancher管理k8s集群_第31张图片

修改后:

云原生Kubernetes:Rancher管理k8s集群_第32张图片

四、总结

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

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

Rancher有如下问题:

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

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

你可能感兴趣的:(云原生Kubernetes,云原生,kubernetes,rancher)