【问题标题】:K8 create pod with uppercase image nameK8 使用大写图像名称创建 pod
【发布时间】:2021-03-17 19:21:42
【问题描述】:

如何创建镜像名称中包含大写和连字符的 Kubernetes pod 对象。这可能吗?

我尝试了不同的方法,将其设置在 env 变量中,但没有任何效果?

【问题讨论】:

标签: kubernetes kubernetes-pod docker-image


【解决方案1】:

不,你不能使用大写作为 docker 镜像名称,因此你不能在 kubernetes 中使用它。

docker tag 说:

图像名称由斜线分隔的名称组件组成, 可选地以注册表主机名作为前缀。主机名必须符合 使用标准 DNS 规则,但不能包含下划线。如果一个 主机名存在,它可以可选地后跟一个端口号 格式:8080。如果不存在,该命令使用 Docker 的公共 注册表默认位于registry-1.docker.io。 命名组件 可能包含小写字母、数字和分隔符。分隔符是 定义为句点、一个或两个下划线或一个或多个破折号。一种 名称组件不能以分隔符开头或结尾。

标签名称必须是有效的 ASCII,并且可以包含小写和大写 字母、数字、下划线、句点和破折号。标签名称可能不 以句点或破折号开头,最多可包含 128 字符。

名称组件可能包含小写字母、数字和分隔符。此列表中没有大写字母。

您将收到Error parsing reference: "blabla/Hello-world:latest" is not a valid repository/tag: invalid reference format: repository name must be lowercase

【讨论】:

    【解决方案2】:

    感谢 cmets。是的,这个问题是在 K8 CKAD 考试中提出的。 我发现有办法,让我更新,

    问题是创建一个带有大写图像名称的 K8 pod 对象。为此,

    1. 使用 'kubectl run nginx --image=nginx' 创建一个常规 pod

    2. 现在使用 'kubectl set image pod/nginx nginx=Nginx' 重新设置镜像名称

    使用这种方式,您可以设置包含大写字母的图像名称。 是的,我知道 dockerName 不应该是大写的。但我怀疑这个问题背后的意图是确定是否有任何方法可以创建具有大写图像名称的 pod。

    【讨论】:

      猜你喜欢
      • 2020-02-03
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      • 2019-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多