使用rancher满足程序猿刚需

通过将近1个季度的努力,基本上完成了内网开发、测试以及生产环境(借助公有云容器引擎服务)关键服务容器化工作。 在这个过程中,本来是把已经验证过的技术和方案进行落地,只是执行上的问题。但是研发大爷在使用过程中又提出了许多新的需求,见招拆招之后,发现还是有些许收获,因此整理成文,本文介绍rancher server的应用。

一、什么是rancher?

Rancher是一个开源的企业级容器管理平台,通过使用rancher,可以快速的构建出kubernetes环境并对其进行可视化管理。 Rancher由以下四个部分组成:
1、基础设施编排
Rancher可以使用任何公有云或者私有云的Linux主机资源。对计算资源进行整合和统一调度使用

2、容器编排与调度
Rancher包含了当前全部主流的编排调度引擎,同一个用户可以创建Swarm或者Kubernetes集群。并且可以使用原生的Swarm或者Kubernetes工具管理集群。

3、应用商店
Rancher的用户可以在应用商店里一键部署由多个容器组成的应用,例如容器的日志集中收集应用套件。

4、企业级权限管理
Rancher支持灵活的插件式的用户认证。支持Active Directory,LDAP, Github等 认证方式。 Rancher支持在环境级别的基于角色的访问控制 (RBAC),可以通过角色来配置某个用户或者用户组对开发环境或者生产环境的访问权限。

更多信息请移步官网:https://rancher.com/

二、为什么要用rancher?

每个人选择用rancher的原因可能各不一样,这里列出rancher能解决的一些实际问题。

1、降低kubernetes集群的部署门槛
我们通常使用kubeadm或者二进制方式部署kubernetes集群,如果你想拥有一个kubernetes学习环境,通过使用rancher,只需要按照向导在主机上运行指定的命令,然后等待片刻,就可以得到一个kubernetes环境,大大降低了集群的入门门槛。

2、统一管理各个环境的kubernetes集群
当有开发环境、测试环境、正式环境甚至更多的kubernetes集群的时候,如何集中管理这些集群资源是个问题。rancher提供了很好的解决方案,支持各大公有云的云容器和自建kubernetes的纳管工作。
简单来说,kubernetes实现了各个主机上docker资源的统一管理,rancher在kubernetes之上,实现了对kubernetes的集中管理。

3、替换kubernetes原生的dashboard
原生的dashboard虽然可以通过rbac来控制用户的访问权限,但在实际的配置中还是太繁琐了,尤其是用户数多,且每个用户的权限又要求设置的不一样的时候。Rancher通过项目和namespace挂钩,对用户授权各个项目的权限来有效简化了配置。

其次原生的dashboard的shell web窗口是不支持黏贴的,这个在内网开发和测试环境被无数的吐槽。Rancher提供了完美的解决方案。

三、使用rancher纳管k8s集群

Rancher server本身就是一个docker 容器,可以运行在kubernetes集群外部。当然如果你有需求的话,也可以部署在集群内。

# yum -y install docker
# docker run -d -p 80:80 -p 443:443  --name rancher-server -v /root/star_59iedu_com.pem:/etc/rancher/ssl/cert.pem -v /root/star_59iedu_com.key:/etc/rancher/ssl/key.pem -v /var/lib/rancher:/var/lib/rancher --restart=unless-stopped  rancher/rancher


设置初始密码和访问url地址


添加集群,选择导入方式纳管已存在的k8s集群

在k8s master节点上创建对应的资源,完成纳管。

这里经常遇到的问题是DNS解析问题,建议在dns后台将对应的记录添加好,避免出现纳管失败的情况。

四、rancher使用

纳管完成后可以看到k8s集群的资源情况

创建全局用户

通过创建project和namespace挂钩

点击集群中的“成员”设置全局用户对所有项目的权限,类似组的概念

点击项目“编辑”设置全局用户对项目的权限

