云数仓如何实现弹性伸缩?

不同组织对云原生有不同的解释:

云原生概念最早出现于2010年,Paul Fremantle的一篇博客中提及一种架构,其中包括:分布式、松散、自服务、持续部署与测试。

2015年Pivotal公司的Matt Stine在《迁移至云原生应用架构》一书中又对云原生应用架构做了一些定义,如符合12因素应用、面向微服务架构、自服务敏捷架构 、基于API的协作与高脆弱性。

 其思路在于利用Docker容器镜像分层的文件存储结构(Union FS),从 mount 信息中找出宿主机内对应当前容器内部文件结构的路径;则对该路径下的文件操作等同于对容器根目录的文件操作。

另外一个比较小众方法是借助上面 lxcfs 的思路,复用到 sys_admin 或特权容器的场景上读写宿主机上的文件。

4)特殊路径挂载导致的容器逃逸

这类的挂载很好理解,当例如宿主机的内的 /, /etc/, /root/.ssh 等目录的写权限被挂载进容器时,在容器内部可以修改宿主机内的 /etc/crontab、/root/.ssh/、/root/.bashrc 等文件执行任意命令,就可以导致容器逃逸。

 其中一个比较特殊且常见的场景是当宿主机的 /var/run/docker.sock 被挂载容器内的时候,容器内就可以通过 docker.sock 在宿主机里创建任意配置的容器,此时可以理解为可以创建任意权限的进程;当然也可以控制任意正在运行的容器。

存在于每个节点的日志容器内

如果你已经获取了此类容器的 full tty shell, 你可以用类似下述的命令创建一个通往母机的shell。

这个场景很常见,因为无论是不是线上环境,业务进行灾难重试和程序调试都是没办法避免的,所以容器经常被设置 ptrace 权限。

 这里的利用方式和进程注入的方式大致无二,如果是使用 pupy 或 metasploit 维持容器的shell权限的话,利用框架现有的功能就能很方便的进行注入和利用。拥有了该权限就可以在容器内执行 strace 和 ptrace 等工具。

我要回帖

更多关于 弹性伸缩的特点 的文章

 

随机推荐