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节点的架构,通常只用于测试环境, ...
随机推荐
- Linux安装Oracle12C及一些参考
目录 安装 系统配置 安装前装备 安装依赖包 创建用户和组 修改内核参数 修改系统资源限制 创建安装目录及设置权限 设置oracle环境变量 安装Oracle 一些参考 compat-libstdc+ ...
- Scala 类型检查和转换
(1)obj.isInstanceOf[T]:判断 obj 是不是 T 类型. (2)obj.asInstanceOf[T]:将 obj 强转成 T 类型. (3)classOf 获取对象的类名. 1 ...
- Emmet Documentation ( Abbreviations+CSS Abbreviations )
Emmet Documentation Emmet - the essential toolkit for web-developers Abbreviations Abbreviations Syn ...
- #最大密度子图,0/1分数规划#UVA1389 Hard Life
题目 \(n\) 个点,\(m\) 条边的一个无向图,问导出子图的边数除以点数的最大值 分析 考虑二分这个答案,也就是0/1分数规划之后转换成 \(E-mid*V>0\) 这个问题虽然可以精确到 ...
- 使用pillow制作长图
这是来自一个妹子的需求,需要将多张图片拼接成一张长图 我是使用pillow这个库来实现的,下面的简单的代码,操作比较简单,代码还有优化的空间 def test(dirpath): ims = [Ima ...
- 基于Traefik如何实现向后转发自动去掉前缀?
前言 Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易. Traefik 可以与现有的多种基础设施组件(Docker.Swarm 模式.Kubernetes.Mara ...
- 【Java面试指北】单例模式
单线程下的单例模式: public class Singleton { private static Singleton instance; private Singleton() {} public ...
- HarmonyOS开发案例分享:万能卡片也能用来玩游戏
一.前言 作为一名开发爱好者,从大了讲,我学习并进行HarmonyOS相关开发是为了能为鸿蒙生态建设尽一份绵薄之力,从小了讲,就是为了自己的兴趣.而万能卡片是一个让我非常感兴趣的东西. 很多时候我跟别 ...
- 树模型-LightGBM-从三个层面改进xgb
LightGBM lightGBM总结
- 局部区块多个报表 TAB 页切换及局部区块的参数查询
在企业的业务系统中,如何从纷繁复杂的数据中抽丝剥茧看到关键数据信息呢?一个重要的途径就是将企业和各部门运营中关键的 KPI 集中在一起显示,同时尽量省去在企业的各个业务系统中分别查找数据. 下面是我近 ...