k8s命令行web代理神器gotty
介绍
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的更多相关文章
- 使用npm安装webpack失败时,可能被墙要为cmd命令行设置代理
一.搜索到的相关概念: Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. npm是 Node packaged Modules(node的包管理工具).本身用n ...
- 命令行web客户端与HTTP REST API调试工具
1.命令行web客户端 curl wget httpie 2.优雅的REST API调试工具 insomnia postman
- DSAPI CMD命令行进程代理
DSAPI.文件.CMD命令行进程代理,是用来和CMD.exe或指定exe进行输出重定向的简化使用工具,可隐藏或显式地启动一个cmd.exe,并将输出流.输入流和错误流重定向至代理,通过事件触发方式与 ...
- 【转帖】Linux命令行操作json神器jq
Linux命令行操作json神器jq https://www.cnblogs.com/chenqionghe/p/11736942.html jq类似一个awk或grep一样的神器,可以方便地在命令行 ...
- 好用到爆!GitHub 星标 32.5k+的命令行软件管理神器,功能真心强大!
前言(废话) 本来打算在公司偷偷摸摸给星球的用户写一篇编程喵整合 MongoDB 的文章,结果在通过 brew 安装 MongoDB 的时候竟然报错了.原因很简单,公司这台 Mac 上的 homebr ...
- CentOS下使用命令行Web浏览器Links
前言: Links是一个运行在命令行模式下的Web浏览器,只能查看字符.Links的官网是Click here. 安装Links yum install links 使用Links links URL ...
- K8S命令行工具——kubectl
1.kubectl概述 2.kubectl命令的语法 例子: 3.kubectl子命令使用分类 (1)基础命令 (2)部署和集群管理命令 (3)故障和调试命令 (4)其他命令 4.kubectl命令例 ...
- JQ:命令行 json 解析神器 —— 命令行的Jsonview
- 写了一个Mac快速设置、打开和关闭Web代理的Shell命令
缘由(痛点) 每次在Mac上设置Web代理,都需要点开"系统偏好设置 -- 网络 -- 高级 -- 代理",然后分别设置Web代理(HTTP)和安全Web代理(HTTPS),设置完 ...
随机推荐
- Request与Response
前言 request和response对象是由服务器创建的.我们来使用它们: request对象是来获取请求消息,response对象是来设置响应消息. Request 定义 服务器进行创建,通过该对 ...
- Android总结【不定期更新】
全屏显示: this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParam ...
- PyCharm编程软件详细安装教程
PyCharm编程软件安装教程&破解 一.官网下载软件 1. 网页搜索进入PyCharm官网下载页面(https://www.jetbrains.com/pycharm/download/ ) ...
- KC705E增强版基于FMC接口的 Kintex-7 XC7K325T PCIeX8 接口卡
一.板卡概述 本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持PCIeX8.64bit DDR3容量 ...
- Solution -「CTS 2019」「洛谷 P5404」氪金手游
\(\mathcal{Description}\) Link. 有 \(n\) 张卡牌,第 \(i\) 张的权值 \(w_i\in\{1,2,3\}\),且取值为 \(k\) 的概率正比于 \ ...
- Solution -「JOISC 2021」「LOJ #3489」饮食区
\(\mathcal{Description}\) Link. 呐--不想概括题意,自己去读叭~ \(\mathcal{Solution}\) 如果仅有 1. 3. 操作,能不能做? ...
- 依赖于angular的table组件
组件实现了以下功能 1. 列宽可动态拖动 2. 列数据排序 3. 列过滤 4. 列位置自由调整 除了需要引入angular.js(我用的是1.4.6版本),还需要引用一个angular衍生出来的插件n ...
- 如何使用IDEA工具右边栏的Database模块
理解Spring Boot自动配置数据源相关代码进行测试时总是无法链接数据库,但是其他方式链接又是没有问题.不知道哪里出现问题了,后来搜资料无意中看到idea提供了Database模块可以测试,就是用 ...
- JSP中引入JQuery和Layer,浏览器控制台报错404
路径没有写错,文件也存在为什么会报404呢?,解决方法是将layer文件夹使用source的方式 解决办法: 这时候你会发现layer文件夹变成了蓝色,重启一次服务器,页面中就没有报404异常了 总结 ...
- 编写资源yaml文件、压力机配置hosts
资源文件 Deployment/StatefulSet/DaemonSet.Service.Ingress等 参考:https://www.cnblogs.com/uncleyong/p/155710 ...