终端使用
点击“集群”,可以运行kubectl工具

通过点击项目的工作负载“执行命令行”,可以运行一个shell终端,终端支持黏贴。

后记:

来自程序猿的若干需求:
1、我使用rancher的初衷是为了解决shell终端黏贴的问题,在内网开发和测试环境,码农们出于固定思维,喜欢登陆到容器内部瞧瞧看看,美其名曰debug。

2、适配完终端黏贴的问题之后,码农提出了新的需求,他们在终端里面捣鼓半天,需要把结果文件下载到本地,然后希望通过sz命令下载下来,或者通过rz命令能上传一些class文件进去编辑,这个是任何web终端工具都解决不了的问题,因为lrzsz不能适配web终端。解决方案是把文件保留到PVC里面,通过共享存储来解决这种无聊的需求。

3、紧接着,无聊的程序猿又要求能在pod里面远程debug,还是固定思维。原来tomcat非容器编排部署的是/home/tomcat/bin/catalina.sh jpda start 方式启动,默认会启动一个8000的端口,程序猿们就可以在IDE工具上进行断点debug。目前我们开发、测试和生产环境用的jdk、tomcat等基础镜像是同一个,程序猿们又不想修改maven上相关的配置,从运维上看,也不想维护多个基础镜像,那么如何解决这个问题呢?同一个基础镜像,相同的代码包,如何适配多个环境呢?且看下回分解。

原文地址:https://blog.51cto.com/ylw6006/2367448

时间: 2024-11-01 12:47:18

使用rancher满足程序猿刚需的相关文章

每一个程序猿需掌握的20个代码命名小贴士

代码中到处都须要命名.作为程序猿.我们得给类命名,给变量命名,给函数命名,给參数命名.给命名空间命名,等等等等.以下有20条小贴士能帮助你提高你的命名能力. 1.使用可以表达意图的名字 名字得能告诉我们它要做什么,为什么存在,以及是怎样工作的.选择可以表达意图的名字.将更有利于我们理解代码. <span style="font-size:14px;">int d; // elapsed time in days int elapsedTimeInDays; int days

程序猿趣闻

1.程序员找不女朋友的原因 程序员问禅师:“大师,我身体健康,思想端正,各方面都不错,为何就是找不到女朋友呢?” 禅师浅笑,答:“原因很简单,不过若想我告诉你,你需先写一段java代码.” 青年略一沉吟,写完了. “再写一段C#” 写完了, “再写一段php” 写完了, “再写一段js”,写完了, “这就是原因” . 2.技术宅男如何把妹? 1.自制系统盘内置马儿随时知道MM在做什么,计划任务定期搞崩系统从而保持用户粘性: 2.给MM推荐自制APP,随时知道mm位置给她惊喜: 3.经过一段时间你

挨踢部落故事汇(1):菜鸟如何蜕变为高级程序猿

坚持自己的梦想,相信代码终将改变世界. 机遇总是眷顾有准备的人--顽固派 当谈及到是怎么样一步步蜕变为程序猿的时候,顽固派充满了满满的回忆,7年多的开发经验让他懂得一个道理,机遇总是留给有准备的人.正如他的名字"顽固派"一样,开发中的各种坎坷,他都义无反顾的亲自尝试去解决.现如今,顽固派已经从菜鸟蜕变成精通PHP.MYSQL.WEB服务器配置.Android.C语言.Shell的大神,正在对WEB及移动应用等方面的知识进行深入系统学习和研究.说起开发,给这位80后奋斗青年开辟了职业生涯

OSChina 娱乐弹弹弹——程序猿眼中的女人

