跳到主要内容

构建基于镜像清单的集群镜像

本文将指导你如何使用镜像列表构建集群镜像,或使用现有的docker存储的tar包进行构建应用镜像。

镜像列表 构建

.
├── Kubefile
├── cni
│   ├── custom-resources.yaml
│   └── tigera-operator.yaml
├── images
│   └── shim
│   └── CalicoImageList
└── registry
└── docker
└── registry
FROM labring/kubernetes:v1.24.0
COPY cni ./cni
COPY images ./images
COPY registry ./registry
CMD ["kubectl apply -f cni/tigera-operator.yaml","kubectl apply -f cni/custom-resources.yaml"]

说明:

CalicoImageList 中的镜像列表将被拉取到本地,然后使用 kubectl apply -f 命令将其应用到集群中。

镜像列表目前支持:

  • docker.io/calico/cni:v3.20.0 这种远程的镜像
  • containers-storage:docker.io/labring/coredns:v0.0.1 这种本地的OCI容器镜像
  • docker-daemon:docker.io/library/nginx:latest 这种本地的docker容器镜像

镜像tar包 构建

.
├── Kubefile
├── cni
│   ├── custom-resources.yaml
│   └── tigera-operator.yaml
├── images
│   └── skopeo
│   ├── calico.tar
│   └── tar.txt
└── registry
└── docker
└── registry
FROM scratch
COPY cni ./cni
COPY images ./images
COPY registry ./registry
CMD ["kubectl apply -f cni/tigera-operator.yaml","kubectl apply -f cni/custom-resources.yaml"]

说明:

tar.txt 中的配置会被拉取到本地并重定向镜像列表,然后使用 kubectl apply -f 命令将其应用到集群中。 配置文件格式:

docker-archive:calico.tar@calico/cni:v3.20.0

镜像列表目前支持:

  • docker-archive 这种docker存储的镜像,仅支持单个镜像
  • oci-archive 这种oci存储的镜像,仅支持单个镜像