如何使用“自定义镜像”创建容器服务Kubernetes集群

 容器服务Docker K8S     |      2019-10-14 00:00:00

背景

在使用容器服务创建Kubernetes集群的时候,默认是没有用户选择镜像的地方的,只能是系统镜像。但是对于一些客户而言,出于运维管理的需要,都希望可以安装一些特点的软件包。虽然说,目前也有比较绕的方案去解决类似的问题,例如在集群部署好以后,通过云助手等工具来协助完成软件包的安装,但是这种方式却不是最佳的解决方案。

那么究竟什么样的方案是最佳的方案呢,那就是自定义镜像的方式。下面主要来介绍容器服务Kubernetes集群对于自定义镜像的约束以及如何制作和使用自定义镜像。

准备工作

在我们确定要使用自定义镜像之前,我们首先需要了解容器服务对于自定义镜像的一些要求。主要如下:

  • 首先基础镜像推荐使用容器服务使用的最新的基础镜像,因为该镜像不仅可以满足部署Kubernetes集群的需求,同时也是经过容器服务团队严格测试的镜像。自定义镜像需要满足如下几点:

    • 镜像需要满足阿里云cloud-init的要求,具体可以参考
    • 镜像需要开启sshd server,且使用默认端口22
    • NTP时间同步使用阿里云NTP Server
  • 推荐使用packer类似的工具去制作自定义镜像,具体可以参考
  • 在容器服务控制台提交工单申请使用自定义镜像

使用自定义镜像

创建集群的过程中,选择高级选项,如下图
image

点击“选择”,会弹出自定义镜像的列表,选择要使用的镜像即可
image

待集群创建完成后,该集群就是使用了自定义镜像,后续的扩容等均会使用该镜像。

自定义镜像对于运维有很大的帮助,但是在制作自定义镜像过程中需要切记一定要基础阿里云的基础镜像去制作。