用户可以再web页面上直接登录k8s内部容器, 执行shell命令.
-
compile k8s-webshell (要求本地有make):
### 如果需要指定linux版本,加参数 `make linux` # make
-
build 镜像():
# make docker
-
kubernetes 部署(k8s 集群内 incluster 模式)到集群当中
-
docker-compose 部署(k8s集群外部署)
进入到doc/deploy/k8s 下面依次执行:
(注意
根据自己的pod部署的命名空间修改里面的namespace
字段)
# kubectl apply -f k8s-webshell-sa.yaml
# kubectl apply -f k8s-webshell-clusterrole.yaml
# kubectl apply -f k8s-webshell-secret.yaml
# kubectl apply -f k8s-webshell-clusterrolebinding.yaml
# kubectl apply -f k8s-webshell-deployment.yaml
# kubectl apply -f k8s-webshell-svc.yaml
修改doc/demo/client/index.html
中的以下内容的ip修改为容器的为域名(ssl证书为xx.com):
ws = new WebSocket("wss://xx.com:30001/api/ws?" + "token=" + wsToken);
然后打开index.html 就可以测试了
在项目根目录下执行:
docker-compose -f docker-compose.yaml up -d k8s-webshell
调用/auth
(POST方法)先获取token,参数如下:
{
"secretKey":"xxxxx",
"paasUser":"zhuruiqing",
"podNs":"richie",
"podName":"my-nginx-xxx6-jtr5k",
"containerName":"my-nginx"
}
参数说明:
secretKey api认证secretKey
paasUser paas平台用户
podNs pod命名空间
podName pod名称
containerName 容器名称
调用接口/api/ws
其中token为 请求auth后获得的token:
ws = new WebSocket("wss://xx.com:30001/api/ws?" + "token=" + wsToken);