通过 Kubernetes,您可以从任何符合开放容器计划(OCI)的注册中心提取并运行容器镜像。


在本示例中,我们将演示如何使用符合 OCI 标准的注册表中的镜像来部署一个简单的 Nginx 应用程序。我们将使用 Docker Hub 提供的公共镜像,它是一个符合 OCI 标准的注册表。

【代码清单】

apiVersion: apps/v1
kind: Deployment
metadata:
 name: nginx-deployment
spec:
 replicas: 2
 selector:
  matchLabels:
   app: nginx
 template:
  metadata:
   labels:
​    app: nginx
  spec:
   containers:
   \- name: nginx
​    image: nginx:1.21.6
​    ports:
​    \- containerPort: 80

要部署该配置,请将其保存到名为 nginx-deployment.yaml 的文件中,然后运行以下命令:kubectl apply -f nginx-deployment。

【执行结果】

deployment.apps/nginx-deployment created

YAML 配置中的 image 字段指定了用于部署的容器映像。在本例中,我们从 Docker Hub 提取 nginx:1.21.6 映像。Docker Hub 是一个符合 OCI 标准的注册中心,这意味着它遵循开放容器倡议(Open Container Initiative)定义的标准。Kubernetes 与任何遵守这些标准的注册表都兼容,从而确保了容器映像来源的灵活性。Kubernetes 使用容器运行时(通常是 containerd 或 CRI-O)从注册表中提取映像,并在容器中运行。这个过程对用户来说是透明的,但确保你使用的注册表符合 OCI 标准以避免兼容性问题至关重要。

【小知识】

OCI,即开放容器倡议(Open Container Initiative),成立于 2015 年,旨在创建容器格式和运行时的开放标准。该倡议确保来自不同供应商的容器技术能够互操作,为容器化应用打造一个更加灵活多变的生态系统。