用户评测 | Docker管理面板系列——云帮(RainBond/CloudHelp 出色的k8s管理面板)

文章来源Senraの小窝,Rainbond团队感谢支持!html

一.介绍

和以前介绍的Crane不一样,来自好雨云(GoodRain)的云帮(CloudHelp目前已更名RainBond)是基于K8S的,说实话,感受比Crane的开源态度更好点,看得出来是认真在弄的。Crane我发的issue至今无人回复,感受应该是凉了node

关于云帮的定位,能够参考下官方的FAQSgit

Q: 云帮开源版的定位是什么?

A: 中小企业CI/CD平台,生产环境的应用管理平台。云帮不是拉近开发和运维的距离,而是让开发和运维作他们原本应该作的事情。开发对程序和业务负责,运维对资源负责,云帮做为开发和运维的助手。

Q: 发布开源版的目的是什么?

A: 但愿能有更多的企业和我的爱好者享受到容器及云计算技术所带来的高效与便利。经过社区版让广大的用户了解云帮产品的设计理念。

Q: 开源版发展规划

A: 云帮是个平台级的产品,即便是开源版咱们首要关注的是稳定性,产品设计会本着 功能简洁够用 的原则,下降使用门槛,让用户以最简单的方式来体验容器技术带来的红利。

Q: 云帮企业版是否有生产环境运行的案例?开源版是否是只是演示和测试的“玩具”?

A: 说到这个问题,我想须要明确一下你们判断一项技术或产品在“生产环境” 运行的标准是什么。只有对这个标准或定义明确了,讨论这个问题才有意义。我们从稳定性、可维护性、扩展性、支持服务四个方面来讲明:

1. 稳定性:云帮公有云实际上就是咱们在公有IaaS平台之上运行的一套云帮企业版。云帮公有云已上线运营超过700天,没有发生过一次因底层程序而形成的事故,SLA可达99.999% ,开源版基础模块的核心代码与企业版 100%一致。

2. 可维护性:云帮基础技术单元是Docker,服务编排和调度使用kubernetes,这两款软件是目前关注度最高的开源项目,文档和技术社区都很是成熟。云帮的其余模块咱们都采用Docker镜像的方式进行打包,利用kubernetes内部的高可用机制保证高可用。所以平台的维护成本很是低,再加上好雨技术团队多年的平台维护经验,云帮的部署、监控体系都很是的完善。

3. 扩展性:云帮平台云生支持分布式部署,借助kubernetes的容器调度机制,能够数秒钟启停上千个容器。平台容器主机也支持动态伸缩,能够在3分钟内上线新的容器主机。

4. 服务支持:针对开源版咱们提供及时的产品更新服务,平台bug,安全补丁会按照开发进度第一时间修复。提供社区、微信/QQ群在线支持,并提供完备的文档支持。
另外云帮企业版目前主要是私有化项目,已超过100家企业部署了企业版,如: zdoo.com 、姚记彩票网等。云帮社区版也有很多中小企业在生产环境中运行。

不说其余的,可是能够看出云帮是会持续维护的,起码不会忽然凉凉,不是为了开源而开源的玩具,因此若是须要一个基于K8s的管理平台,云帮或许也是个选择。github

二.安装

准备工做直接看官方文档吧 为啥会有3.4和3.5呢,由于我这个教程放了一阵子,而后发现官方发布了3.5...那么我就介绍3.5好了,毕竟3.4实验性质更多一点docker

3.5新版 https://www.rainbond.com/docs/stable/getting-started/pre-install.html 3.4旧版 https://www.kancloud.cn/good-rain/cloudhelp-community-install/198497安全

总结一下:bash

  • CentOS7的系统(必须是systemd的,Debian理论上能够,可是推荐CentOS7)
  • 配置足够(要求配置不低,实际使用建议集群)
  • NTP校时(配置ntpd以及修改时区)
  • 服务器必须配置静态IP,确保不会由于DHCP在重启后发生IP变更
  • 环境干净(官方建议装了Docker和kubelet的所有卸载了再来)
  • 最好下面安装完后就不要去修改hostname(非要改请同时修改/etc/host和/etc/hostname,并保证各节点不重复)
