一、Rancher介绍

1.1 Rancher简介

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

Rancher 官方文档: https://docs.rancher.cn/

1.2 Rancher和k8s的区别

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

1.3 Rancher使用案例

(1) 中保银行

在使用 Rancher 平台之前,中银保险也尝试过使用原生的一些 Kubernetes 平台,但是这些平台学习 使用成本高昂、运行维护特别复杂。尤其是当我公司使用多种混合云环境的时候,一个个 Kubernetes 集 群就变成了一个个技术孤岛,反而加重了公司信息化转型的压力。Rancher 平台的采用有效地解决了之前 平台使用中所存在的问题,提升我公司测试业务平台的运行维护效率

(2) 蔚来汽车数字运营中国

Rancher 友好的图形化管理界面和资源创建的易用性、多集群管理能力、AD 认证和权限管理集成、应 用商店功能等各种能力,帮助我们简化了容器化应用的部署,得以方便地进行多云 Kubernetes 管理和权 限控制,提高了应用交付的效率。感谢 Rancher 团队,期待 Rancher 中国团队进一步优化功能,推进 Rancher 在国内的大量落地。

(3) 上汽集团

Rancher 2.x 是数据中心级别的管理平台,拥有多云管理的能力,符合未来企业上云的架构规划演 进;Rancher 的开源产品模式降低了技术人员的使用成本,在兼顾原生 Kubernetes 的同时,为开发人员 提供了丰富的 API 与系统功能,提高了开发生产效率。同时,Rancher 专业的容器产品团队,架起了开源 产品与生产业务的桥梁,在微服务、应用容器化、DevOps、业务上云等技术领域为上汽集团提供了可靠的 支持。

二、安装Rancher

