Skip to content

chengyumeng/khadijah

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

139 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Khadijah

Build Statue Build Release Go Report Card

Khadijah 是一款基于奇虎 360 开源的 Wayne 的 kubernetes 命令行管理工具。

为什么使用 Khadijah ?

Feature

  • 支持了多种 Wayne OpenAPI 的接口调用
  • 支持了跨部门、跨项目的资源信息查询
  • 支持了 Kubernetes 原生信息的查询
  • 支持了基于 Wayne 的权限管理下的从命令行进入 Kubernetes Pod 容器的远程 Shell

快速安装

go get -u github.com/chengyumeng/khadijah
khadijah config set --apikey=example --websocketurl=ws://127.0.0.1:8080 --baseurl=http://127.0.0.1:4200
# 必须指定 baseurl,该值为 Wayne 服务的 http(s)地址
# websocketurl 是用于远程 Shell 的 Wayne 地址,可以按需指定
# apikey 为需要调用 Wayne OpenAPI 需要指定的值(khadijah query 下所有操作依赖于这个值)
khadijah login -uadmin -padmin
khadijah get namespace
Name: admin Email:admin@360.cn

+----+--------------+-----------------+-------------------------------+-------------------------------+
| ID |     NAME     |      USER       |          CREATETIME           |          UPDATETIME           |
+----+--------------+-----------------+-------------------------------+-------------------------------+
| 27 | argo         | admin           | 2018-12-26 11:01:08 +0800 CST | 2018-12-26 11:01:08 +0800 CST |
+----+--------------+-----------------+-------------------------------+-------------------------------+
khadijah get deployment -n=infra
+-----+----------------------------------------+------------+-----+-----------+-------------+-------------------------------+
| ID  |                  NAME                  |    TYPE    | APP | NAMESPACE |    USER     |          CREATETIME           |
+-----+----------------------------------------+------------+-----+-----------+-------------+-------------------------------+
|   1 | infra-wayne                            | deployment |     |           | admin       | 2018-05-30 16:59:59 +0800 CST |
|   2 | infra-test                             | deployment |     |           | admin       | 2018-05-30 17:20:22 +0800 CST |
|   3 | infra-cpu                              | deployment |     |           | admin       | 2018-05-31 10:36:21 +0800 CST |
+-----+----------------------------------------+------------+-----+-----------+-------------+-------------------------------+
khadijah describe deployment move-num1 -n=infra -o=pretty
+-----------+-----------+---------+--------------------------------+------------------------------+----------+--------------------------------+---------------------------+
|   NAME    | NAMESPACE | CLUSTER |             LABELS             |            CONTAINERS        | REPLICAS |            MESSAGE             |           PODS            |
+-----------+-----------+---------+--------------------------------+------------------------------+----------+--------------------------------+---------------------------+
| move-num1 | infra     | K8S-1   | app:move-num1 qihoo-app:move   | php:docker.hub/php:1.1.0     | 1/1      | 2018-12-10 19:03:00 +0800      | move-num1-945d9577f-wnvtm |
|           |           |         | qihoo-ns:infra                 | nginx:docker.hub/nginx:1.1.0 |          | CST:Deployment has minimum     |                           |
|           |           |         |                                | qconf:docker.hub/agent:0.1.0 |          | availability. 2018-12-11       |                           |
|           |           |         |                                |                              |          | 14:52:19 +0800 CST:ReplicaSet  |                           |
|           |           |         |                                |                              |          | "move-num1-945d9577f" has      |                           |
|           |           |         |                                |                              |          | successfully progressed.       |                           |
+-----------+-----------+---------+--------------------------------+------------------------------+----------+--------------------------------+---------------------------+
khadijah query getpodinfo -c=K8S-1 --label=app
{
  "code": 200,
  "pods": [
    {
      "podIp": "172.17.4.44",
      "labels": {
        "app": "move-num1",
        "pod-template-hash": "501851339",
        "qihoo-app": "move",
        "qihoo-ns": "infra"
      }
    }
  ]
}

原理

khadijah 的工作基于 Wayne 的两个特性:

  • OpenAPI
  • Web API

用户可以配置独立调用两种 API,在使用之前,务必配置 Wayne 服务地址,例如:

khadijah config set --baseurl=http://www.wayne.cloud

调用 OpenAPI 接口,需配置 APIKey:

khadijah config set --apikey=xxx

OpenAPI 接口的调用方式举例:

khadijah query getvipinfo -p=18080 

调用 websocket (需要安装插件):

khadijah config set --websocketurl=ws://www.wayne.cloud

如需调用 Web API 接口,需要在 Wayne 上通过管理员设置登录密码, Wayne 设置路径为:

管理后台 =》权限 =》 用户列表 =》 重置密码

之后可以通过如下命令登录:

khadijah login -uadmin -padmin

恭喜你,之后就可以调用一切接口!

About

A command-line tool that makes Qihoo360/Wayne easier to use with kubernetes.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors