前言
关于 docker
K8S 是编排容器的技术平台, 容器技术的代表实现即为 docker, 因此, 操作 K8S 平台的前提条件是熟悉 docker 的核心概念, 掌握 docker 的基本操作, 了解制作 docker 镜像的完整过程.
如果你是一个开发者, 则必须掌握制作 docker 镜像的所有细节, 因为你会经常面临自测和修改镜像的场景.关于镜像
在K8S上部署的应用, 从镜像来源区分, 大体分为两类
- 一类是数据库, 消息中间件为代表的基础服务, 此类应用通常无需进行开发和制作镜像, 通常有官方的docker镜像支持, 部署此类应用, 优先参考官方文档. 但有时也会找不到官方镜像, 需要自己制作, 建议在有余力的情况下, 充分了解应用的特性和配置, 自己制作镜像;
- 一类是业务应用, 比如某个业务涉及的多个应用, 此类应用通常需要开发人员来进行制作镜像, 需要充分考虑应用的配置解耦, 存储分离;
部署应用前的准备
- 镜像仓库
镜像仓库是管理镜像资源的入口, 从作用域区分, 大体分为三种
- 本地仓库, 安装 docker 引擎后, 即在本地生成一个镜像仓库, 初始为空, 可以在此拉取中央仓库( DockHub )的镜像, 第三方仓库( 如 docker.io, gcr.io, quay.io 等等 )的镜像, 制作自己的镜像, 推送自己的镜像;
- 中央仓库/第三方仓库, 都是远程仓库, 由 DockerHub 官方组织或者第三方知名组织维护, 是重要的通用镜像的来源, 由于 GreatWall 的缘故, 通常无法直连, 需要挂代理或者找镜像站下载(比如阿里云的镜像站, 但仅限Docker Hub中的镜像, 如果是Google或其它厂商的镜像, 拉取不到时, 可以参考这里: https://www.ilanni.com/?p=14534#%E4%B8%89%E3%80%81k8s.gcr.io%E9%95%9C%E5%83%8F%E5%8A%A0%E9%80%9F);
- 私服仓库, 类似中央仓库, 我们可以自己搭建一个仓库中心, 来存放自己制作的镜像, 通过网络拉取和推送来共享镜像, 而不是物理拷贝, 导出, 导入(简易搭建私服, 可以参考: docker - 镜像仓库私服
);
- NFS服务
K8S 通过 pv 资源解耦了存储与容器的物理依赖, 所以在物理层需要有特定的存储服务适配 pv 资源, 比如 NFS 服务.
补充说明: 由于 pv 资源与物理层紧密结合的特性, 所以 pv 资源的维护需要格外重视, 由运维人员统筹管理