介绍

GoTTY是一个能将你的命令行搬到网页上来的工具。

话不多说,先上图,我们一般使用kubectl都是在命令行,下面展示一下网页版kubectl get pod

安装

官方文档:yudai/gotty

  • 方式一
go get github.com/yudai/gotty
  • 方式二
brew install yudai/gotty/gotty
  • 方式三

直接下载你系统的二进制文件:yudai/gotty/releases

我是源码自己编译的

go build *.go

使用示例

  • 启动一个top终端
gotty top

默认是8080端口

访问如下

-p 指定端口

gotty -p 8089 top

-c 指定账号密码

gotty -c abc:123 top

-w 支持tty交互

gotty -w bash



--permit-arguments 支持get参数传参

参数通过arg传递,比如要传递多个参数ls -l

http://127.0.0.1:8080/?arg=ls&arg=-l

最后会变成空格分隔的形式传给命令启动的命令

比如,我们可以动态调用shell命令

gotty --permit-arguments bash -c

--random-url 生成随机地址

比如

 gotty --random-url -w bash

我们现在再访问得通过地址http://192.168.203.73:8080/fla589kv,而不再是一个简单的8080端口地址http://192.168.203.73:8080

--reconnet 支持重新链接

gotty -w --reconnect bash

简单说你操作一会儿后,刷新浏览器内容还保持着

可以配合--reconnect-time指定最大超时时间--reconnect-time

--title-format 指定终端名字

例如

gotty -w bash --title-format chenqionghe

访问如下,可以看到title变成了chenqionghe

K8S终端代理示例

启动kubectl终端

gotty --permit-arguments kubectl --kubeconfig ./test

这里我们试一下

kubectl get po

可以这样访问

http://127.0.0.1:8080/?arg=get&arg=po

查看pod日志

如果我们要想看pod nginx-demo-5b79dc546f-cs6f的日志,命令行是这样的

kubectl --kubeconfig ./test logs -f nginx-demo-5b79dc546f-cs6fz -n web`

地址就可以这样访问

http://127.0.0.1:8080/?arg=logs&arg=-f&arg=nginx-demo-5b79dc546f-cs6fz&arg=-n&arg=web

进入pod执行命令

命令行命令如下

kubectl --kubeconfig ./test exec -it nginx-demo-5b79dc546f-cs6fz -n web bash

我们换成地址访问

http://127.0.0.1:8080/?arg=exec&arg=-it&arg=nginx-demo-5b79dc546f-cs6fz&arg=-n&arg=web&arg=bash

访问如下

可以这里有个问题,不能执行命令!

这是为啥呢?

因为我们启动kubectl的时候没有加入交互参数-w,我们停止之前的命令加入-w再重新执行一遍

gotty -w --permit-arguments kubectl --kubeconfig ./test

再访问可以正常执行shell了

k8s命令行web代理神器gotty的更多相关文章

  1. 使用npm安装webpack失败时,可能被墙要为cmd命令行设置代理

    一.搜索到的相关概念: Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. npm是 Node packaged Modules(node的包管理工具).本身用n ...

  2. 命令行web客户端与HTTP REST API调试工具

    1.命令行web客户端 curl wget httpie 2.优雅的REST API调试工具 insomnia postman

  3. DSAPI CMD命令行进程代理

    DSAPI.文件.CMD命令行进程代理,是用来和CMD.exe或指定exe进行输出重定向的简化使用工具,可隐藏或显式地启动一个cmd.exe,并将输出流.输入流和错误流重定向至代理,通过事件触发方式与 ...

  4. 【转帖】Linux命令行操作json神器jq

    Linux命令行操作json神器jq https://www.cnblogs.com/chenqionghe/p/11736942.html jq类似一个awk或grep一样的神器,可以方便地在命令行 ...

  5. 好用到爆!GitHub 星标 32.5k+的命令行软件管理神器,功能真心强大!

    前言(废话) 本来打算在公司偷偷摸摸给星球的用户写一篇编程喵整合 MongoDB 的文章,结果在通过 brew 安装 MongoDB 的时候竟然报错了.原因很简单,公司这台 Mac 上的 homebr ...

  6. CentOS下使用命令行Web浏览器Links

    前言: Links是一个运行在命令行模式下的Web浏览器,只能查看字符.Links的官网是Click here. 安装Links yum install links 使用Links links URL ...

  7. K8S命令行工具——kubectl

    1.kubectl概述 2.kubectl命令的语法 例子: 3.kubectl子命令使用分类 (1)基础命令 (2)部署和集群管理命令 (3)故障和调试命令 (4)其他命令 4.kubectl命令例 ...

  8. JQ:命令行 json 解析神器 —— 命令行的Jsonview

  9. 写了一个Mac快速设置、打开和关闭Web代理的Shell命令

    缘由(痛点) 每次在Mac上设置Web代理,都需要点开"系统偏好设置 -- 网络 -- 高级 -- 代理",然后分别设置Web代理(HTTP)和安全Web代理(HTTPS),设置完 ...

随机推荐

  1. StringUtils.isBlank(str)和StringUtils.isEmpty(str)的区别

    1.StringUtils.isEmpty(CharSequence cs)实现源码 public static boolean isEmpty(CharSequence cs) { return c ...

  2. Java线程--ForkJoinPool使用

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11871099.html Java线程--ForkJoinPool使用 简单解释下: Fork是 ...

  3. Docker容器之搭建本地私有仓库

    Docker容器之搭建本地私有仓库 本地私有仓库搭建的具体步骤 首先下载 registry 镜像 docker pull registry 在 daemon.json 文件中添加私有镜像仓库的地址并重 ...

  4. 《Effective Python》笔记——第2章 函数

    一.函数出错的时候抛异常,而不要返回None pass 二.闭包 书里的例子不好,参考https://www.cnblogs.com/Lin-Yi/p/7305364.html 在一个外函数中定义了一 ...

  5. Elasticsearch按请求体基本查询

    1 分页: localhost:9200/get-together/_search {"query": {"match_all": {}},"from ...

  6. SpringMVC 解析(三) Controller 注解

    我在前面的文章中介绍了Spring MVC最核心的组件DispatcherServlet,DispatcherServlet把Servlet容器(如Tomcat)中的请求和Spring中的组件联系到一 ...

  7. 看我如何使用 shell 来获取所有 KVM 虚拟机的 IP 地址

    文章目录 脚本说明 脚本展示 效果展示 此脚本的初衷是因为,KVM创建的桥接网卡的虚拟机,无法使用virsh domifaddr命令获取IP,而创建的nat网卡的虚拟机,则可以直接使用virsh do ...

  8. webshell安全教程防止服务器被破解

    直接上传取得webshell 因过滤上传文件不严,导致用户能够直接上传webshell到网站恣意可写目录中,然后拿到网站的办理员操控权限. 2 增加修正上传类型 现在很多脚本程序上传模块不是只允许上传 ...

  9. 使用Flask开发简单接口

    作为测试人员,在工作或者学习的过程中,有时会没有可以调用的现成的接口,导致我们的代码没法调试跑通的情况. 这时,我们使用python中的web框架Flask就可以很方便的编写简单的接口,用于调用或调试 ...

  10. 『德不孤』Pytest框架 — 4、Pytest跳过测试用例

    目录 1.无条件跳过skip 2.有条件跳过skipif 3.练习 自动化测试执行过程中,我们常常出现这种情况:因为功能阻塞,未实现或者环境有问题等等原因,一些用例执行不了, 如果我们注释掉或删除掉这 ...