k8s生产化运维(一)
2023-04-02 本文已影响0人
mafa1993
生产化运维
镜像仓库
- 镜像仓库分为mainfile(元数据)和实际的二进制文件
- 一个仓库有多个镜像
- 镜像仓库遵循oci的distributeSpec,实现了这些api即可做一个自己的镜像仓库
- 仓库+镜像名:版本 确定唯一的镜像
- 公有仓库,开放、便捷、免运维、成本低
- 私有仓库,隐私性、敏感性、网络连通性、安全性
- 镜像删除时,blob不会被删除,需要通过垃圾回收再进行回收空间
元数据
- 描述镜像的核心信息,仓库、标签、校验码。镜像的构建过程,每个层的校验码等
- crictl inspecti 镜像名,可以查看(基于containerd,docker的命令无法查看详细的层)
块文件
- 每个块文件是一个文件层
harbor
- VMware开发的镜像仓库
- 有授权、镜像安全验证、镜像签名等功能
- replication job service 可以进行镜像仓库的搬迁
本地镜像加速Dragonfly
- 当集群规模很大时,同时拉取镜像,会出现问题
- dragonfly是基于跑p的只能镜像和文件分发工具,他的功能包括应用分发,缓存分发,日志分发,镜像分发
- 包含cluster manager和dfget proxy两个组件
- 每个节点上都有个dfget proxy,用来劫持docker pull和push,如果每个节点都没有镜像,就会发送请求道cluster manager,cluster manager和镜像仓库交互,拉取,拉取的blob,每一层放到不同的节点上,各个节点相互拉取
镜像安全
- 构建时,token、密钥等不能写到镜像中,配置与代码分离
- 应用依赖,避免不用的依赖和老的依赖,老的依赖可能存在安全漏洞
- 文件问题,如果底层的镜像文件中存在问题,不能通过上层解决,因为镜像分层是上层覆盖下层,下层还是存在的
镜像扫描
- 静态扫描
- 动态扫描
- 将k8s的image policy 的webhook和镜像扫描结果结合,存在问题的image禁止入内,如果已经部署了不会驱逐,重建的话会被阻拦
- 设置黑白名单,如果着急上线,可以先添加白名单,但是一段时间后仍然不过,进行驱逐
常用的镜像扫描软件
- anchore aqua twistlock clair qualys