强大多云混合多K8S集群管理平台Rancher入门实战
@
概述
定义
Rancher 官网 https://rancher.com/
Rancher 官网文档 https://rancher.com/docs/
Rancher 最新版本2.6官网文档 https://rancher.com/docs/
Rancher GitHub源码地址 https://github.com/apache/incubator-seatunnel
Rancher是一个为在生产中部署容器的组织构建的完备开源容器管理平台,Rancher使Kubernetes在任何地方都可以轻松运行,满足it需求并授权给DevOps团队,从数据中心到云端再到边缘,Rancher提供Kubernetes-as-a-Service服务。目前docker镜像最新版本为v2.6.8
Rancher是一个全栈式管理各地的所有Kubernetes集群,同时可以管理多个K8S集群,将它们统一在集中式RBAC下,监控它们,并让您轻松部署和管理。与Rancher同样快速安装和管理K8S集群,还有Openshift、Kubesphere、sealos,本篇主要实战Rancher的使用。
为何使用
Rancher支持集中化认证、权限控制、监控和管理所有的Kubernetes集群。
提供一个简单直接的用户界面给DevOps工程师管理应用程序。
解决企业痛点问题包括多机房跨区域的容器调度,
是规模化生产级Kubernetes的优秀实践。
Rancher托管Kubernetes集群操作,部署Kubernetes集群——在本地、在云端和在边缘。
Rancher将这些集群统一起来,以确保一致的操作、工作量管理和企业级安全。是一个真正经过实战锤炼过的推荐生产使用Kubernetes集群管理工具。Rancher解决了DevOps团队与Kubernetes部署应用程序和IT人员交付企业关键服务的需求。
对于本地工作负载,我们提供RKE。对于公有云,我们支持所有主要的发行版,包括EKS、AKS和GKE。对于边缘、分支和桌面工作负载,我们提供K3s,一个经过认证的Kubernetes轻量级分发版
简化集群操作,Rancher提供简单、一致的集群操作,包括供应、版本管理、可见性和诊断、监控和警报,以及集中审计。
安全、策略和用户管理,Rancher自动化处理过程并为所有集群应用一组一致的用户访问和安全策略。
共享工具和服务,Rancher提供了丰富的服务目录,用于构建、部署和扩展容器化应用程序,包括应用程序打包装、CI/CD、日志、监控和服务网格。
其他产品
- RKE:Rancher Kubernetes Engine (RKE)是一个cncf认证的Kubernetes发行版,完全运行在Docker容器中。它可以在裸机和虚拟化服务器上工作。RKE解决了安装复杂性的问题,这是Kubernetes社区的一个常见问题。通过RKE, Kubernetes的安装和操作既简化又易于自动化,它完全独立于您正在运行的操作系统和平台。只要你能运行一个支持的Docker版本,你就可以用RKE部署和运行Kubernetes;只用几分钟就能从一个命令构建一个集群,它的声明式配置使Kubernetes的升级是原子的、安全的。
- K3S:相信不少人对K8S已经了解很多,而Rancher官方还提供一个产品K3S,其为一个轻量级Kubernetes,安装方便,资源消耗小只占原来一半内存,所有二进制文件小于100mb。
- Rancher与K3s一起使用时配备了一个简单而完整的解决方案来运行Kubernetes。
- K3s简化了边缘部署,能够快速启动数千个集群,Rancher通过Rancher Continuous Delivery帮助K3s用户管理大量集群,为用户提供了一个控制器,使他们能够有效地管理边缘的Kubernetes。
- 使用场景
- Edge
- IoT
- CI
- 开发和测试
- ARM
- 嵌入K8s
- Longhorn:是100%开源的,为Kubernetes构建的分布式块存储。虽然由Rancher Labs启动,Longhorn现在是cncf管理的项目。当与Rancher一起使用时,Longhorn可以提高开发人员和ITOps的效率,通过使持久存储易于部署,只需一次点击,而且没有专有替代方案的成本开销。它还减少了管理数据和操作环境所需的资源,使团队能够专注于更快地交付代码,交付更好的应用程序。
安装
简述
- Rancher可以从托管提供商提供Kubernetes和计算节点,然后在其上安装Kubernetes,或者导入运行在任何地方的现有Kubernetes集群。
- Rancher在Kubernetes之上增加了巨大的价值,首先通过为所有集群集中身份验证和基于角色的访问控制(RBAC),使全局管理员能够从一个位置控制集群访问。
- Rancher可以对集群及其资源进行详细的监控和警报,将日志发送给外部提供商,并通过应用目录直接与Helm集成。如果有外部CI/CD系统,可以把它插入Rancher,但如果没有Rancher甚至帮助自动部署和升级工作负载。
规划
从Rancher开始只需2个简单的步骤就可以看出其极简单部署方式
- 安装dokcer的主机
- 通过docker直接部署Rancher
使用四台服务器,一台单独安装Rancher,然后通过Rancher部署一个K8S集群,其中一台安装K8S的master和node,剩余两台安装node。
基础环境
- 设置主机名
# 设置主机名,可以根据规划名称部署如rancher,k8s-master01,k8s-node01,k8s-node02,我这里就不配置了
hostnamectl set-hostname rancher
- 主机和IP的Host配置
- 主机安全配置
- 关闭防火墙
- SELINUX=disabled
- 配置时间同步
# 配置crond任务
0 */1 * * * ntpdate time1.aliyun.com
- 关闭swap(K8S集群节点)
# 默认开启,注释掉
vim /etc/fstab
# /dev/mapper/centos-swap swap swap defaults 0 0
# 临时关闭
swapoff -a
- 配置路由转发
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
# 修改完执行
sysctl -p
Docker安装
- Rancher本身的安装和基于Rancher安装K8S集群都需要依赖底层容器引擎如Docker,关于Docker知识可以看前面的文章,四台服务器都安装好docker
#更新yum
sudo yum update
#安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#设置镜像仓库为国内的阿里云仓库
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装docker
sudo yum install -y docker-ce
#启动docker
sudo systemctl start docker
#设置开机启动docker
sudo systemctl enable docker
Docker也提供下面简化部署脚本
# 下载部署脚本
curl -fsSL get.docker.com -o get-docker.sh
# 部署docker
sh get-docker.sh
Rancher安装
docker hub官网查找需要安装版本,这里使用最新的2.6.8
# dockcer拉取镜像,通常选择amd,也可以选择docker pull rancher/rancher:v2.6.8-rc1
docker pull rancher/rancher:v2.6.8-rc1-linux-amd64
# 创建挂载目录
mkdir -p /home/commons/rancher/data
# 运行rancher
docker run -d --privileged -p 80:80 -p 443:443 -v /home/commons/rancher/data:/var/lib/rancher/ --restart=always --name rancher-v.2.6.8 rancher/rancher:v2.6.8-rc1-linux-amd64
登录Rancher的web UI,访问http://hadoop2/ 跳转到https://hadoop2
# 通过上面docker ps找到运行后的容器container-id 7eb2c11302a2的日志找到启动登录的密码,如果是docker run安装运行
docker logs 7eb2c11302a2 2>&1 | grep "Bootstrap Password:"
# 如果是Helm安装运行
kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{"\n"}}'
进入后有一个默认local集群,这个集群就是是用K3S。创建集群可以点击集群管理,create按钮,左边import存在支持对已存在集群的导入
创建用户
点击配置栏目,点击用户和授权,创建用户,给开发使用可以勾选Standard Users,确认后提交
创建集群
选择custom自定义
其他基本按照默认即可,还有高级选项里NodePort端口可以适当给大一点如30000-50000,进入下一步,先装一台包含所有节点即master和node都有,全选3个
复制后在要安装master的docker宿主机的命令行执行
返回Rancher的web UI的集群管理页面,可以看到刚才创建的集群已经在安装中
等待一段时间安装,看网络情况这里5-10分钟左右,等待时间完毕后可以看下k8s-cluster1集群已经处于active即激活状态
点击左上角的菜单找EXPLORE CLUSTER即探索集群中的k8s-cluster1,或者点击列表后面的EXPLORE,可以显示当前集群的概况信息
添加Node节点
在集群管理页面Clusters的列表中找到name列的k8s-cluster1,点击进入在注册Tab框中只勾选worker节点
拷贝docker run语句后到所有需要安装worker节点机器运行,查看容器节点rancher-agent
等待5-10分钟后查看worker节点容器信息如下
在Rancher的web UI的集群管理页面的机器列表(node名称用的原来hostname没有修改,因此不以hostname为主,可以看下后面roles角色)就已经有刚才安装好处于active激活状态的2台Worker节点
也可以通过集群管理入口查看相关配置
配置kubectl
如果要操作kubectl命令可以直接通过Rancher管理页面的Kubectl Shell来执行
另外如要要在节点主机上直接运行需要如下操作,用Rancher安装好的k8s集群的master节点默认是没有cubectl的命令
通过如下添加kubernetes yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
执行kubectl安装
yum install -y kubectl
kubectl get nodes
安装完直接执行kubectl使用连接被拒绝,通过rancher管理页面下载刚创建k8s-cluster1的KubeConfig文件,或者点击下面一个直接拷贝KubeConfig到剪贴板
粘贴配置信息到kube配置路径
# 创建目录
mkdir ~/.kube
# 将k8s-cluster1.yaml里面的内容粘贴到下面文件
vi ~/.kube/config
# 查询所有节点信息
kubectl get pods
创建项目和名称空间
发布应用需要先创建项目和名称空间,找到集群项目和名称管理,创建项目,输入项目名称test,其它4项可以按需配置包括容器资源限制,点击创建项目
在test项目记录点击创建命名空间
这里命名空间是针对k8s的,没有创建新的命名空间是查询只有下面几个默认的命名空间
输入命名空间testns,其他2项可以按需配置包括容器资源限制,点击创建
创建后页面中也有testns这个命名空间,从k8s集群中也可以查找testns命名空间
发布应用
这里以发布一个nginx的Deployments应用为主
选择testns命名空间,发布Deployment的名称testnginx,镜像为nginx:latest,副本数为2
也设置Ports的配置,选择Node Port类型,注意名称不能超过15个字符,nginx容器内部端口80,35000为暴露端口
创建后返回页面,过一会就下载完nginx并运行处理活跃状态
点击testnginx进入可以后可以查看部署的信息,如Pods、Services、Ingresses等,目前有两个副本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vNGUoQAg-1661956704467)(http://www.itxiaoshen.com:3001/assets/1661943335968kbERCAW1.png)]
通过其中一个pod部署节点ckserver1也即是192.168.5.52的IP去访问nginx ,http://ckserver1:35000/ ,成功返回信息(host对应ip配置hosts文件里)
可以很方便调整扩容和缩容的数量
通过kubectl也可以查看对应的信息
偏好设置
比如通过偏好设置可以设置深色主题
**本人博客网站 **IT小神 www.itxiaoshen.com
强大多云混合多K8S集群管理平台Rancher入门实战的更多相关文章
- 整理全网最全K8S集群管理工具、平台
整理常见的整理全网最全K8S集群管理工具.平台解决方案. 1 Rancher Rancher中文官网:https://docs.rancher.cn/ 2 KubeSphere 官网:https:// ...
- k8s 集群管理和微服务 适合做啥
k8s 集群管理和微服务 适合做啥 都知道k8s是集群 适合微服务 有很多教程 但你可以先了解他能干啥 traefix 是负载均衡工具 k8s 适合部署无状态依赖的微服务 可以按需求开启多个微服务 管 ...
- 基于 Clusternet 与 OCM 打造新一代开放的多集群管理平台
背景 随着 5G.物联网设备的爆炸性增长以及智能终端不断增强的计算能力,带来了前所未有的数据量,传统的中心集中式计算捉襟见肘."新基建"战略的实施,工业互联网.车联网/自动驾驶.智 ...
- 基于zookeeper+mesos+marathon的docker集群管理平台
参考文档: mesos:http://mesos.apache.org/ mesosphere社区版:https://github.com/mesosphere/open-docs mesospher ...
- OpenPAI:大规模人工智能集群管理平台介绍及任务提交指南
产品渊源: 随着人工智能技术的快速发展,各种深度学习框架层出不穷,为了提高效率,更好地让人工智能快速落地,很多企业都很关注深度学习训练的平台化问题.例如,如何提升GPU等硬件资源的利用率?如何节省硬件 ...
- 近万字案例:Rancher + VMware PKS实现全球数百站点K8S集群管理
Sovereign Systems是一家成立于2007年的技术咨询公司,帮助客户将传统数据中心技术和应用程序转换为更高效的.基于云的技术平台,以更好地应对业务挑战.曾连续3年提名CRN,并且在2012 ...
- 容器、容器集群管理平台与 Kubernetes 技术漫谈
原文:https://www.kubernetes.org.cn/4786.html 我们为什么使用容器? 我们为什么使用虚拟机(云主机)? 为什么使用物理机? 这一系列的问题并没有一个统一的标准答案 ...
- 四,k8s集群资源清单定义入门
目录 资源对象 创建资源的方法 清单帮助命令 创建测试清单 资源的三种创建方式 资源对象 workload:Pod, ReplicaSet, Deployment, StatefulSet, Daem ...
- NVIDIA-GPU归入K8S集群管理的安装文档--第二版
一,nvidia K80驱动安装 1, 查看服务器上的Nvidia(英伟达)显卡信息,命令lspci |grep NVIDIA 2, 按下来,进行显卡驱动程序的安装,驱动程序可到nvidia的官网 ...
随机推荐
- VR技术赋能五大领域,不止高级,更高效!
除了VR游戏.VR影视作品,究竟还有哪些产业领域会应用到VR技术并为生活带来改变呢?今天就帮大家好好梳理一下~ VR赋能交通,不只是高级 最近在网上看到了VR考驾照的新闻,网友都赞叹,现在学车都这么高 ...
- 强化学习-linux安装gym、atari和box2d环境
安装gym和atari环境 pip3 install gym pip3 install gym[atari] pip3 install gym[accept-rom-license] 安装box2d环 ...
- python基础知识-day9(数据驱动)
1.数据驱动的概念 在自动化测试中,需要把测试的数据分离到JSON,YAML等文件中. 2.YAML 的相关知识 YAML 入门教程 分类 编程技术 YAML 是 "YAML Ain't a ...
- 扩展新的WCV到标准的WC后,不能在业务角色里面看见视图解决方法
by zyi 感谢群主红枣的分享 1.把你的WCVIEW扩展进WC中 2.使用UI Designer打开你的WCVIEW 3.更改你的WCVIEW名字
- NC24325 [USACO 2012 Mar S]Flowerpot
NC24325 [USACO 2012 Mar S]Flowerpot 题目 题目描述 Farmer John has been having trouble making his plants gr ...
- 利用MySQL中的乐观锁和悲观锁实现分布式锁
背景 对于一些并发量不是很高的场景,使用MySQL的乐观锁实现会比较精简且巧妙. 下面就一个小例子,针对不加锁.乐观锁以及悲观锁这三种方式来实现. 主要是一个用户表,它有一个年龄的字段,然后并发地对其 ...
- 阿里云有奖体验:用PolarDB-X搭建一个高可用系统
体验简介 场景将提供一台配置了CentOS 8.5操作系统和安装部署PolarDB-X集群的ECS实例(云服务器).通过本教程的操作,带您体验如何使用PolarDB-X搭建一个高可用系统,通过直接ki ...
- 详解升讯威在线客服系统前端 JavaScript 脚本加密技术(1)
我在业余时间开发维护了一款免费开源的升讯威在线客服系统,也收获了许多用户.对我来说,只要能获得用户的认可,就是我最大的动力. 这段时间有几个技术小伙伴问了我一个有意思的问题:"你的前端脚本是 ...
- HTML知识点概括——一篇文章带你完全掌握HTML
HTML知识点概括 前端三件套分别是HTML3,CSS5,JavaScript 稍微介绍一下W3C标准: 结构化标准语言(HTML) 表现标准语言(CSS) 行为标准(DOM,JavaScript) ...
- 使用Thread类和Runnable接口实现多线程的区别
使用Thread类和Runnable接口实现多线程的区别 先看两种实现方式的步骤: public class ThreadDemo{ public static void main(String[] ...