2.1 初始化实验环境
主机名 IP 环境 功能
rancher 192.168.10.14 6核6G Centos7.9 rancher2.5.7
master 192.168.10.10 4核6G Centos7.9 kubelet-1.20.7
node1 192.168.10.11 2核4G Centos7.9  
node2 192.168.10.12 2核4G Centos7.9  
1.修改主机名
hostnamectl set-hostname rancher 2.配置hosts文件
192.168.10.10 master
192.168.10.11 node1
192.168.10.12 node2
192.168.10.14 rancher 3.ssh信任
ssh-copy-id master
ssh-copy-id node1
ssh-copy-id node2 4.关闭防火墙和selinux
systemctl stop firewalld ; systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 5.关闭swap分区
swapoff -a
注销/etc/fstab关于swap分区 6.内核参数修改
modprobe br_netfilter
echo "modprobe br_netfilter" >> /etc/profile
cat > /etc/sysctl.d/k8s.conf << EOFnet.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sysctl -p /etc/sysctl.d/k8s.conf 7.配置阿里云镜像
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 8.安装docker-ce
yum install -y yum-utils device-mapper-persistent-data lvm2 wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate yum install docker-ce docker-ce-cli containerd.io -y systemctl start docker && systemctl enable docker.service 9.修改 docker 配置文件,配置镜像加速器
vim /etc/docker/daemon.json
{
"registry-mirrors":["https://pft7f97f.mirror.aliyuncs.com", "https://rsbud4vc.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com","http://qtid6917.mirror.aliyuncs.com", "https://rncxm540.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
} systemctl daemon-reload && systemctl restart docker && systemctl status docker

11.时间同步
ntpdate time1.aliyun.com
2.2 安装Rancher
[root@rancher ~]# docker load -i rancher-2.5.10.tar.gz

[root@rancher ~]# docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher:v2.5.10

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

CONTAINER ID   IMAGE                     COMMAND           CREATED         STATUS         PORTS                                                                      NAMES
f952690f98dd rancher/rancher:v2.5.10 "entrypoint.sh" 3 seconds ago Up 2 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp condescending_spence
2.3 登录Rancher平台

https://192.168.10.14/

右下角可以修改为中文: admin:admin@123

Add cluster--导入集群---名称

# 在master上执行2次,第一次报错,第二次就行了
[root@master ~]# curl --insecure -sfL https://192.168.10.14/v3/import/6sqdq4kfcmkpf9tm4cjgjrhq7xbpsdzdn2w9ds4nhpknvrqp2xhj2s_c-vxfgn.yaml | kubectl apply -f -
error: no objects passed to apply [root@master ~]# curl --insecure -sfL https://192.168.10.14/v3/import/6sqdq4kfcmkpf9tm4cjgjrhq7xbpsdzdn2w9ds4nhpknvrqp2xhj2s_c-vxfgn.yaml | kubectl apply -f -
clusterrole.rbac.authorization.k8s.io/proxy-clusterrole-kubeapiserver created
clusterrolebinding.rbac.authorization.k8s.io/proxy-role-binding-kubernetes-master created
namespace/cattle-system created
serviceaccount/cattle created
clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding created
secret/cattle-credentials-9c7274e created
clusterrole.rbac.authorization.k8s.io/cattle-admin created
deployment.apps/cattle-cluster-agent created

显示pending状态需要在k8s控制节点和工作节点导入

docker load rancher-agent-2-5-10.tar.gz

执行docker exec -ti <容器id> reset-password 重置密码

三、通过Rancher部署监控系统

3.1 启用Rancher集群级别监控

#把 prometheus-grafana.tar.gz 镜像压缩包上传node节点,然后解压

[root@node1 ~]#  docker load -i prometheus-grafana.tar.gz
Loaded image: rancher/grafana-grafana:7.1.5
Loaded image: rancher/istio-kubectl:1.5.10
Loaded image: rancher/prom-node-exporter:v1.0.1
Loaded image: rancher/coreos-kube-state-metrics:v1.9.7
Loaded image: kubernetesui/dashboard:v2.0.0
Loaded image: rancher/jimmidyson-configmap-reload:v0.3.0
Loaded image: rancher/prometheus-auth:v0.2.1
Loaded image: rancher/library-nginx:1.19.2-alpine
Loaded image: rancher/prom-prometheus:v2.18.2
Loaded image: rancher/coreos-prometheus-config-reloader:v0.39.0
Loaded image: rancher/coreos-prometheus-operator:v0.39.0
Loaded image: kubernetesui/metrics-scraper:v1.0.4

#在开启监控的时候默认会拉取一些镜像,速度较慢,所以大家先把安装监控需要的镜像解压 启动监控时间可能比较长,需要等 10-20 分钟 在 rancher 主页面,点击集群名称:master

选择监控组件版本---------》启用监控-------》保存

显示监控API未就绪,需要等待10-20分钟,才能就绪

在事件里可以查看监控的安装过程

过10-20分钟后,监控API已经就绪了,那就刷新当前页面,监控部署完成后就可以看到我们的监控信息了

点开集群监控----选择Grafana

3.2 查看Grafana监控

通过右边的Grafana可以进入到grafana监控页面中

四、通过Rancher仪表盘管理k8s集群:部署tomcat服务

所有节点导入tomcat镜像
docker load -i tomcat.tar.gz
4.1 通过页面创建名称空间namespace

打开rancher主页面,点击仪表盘

[root@master ~]# kubectl get ns
NAME STATUS AGE
cattle-prometheus Active 28m
cattle-system Active 89m
default Active 7d20h
devlopment Active 25h
fleet-system Active 76m
jenkins-k8s Active 30h
kube-node-lease Active 7d20h
kube-public Active 7d20h
kube-system Active 7d20h
production Active 25h
qatest Active 25h
simon Active 2m18s
4.2 创建deployment资源

指定容器名称、标签、镜像名称、副本数

[root@master ~]# kubectl get pods -n simon -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
tomcat-5d6d8b69bf-2xnws 1/1 Running 0 86s 10.244.166.137 node1 <none> <none>
tomcat-5d6d8b69bf-fz7xv 1/1 Running 0 86s 10.244.166.138 node1 <none> <none>
4.3 创建Service资源

把k8s集群内部的tomcat暴露出来可以让外部访问

访问:http://192.168.10.11:30180/

Rancher管理K8s集群(14)的更多相关文章

  1. rancher导入k8s集群后添加监控无数据

    1.日志报错 rancher导入k8s集群后添加监控无数据,rancher日志报错: k8s.io/kube-state-metrics/pkg/collectors/builder.go:: Fai ...

  2. 使用kubectl管理k8s集群(二十九)

    前言 在搭建k8s集群之前,我们需要先了解下kubectl的使用,以便在集群部署出现问题时进行检查和处理.命令和语法记不住没有关系,但是请记住主要的语法和命令以及帮助命令的使用. 在下一篇,我们将讲述 ...

  3. 使用kubeseal加密和管理k8s集群的secret

    使用kubeseal加密和管理k8s集群的secret 在k8s的管理过程中,像secret这种资源并不好维护,kubeseal提供了一种相对简单的方式来对原始secret资源进行加密,并通过控制器进 ...

  4. 关于使用rancher部署k8s集群的一些小问题的解决

    问题一: 在rancher的ui上,不能创建k8s的master节点的高可用集群.创建k8s集群,添加节点的时候,可以添加多个master,但是多个master又没有高可用,只要其中一个出问题了,那么 ...

  5. 在node节点部署kubectl管理k8s集群

    感谢!原文链接:https://blog.csdn.net/sinat_35930259/article/details/79994078 kubectl是k8s的客户端程序,也是k8s的命令行工具, ...

  6. 使用kuboard界面管理k8s集群时使用ConfigMap挂载挂载到pod容器中,映射成一个文件夹

    将 ConfigMap 作为一个数据卷(在挂载时不指定数据卷内子路径,需要指定ConfigMap的子路径)挂载到容器,此时 ConfigMap 将映射成一个文件夹,每一个 KEY 是文件夹下的文件名, ...

  7. 强大多云混合多K8S集群管理平台Rancher入门实战

    @ 目录 概述 定义 为何使用 其他产品 安装 简述 规划 基础环境 Docker安装 Rancher安装 创建用户 创建集群 添加Node节点 配置kubectl 创建项目和名称空间 发布应用 偏好 ...

  8. Rancher v2.4.8 容器管理平台-集群搭建(基于k8s)

    整体概要 1.准备VMware+Ubuntu(ubuntu-20.04-live-server-amd64.iso)三台,一主两从(master,node1,node2) 2.在三台服务器上安装 do ...

  9. Rancher 下图形界面 搭建 K8S 集群

    首先我们准备4台 2核3G 的 centos 7 温馨提示:先安装好一台 CentOS 的虚拟机,并且安装好 docker,永久关闭防火墙. 再这个基础上我们分别克隆出四台 Rancher.K8S1. ...

  10. 基于kubeasz部署高可用k8s集群

    在部署高可用k8s之前,我们先来说一说单master架构和多master架构,以及多master架构中各组件工作逻辑 k8s单master架构 提示:这种单master节点的架构,通常只用于测试环境, ...

随机推荐

  1. 原型&继承题目及内容解答

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1. 代码输出结果 function Person(name) { this.name = name } var p2 = new Per ...

  2. CLion和WSL配置MPI运行及调试环境

    本文将介绍 Windows 下,使用 CLion 和 WSL 配置 MPI 运行及调试环境的方法. 0. 前提 阅读本文前,请确保: Windows 下已启用 WSL2,并安装了任一 Linux 发行 ...

  3. proteus的五状态显示控制器

    proteus的五状态显示控制器 1.实验原理 使用的核心器件还是4028,BCD译码器.将输入的四个信号接入输入端,输出信号选取0.1.2.4.8这五个输出状态驱动led显示.发光LED需要加入保护 ...

  4. UE4 c++重构简单死亡之眼的效果

    虚幻社区中有蓝图教学视频 使用C++重构,主要用到UGameplayStatics类中的SetGlobalTimerDilation方法,以及角色的相机管理器的调用,之后通过StartCameraFa ...

  5. C++设计模式 - 原型模式(Prototype)

    对象创建模式 通过"对象创建" 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定.它是接口抽象之后的第一步工作. 典型模式 Fac ...

  6. #dp#洛谷 3244 [HNOI2015]落忆枫音

    题目 分析 每个有入度的点可以选择任意一个父节点组成一棵树,那么原来的答案就是 \(\prod_{i=2}^ndeg[i]\) 现在多了一条边,如果边的终点是1或者它是一个自环那么可以不用管这条边. ...

  7. #树形dp#洛谷 3687 [ZJOI2017]仙人掌

    题目 给定一个简单无向连通图,问有多少种加边方案使得这个图变成简单仙人掌. 分析 首先找到一棵生成树,考虑其它非树边所对应的树的路径上的边最多只能用一次, 这可以用树上差分做,如果一个点到其父节点的边 ...

  8. 掌握 C++ 中 static 关键字的多种使用场景

    static是什么 在最开始C中引入了static关键字可以用于修饰变量和函数,后来由于C++引入了class的概念,现在static可以修饰的对象分为以下5种: 成员变量,成员函数,普通函数,局部变 ...

  9. Java操作FileUtils读取数据与写入数据到文件

    前言:用一行代码实现读取文件内容 代码如下: 一.添加FileUtils依赖: 1 <!-- FileUtils依赖--> 2 <dependency> 3 <group ...

  10. IDEA快捷键快速补齐类和对象名

    CTRL+ALT+V  ----------快速补齐 类和对象名 如:   new String("123") 光标放到最后 按下快捷键补齐为红色部分  String s = ne ...