nginx通过传参做动态代理

nginx通过传参做动态代理:可以访问http://172.20.47.38/console/?host=172.20.47.11, 来直接代理到gotty的172.20.47.11:50000 的websocket

  可以将参数进行base64加密, 如:

然后通过访问http://172.20.47.38/console/?host=MTcyLjIwLjQ3LjM4 来访问gotty: 参考: http://man.hubwiz.com/docset/OpenResty.docset/Contents/Resources/Documents/set-misc-nginx-module.html#set_unescape_uri nginx要添加set-misc-nginx-module模块, 具体安装方式如下:

配置文件如下, 逻辑为: 第一次访问时, $uri是/console/ 则进行set_decode_base64解码,设置cookie 然后再访问几个js文件, 匹配.js, js再调用ws

      —- 旧的请求根目录版:

 

容器集成sftp服务

有个需求, 需要用户在调试时能方便地将文件拷贝到容器里, 需要做个带ftp功能的容器, 参考了: https://github.com/rlesouef/alpine-sftp 整个工程目录结构:

其中download为各文件下载目录 拿tomcat来作例: 配置文件config_x86_online.yml:

  也可以定义arm64架构的config来构建:

  首先Dockerfile, 下面是Dockerfile模板: base_alpine.j2

  tomcat.j2

  sftp-entrypoint.sh改了一下, 把后面启动sshd的删除了, 放到了supervisor管理, 另外增加了传环境变量来支持进行多目录挂载, 比如传: -e “SFTP=sftp:sftp:1001:100:/usr/local/tomcat,tomcat;/etc/supervisor.d,supervisor.d” 可以将/usr/local/tomcat挂载到/home/sftp/tomcat 也可将/etc/supervisor.d挂载到/home/sftp/supervisor.d

运行用户自定义的脚本bindmount.sh

  总的entrypoint.sh:

  总构建脚本build.py:

  后期可以基于base-alpine.j2来灵活定制, 如nginx.j2模板

  node.j2:

  最后执行命令构建:python Read more…

容器内更改系统时间

修改deploy, 增加如下:

截取部分deploy yaml配置:

  然后登录容器执行date -s “20200515 13:58:00” 即可更改时间

k8s利用反亲和性扩多实例

所有node文件az.txt, 其中1为zone1, 2为zone2, 3为zone3

run.sh