# 安装云帮
bash <(curl -s http://repo.goodrain.com/install/3.5/start.sh)

基本上算是一键安装了(若是你环境没问题的话)服务器

能够看出来这个gr-docker-engine彷佛是好雨云基于Docker 1.12的修改版,具体修改了啥就不清楚了,也多是单纯的从新封装.微信

Hmm,这个安装比较极其漫长,请耐心等待,而且建议挂个screen防止断线cookie

PS.若是发生长时间卡住不动的状况,请参照如下官方解决方案

检查当前任务是否生成相关日志文件,若未生成,则能够新开一个终端,执行systemctl restart rainbond-node
如重启node后以及未执行,使用`grctl tasks get <任务>` 检查依赖任务是否执行成功,若未成功,则检查依赖任务执行日志

完成后访问显示的URL,也就是http://服务器IP:7070/

第一次访问请注册(默认第一个注册为管理员)

注册完自动登陆,界面仍是挺好看的

添加计算节点的命令以下,这个是在管理节点上运行的,只要确保你为目标机器配置了SSH免密登录(建议测试下可以在管理节点上直接登陆过去),而后直接运行就OK了

# 添加计算节点到node集群里
grctl node add -i <计算节点内网ip> --Role compute
 
# 计算节点uid
uuid=$(grctl node list | grep <计算节点内网ip> | awk '{print $2}')
 
# 安装计算节点服务
grctl install compute --nodes $uuid
 
# 上线计算节点服务
grctl node up $uuid

云帮的使用花样仍是比较多的,完整的请查看官方文档——>传送门

我这边只介绍基础的

这个是直接从官方的示例部署的,须要知道的是,每一个云帮都会由好雨云分配一个二级域名,泛解析到你的节点上,因此访问用的是那个域名,彷佛是能够经过修改/etc/goodrain/console.py中的WILD_DOMAIN来变动,不过不肯定可行性。

另外的从Dockerfile啊,DockerCompose啥的建立应用就不提了,本身去玩玩吧。这个在我看来没有给你过多的选项,面板只是做为应用管理的存在,(服务器啥的)设置啥的全都是帮你固定的(自动配置),也许企业版有更多的设置,可是在我看来彷佛是够用了,不用你去操心和折腾也许正是团队或者公司须要的(?)

三.优化

一、 修改文件描述符限制

vi /etc/security/limits.conf
#增长以下内容
root soft nofile 102400
root hard nofile 102400
* soft nofile 102400
* hard nofile 102400

若是要生效须要重启

二、 内核参数调优

vi /etc/sysctl.conf
#增长以下内容
net.ipv4.neigh.default.gc_stale_time=120
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce=2
net.ipv4.conf.all.arp_announce=2
net.ipv4.tcp_max_tw_buckets=5000
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_max_syn_backlog=1024
net.ipv4.tcp_synack_retries=2
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
net.ipv4.conf.lo.arp_announce=2
vm.swappiness=10
vm.vfs_cache_pressure=50
vm.overcommit_memory=1
 
net.core.somaxconn = 65535
net.netfilter.nf_conntrack_max = 655350
net.netfilter.nf_conntrack_tcp_timeout_established = 1200
 
#使修改立刻生效
sysctl -p

三、 增长NFS挂载服务并发数

vi /etc/sysctl.conf
#增长以下内容
sunrpc.tcp_slot_table_entries = 128
 
#使修改立刻生效
sysctl -p

四、 开启容器swap使用限制

若是在启动容器时只指定-m而不指定--memory-swap,那么--memory-swap默认为-m的两倍,好比

docker run -it -m 200M image

表示容器最多使用200M的物理内存和200M的swap。 若是提示以下错误,多是由于主机上默认不启用cgroup来限制swap分区

WARNING : Your kernel does not support swap limit capabilities, memory limited without swap.

可使用以下命令来解决

echo GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" >> /etc/default/grub 
grub2-mkconfig -o /boot/grub2/grub.cfg >/dev/stdout 2>&1

更多能够参考官方文档:https://www.rainbond.com/docs/stable/platform-maintenance/performance-tuning/create-a-docker-storage-device.html

旧版文档: https://www.kancloud.cn/good-rain/cloudhelp-community-install/198880 新版文档: https://www.rainbond.com/docs/stable/getting-started/pre-install.html

-END-

进一步了解Rainbond v3.5.1

相关文章
相关标签/搜索