一、 grctl

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

功能模块 命令示例
平台应用控制 grctl service get <应用别名> -t <团队别名> 查看应用详情grctl service stop <团队别名>/<应用别名> 关闭指定团队内某个应用grctl service start <团队别名>/<应用别名> 启动指定团队内某个应用
集群节点控制 grctl cluster 查看集群情况grctl node list 查看集群节点列表grctl node down <节点ID>下线指定节点grctl node up <节点ID>上线指定节点grctl node delete <节点ID>删除指定节点grctl node cordon <节点ID>将某个节点设置为不可调度grctl node uncordon <节点ID>恢复某个节点的调度
如何得知当前应用的 <团队别名> <应用别名>?

周边工具集 - 图1

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

  1. [root@node1 ~]# grctl -h
  2. NAME:
  3. grctl - A new cli application
  4. USAGE:
  5. grctl [global options] command [command options] [arguments...]
  6. VERSION:
  7. 5.0-748241a-2018-12-09-08
  8. COMMANDS:
  9. service about application service operationgrctl service -h
  10. tenant grctl tenant -h
  11. node 节点管理相关操作
  12. cluster show curren cluster datacenter info
  13. exec 进入容器方法。grctl exec POD_NAME COMMAND
  14. init 初始化集群。grctl init cluster
  15. show 显示region安装完成后访问地址
  16. alerting 监控报警。grctl alerting
  17. msg 应用异常通知事件。grctl msg
  18. reset 重置当前节点grctl reset
  19. conf 集群和服务配置相关工具
  20. domain
  21. buildtest build test source code, If it can be build, you can build in rainbond
  22. help, h Shows a list of commands or help for one command
  23. GLOBAL OPTIONS:
  24. --config value, -c value default <USER_HOME>/.rbd/grctl.yaml
  25. --kubeconfig value, --kube value default <USER_HOME>/.kube/config
  26. --help, -h show help
  27. --version, -v print the version

1.1 查看应用详情

  1. # 获取应用详情
  2. grctl service get grac5e3c -t 4ur5male

周边工具集 - 图2

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

周边工具集 - 图3

1.2 操作节点

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

周边工具集 - 图4

  • 查看集群信息
  1. grctl cluster

周边工具集 - 图5

  • 获取某个节点的详细信息
  1. # 可以获取这个节点集群服务的健康状态
  2. grctl node get dfbb29b0d7b8b340120b4bb81a49efff

周边工具集 - 图6

  • 下线与上线某个节点
  1. # 下线节点
  2. grctl node down dfbb29b0d7b8b340120b4bb81a49efff
  3. # 上线节点
  4. grctl node up dfbb29b0d7b8b340120b4bb81a49efff
  • 禁止/允许调度到某个节点
  1. # 禁止调度到某个节点
  2. grct node cordon dfbb29b0d7b8b340120b4bb81a49efff
  3. # 允许调度到某个节点
  4. grctl node uncordon dfbb29b0d7b8b340120b4bb81a49efff

1.3 进入应用容器

  1. grctl exec <PodName> bash

1.4 修改泛域名解析

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

  1. grctl domain --ip <ip address>

二、其他命令行工具

2.1 din 进入指定容器

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

  1. din <容器ID>
如报错容器中没有bash,则在命令后加 sh

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

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

2.3 cclear清理已经退出的容器

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

  1. #!/bin/bash
  2. rm_ctns=$(docker ps -a -q --filter 'status=exited')
  3. if [ -z "$rm_ctns" ];then
  4. echo "no exited containers need to delete"
  5. else
  6. docker rm $rm_ctns
  7. fi

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

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

  1. #!/bin/bash
  2. #=============================
  3. # <none> images cleanup script
  4. #=============================
  5. cclear
  6. ilist=`docker images --filter "dangling=true" -q`
  7. if [ "$ilist" != "" ];then
  8. docker rmi $ilist
  9. else
  10. echo -e "\nThere is no images of <none>"
  11. fi

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的形式查看容器运行状态。

周边工具集 - 图7

原文: https://www.rainbond.com/docs/stable/operation-manual/cli.html