程序猿,整天跟操作系统,编程语言,各种打交道,那么程序猿眼中的女人是什么样子的呢? 有程序猿曾经用操作系统形容过各种类型的女人,有程序猿用编程语言描述各种星座的女人. 小编找到了几个版本,请看: 编程语言 NO1: 计算机语言的实质其实是为了让人类能够更好与计算机打交道,最终结果都是通过编译成二进制代码或通过解释器转译成二进制代码的形式,由计算机来 执行.而二进制就是 0 和1,假设 1 代表男人,0 代表女人,那么瞬间就可以发现世界就变成了一台大"计算机".而爱情和情爱也可以看成是

程序猿们,再不行动就来不及了!

引言 再不行动就来不及了! 今天这篇文章.不是技术.不是鸡汤,而是一篇对未来畅想的好(shui)文. 记得之前在群里聊天的时候.以前有群友问LZ."群主,你怎么近期不在群里聊技术.也不写技术文章了?" 群主当时的回答是,"以前我的目标是让大家技术都尽可能牛逼,如今我的目标是让大家生活都尽可能安居. " 诚然,由于年纪越来越大,工作时间越来越长的原因,LZ近期对于技术文章不太感冒.太简单的东西没有耐心去写(比方手把手教你搭建SSM这类文章).太深奥的文章,由于近期技术

程序猿必须进行的10项投资

★你的健康 显而易见,开发者常常都是坐着不动的.每天坐8到16个小时,仅仅歇息非常短的时间,你的肚子周围非常easy会堆起赘肉.肥胖是其他疾病的催化剂,而当中心脏病又是最可怕的.多花点时间运动一下就能避免这种情况,假设有可能的话,花点钱办一张健身房的会员卡. 长时间以不符合人体project学的姿势打字,也easy使开发者选成反复性的肌肉损伤,比方说腕管综合征.每隔几个小时拉伸一下你的手腕或者买块鼠标和键盘都能用的手腕护垫能够避免这种损伤. 盯着屏幕也会给你的眼睛造成压迫,这就是为什么建议配一副

程序猿如何“智斗”产品经理

程序猿如何"智斗"产品经理 RD和PM的恩怨是历年来有目共睹的, 每一个项目迭代中,RD都是希望能得到更多的"空闲时间",这时间可以养精蓄锐或是技术学习. PM则希望能够尽最大效率使用RD,把自己堆着的那些prd都能最快落地,希望不管出现任何问题都别延期. 这也是造成了两者最直接的矛盾. 但天天重复相似的问题,有没有通用的解决方案? 秉承多年与PM周旋的经验下面主要从以下八点开始阐述 求其上得其中 合理的攒人情 如何给PM施压 该正面交锋时,绝不手软 先小人后君子

【腾讯TMQ】解放程序猿(媛)的双手—iOS UI自动化测试

解放程序猿(媛)的双手-iOS UI自动化测试 前言 随着移动互联网时代的蓬勃发展,移动终端的自动化测试也在业界日益活跃,总体来看在Android平台上的自动化工具和实践比较多,但是说到iOS平台无论从自动化工具的数量还是质量上就陡降了.究其原因,无外乎是iOS系统的封闭性,加上相对Android用户的数量少,导致对这个平台系统的自动化进展缓慢,据笔者了解到的情况,很多iOS平台的测试人员还处于纯手工测试模式,自动化程度和Android平台无法相论,更别提和PC端相比了. 然而越是困难的事,越是

计想未来:年轻的程序猿如何凑够540万供老年花费?

前两天发了<30-40岁的程序员们,请把一些账算清楚,为过冬做准(一).(二).(三)>这篇文章,引起了很多网友的讨论,由于三篇文章的内容有点多,这里把这三篇文章的3个主要观点总结一下: 1.为了追求一种舒适的老年生活,不给儿女添负担,可以自由旅游,享受好一点的医疗及养老服务等,退休后计划每月花1万元,1年也就是12万(考虑到物价上涨指数,20多年后的20多万相当于现在的12万),连续30年,则需要花1062万.因为钱都是在退休前准备够,存在银行有利息,考虑到有养老金等补助,因此只需要在退休前