Rancher管理K8s集群(14)
一、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)的更多相关文章
- rancher导入k8s集群后添加监控无数据
1.日志报错 rancher导入k8s集群后添加监控无数据,rancher日志报错: k8s.io/kube-state-metrics/pkg/collectors/builder.go:: Fai ...
- 使用kubectl管理k8s集群(二十九)
前言 在搭建k8s集群之前,我们需要先了解下kubectl的使用,以便在集群部署出现问题时进行检查和处理.命令和语法记不住没有关系,但是请记住主要的语法和命令以及帮助命令的使用. 在下一篇,我们将讲述 ...
- 使用kubeseal加密和管理k8s集群的secret
使用kubeseal加密和管理k8s集群的secret 在k8s的管理过程中,像secret这种资源并不好维护,kubeseal提供了一种相对简单的方式来对原始secret资源进行加密,并通过控制器进 ...
- 关于使用rancher部署k8s集群的一些小问题的解决
问题一: 在rancher的ui上,不能创建k8s的master节点的高可用集群.创建k8s集群,添加节点的时候,可以添加多个master,但是多个master又没有高可用,只要其中一个出问题了,那么 ...
- 在node节点部署kubectl管理k8s集群
感谢!原文链接:https://blog.csdn.net/sinat_35930259/article/details/79994078 kubectl是k8s的客户端程序,也是k8s的命令行工具, ...
- 使用kuboard界面管理k8s集群时使用ConfigMap挂载挂载到pod容器中,映射成一个文件夹
将 ConfigMap 作为一个数据卷(在挂载时不指定数据卷内子路径,需要指定ConfigMap的子路径)挂载到容器,此时 ConfigMap 将映射成一个文件夹,每一个 KEY 是文件夹下的文件名, ...
- 强大多云混合多K8S集群管理平台Rancher入门实战
@ 目录 概述 定义 为何使用 其他产品 安装 简述 规划 基础环境 Docker安装 Rancher安装 创建用户 创建集群 添加Node节点 配置kubectl 创建项目和名称空间 发布应用 偏好 ...
- Rancher v2.4.8 容器管理平台-集群搭建(基于k8s)
整体概要 1.准备VMware+Ubuntu(ubuntu-20.04-live-server-amd64.iso)三台,一主两从(master,node1,node2) 2.在三台服务器上安装 do ...
- Rancher 下图形界面 搭建 K8S 集群
首先我们准备4台 2核3G 的 centos 7 温馨提示:先安装好一台 CentOS 的虚拟机,并且安装好 docker,永久关闭防火墙. 再这个基础上我们分别克隆出四台 Rancher.K8S1. ...
- 基于kubeasz部署高可用k8s集群
在部署高可用k8s之前,我们先来说一说单master架构和多master架构,以及多master架构中各组件工作逻辑 k8s单master架构 提示:这种单master节点的架构,通常只用于测试环境, ...
随机推荐
- 记录--webpack和vite原理
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 每次用vite创建项目秒建好,前几天用vue-cli创建了一个项目,足足等了我一分钟,那为什么用 vite 比 webpack 要快 ...
- 记录--手写$forceUpdate,vm.$destroy方法
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 vm.$forceUpdate (1)作用 迫使Vue.js实例重新渲染.注意它仅仅影响实例本身以及插入插槽内容的子组件,而不是所有子组件 ...
- 记录--手写vm.$mount方法
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.概述 在我们开发中,经常要用到Vue.extend创建出Vue的子类来构造函数,通过new 得到子类的实例,然后通过$mount挂载到 ...
- 详解SSL证书系列(6)了解HTTP及网络基础
使用HTTP协议访问Web 你知道当我们在网页浏览器(比如Chrome)的地址栏中输入URL时,Web网页是如何呈现的吗? Web页面当然不会凭空显示出来.根据Web浏览器地址栏中指定的URL,W ...
- LOTO示波器选型指南
LOTO示波器选型指南 LOTO示波器属于虚拟示波器,产品主要基于USB接口的,所以使用LOTO示波器产品需要配备一台Windows电脑或者Android(安卓)智能手机/平板. 针对一些特殊应用的工 ...
- C# 单例模式使用 Singleton
Singleton 类如下: public class Singleton<T> where T : class, new() { private static T _instance; ...
- 基于quartus的高级时序分析
基于quartus的高级时序分析 一.派生时钟和异步存储器 派生时钟就是和独立时钟存在频率或者相位关系的时钟,异步存储器就是具有存储读写异步功能的存储器.在时序分析中,这两个部分的静态时序分析是需要设 ...
- verilog设计知识集合
verilog设计知识集合 一.基本知识 verilog HDL,verilog硬件描述语言,可从上层到下层一直设计,使用一些列分层的模块来表示极其复杂的数字系统的语言.利用EDA工具将模块转化为网表 ...
- C#第一个helloworld程序
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 usin ...
- #SPFA#洛谷 4042 [AHOI2014/JSOI2014] 骑士游戏
题目 分析 如果我想普通攻击1,那么必须干掉所有产生的其它怪兽,这不由得可以用一个不等式来表示, \(普攻+\sum need<法攻\) 但是所需要消灭的怪兽同样可以这样进行,所以它可能具有后效 ...