一、grctl 命令

grctl命令是rainbond自带的集群管理工具,它具备如下主要功能特性:

功能模块命令示例
平台应用控制grctl service get <url> 查看应用详情grctl service stop <团队别名>/<应用别名> 关闭指定团队内某个应用grctl service start <团队别名>/<应用别名> 启动指定团队内某个应用
集群节点控制grctl node list 查看集群节点情况grctl node down <节点ID>下线指定节点grctl node up <节点ID>上线指定节点grctl node delete <节点ID>删除指定节点grctl node unscheduable <节点ID>将某个节点设置为不可调度grctl node rescheduable <节点ID>恢复某个节点的调度

更多信息可通过help命令获取

  1. NAME:
  2. grctl - A new cli application
  3. USAGE:
  4. grctl [global options] command [command options] [arguments...]
  5. VERSION:
  6. 3.7.2-b396ca2-2018-10-15-23
  7. COMMANDS:
  8. service 应用管理相关操作
  9. tenant 租户管理相关操作
  10. node 节点管理相关操作
  11. cluster 数据中心相关操作
  12. exec 进入容器方法
  13. init 初始化集群
  14. show 显示region安装完成后访问地址
  15. alerting 监控报警
  16. msg 应用异常通知事件
  17. reset 重置当前节点
  18. conf 集群和服务配置相关工具
  19. domain 更新域名解析
  20. buildtest build test source code
  21. GLOBAL OPTIONS:
  22. --config value, -c value default <USER_HOME>/.rbd/grctl.yaml
  23. --help, -h show help
  24. --version, -v print the version

1.1 通过grctl命令查看应用运行详细信息

  1. # 应用 URL
  2. grctl service get http://dev.rainbond.com/#/team/test/region/private-center2/app/gr114c75/overview
  3. # 租户/应用别名
  4. grctl service get test/gr114c75

命令行工具 - 图1

  • 查看应用容器真实使用内存
    通过上面的操作可以获取应用所在的宿主机IP(10.0.4.12)和容器的ID(342d8b28b86e),接下来就可以通过 docker stats 命令来查看容器真实使用的内存:
  1. # 登录到应用所在的宿主机,如果是本机的话可以省略这一步
  2. ssh 10.0.4.12
  3. # 查看容器状态
  4. docker stats 342d8b28b86e

命令行工具 - 图2

1.2 通过grctl命令操作节点

  • 列出集群节点信息
  1. grctl node list

命令行工具 - 图3

  • 查看集群信息
  1. grctl cluster
  • 获取某个节点的详细信息
  1. # 可以获取这个节点集群服务的健康状态
  2. grctl node get 03f2ee6b-3f3e-4353-bbe3-0e49ce1da677
  • 下线与上线某个节点
  1. # 下线172.16.210.110节点
  2. grctl node down d4ac1bcf-4239-4d55-b1ea-db81e067eb70
  3. # 上线节点
  4. grctl node up d4ac1bcf-4239-4d55-b1ea-db81e067eb70
  • 禁止/允许调度到某个节点
  1. # 禁止调度到某个节点
  2. grct node cordon d4ac1bcf-4239-4d55-b1ea-db81e067eb70
  3. # 允许调度到某个节点
  4. grctl node uncordon d4ac1bcf-4239-4d55-b1ea-db81e067eb70

1.3 通过grctl命令进入应用容器

  1. grctl exec <PodName> <COMMAND>

1.4 通过grctl修改泛域名解析

Rainbond默认会申请一个泛解析域名提供给平台HTTP协议的应用使用,如果要修改泛解析地址,可以通过如下命令来设置:

  1. NAME:
  2. grctl domain
  3. USAGE:
  4. grctl domain [command options] [arguments...]
  5. OPTIONS:
  6. --ip value ip address
  7. --domain value domain
  8. # 特别注意
  9. grctl domain 默认仅支持修改我们默认分配的域名解析,域名已grapps.cn结尾
  10. 不支持离线环境和在线安装自定义域名的。
  11. 默认我们生成的域名日志可见/opt/rainbond/.domain.log

1.5 通过grctl测试源码构建

  1. USAGE:
  2. grctl buildtest [command options] [arguments...]
  3. OPTIONS:
  4. --dir value source code dir,default is current dir.
  5. --lang value source code lang type, if not specified, will automatic identify
  6. --image value builder image name (default: "goodrain.me/builder")
  7. --env value Build the required environment variables

二、其他命令行工具

2.1 din 进入指定容器

该命令是 docker exec -it $1 bash 命令的封装,可以进入到给定容器ID的容器内部。

  1. din <容器ID> <sh/bash/ash>

2.2 dps 查看运行与停止的容器

该命令是 docker ps -a 命令的封装,列出所有容器,包括运行与非运行状态。

2.3 cclear清理已经退出的容器

该命令是我们封装的脚本,可以清理已经退出的容器.

2.4 iclear 清理处于dangling状态的镜像

该命令是我们封装的脚本,可以清理处于 dangling 状态的镜像

2.5 igrep 快速搜索镜像

快速定位指定关键词的镜像,该命令是我们封装的脚本,示例如下:

  1. [root@manage01 ~]# igrep api
  2. 34dd66d1e6bb 2 weeks 63.76 MB rainbond/rbd-api:3.6
  3. c71664913ade 11 days 63.77 MB rainbond/rbd-api:cloud
  4. d4e43a94f3e3 4 months 310.3 MB rainbond/kube-apiserver:v1.6.4

2.6 ctop 查看容器资源使用情况

以top的形式查看容器运行状态。

命令行工具 - 图4

2.7 grclis 批量管理服务

  1. # 批量stop当前节点所有服务
  2. grclis stop
  3. # 批量start当前节点所有服务
  4. grclis start
  5. # 批量更新镜像版本
  6. grclis update all