Bootstrap

python窗口界面自适应_Python Django撸个WebSSH操作Kubernetes Pod(下)- 终端窗口自适应Resize...

追求完美不服输的我,一直在与各种问题斗争的路上痛并快乐着

上一篇文章Django实现WebSSH操作Kubernetes Pod最后留了个问题没有解决,那就是terminal内容窗口的大小没有办法调整,这会导致的一个问题就是浏览器上可显示内容的区域太小,当查看/编辑文件时非常不便,就像下边这样,红色可视区域并没有被用到

RESIZE_CHANNEL

前文说到kubectl exec有两个参数COLUMNS和LINES可以调整tty内容窗口的大小,命令如下:

kubectl exec -i -t $1 env COLUMNS=$COLUMNS LINES=$LINES bash

这实际上就是将COLUMNS和LINES两个环境变量传递到了容器内,由于Kubernetes stream底层也是通过kubernetes exec实现的,所以我们在启动容器时也将这两个变量传递进去就可以了,就像这样

exec_command = [

"/bin/sh",

"-c",

'export LINES=20; export COLUMNS=100; '

'TERM=xterm-256color; export TERM; [ -x /bin/bash ] '

'&& ([ -x /usr/bin/script ] '

'&& /usr/bin/script -q -c "/bin/bash"

;