在Kubernetes掌舵中拉出Azure容器注册表映像

前端之家收集整理的这篇文章主要介绍了在Kubernetes掌舵中拉出Azure容器注册表映像 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在一个使用Helm-kubernetes和azure kubernetes服务的项目中,在此项目中,我尝试使用一个简单的节点映像,该映像已在helm图表中的azure容器注册表中推送,但返回ImagePullBackOff错误.

以下是一些详细信息:

我的Dockerfile:

FROM node:8

# Create app directory
WORKDIR /usr/src/app


COPY package*.json ./

RUN npm install

# Bundle app source
COPY . .

EXPOSE 32000
CMD [ "npm","start" ]

我的helm_chart / values.yaml:

replicaCount: 1

image:
  registry: helmcr.azurecr.io
  repository: helloworldtest
  tag: 0.7
  pullPolicy: IfNotPresent

nameOverride: ""
fullnameOverride: ""

service:
  name: http
  type: LoadBalancer
  port: 32000
  internalPort: 32000

ingress:
  enabled: false
  annotations: {}
    # kubernetes.io/ingress.class: Nginx
    # kubernetes.io/tls-acme: "true"
  paths: []
  hosts:
    - name: mychart.local
      path: /
  tls: []

resources: {}

nodeSelector: {}

tolerations: []

affinity: {}

当我尝试使用以下命令直接提取图像时:
docker pull helmcr.azurecr.io/helloworldtest:0.7
然后它成功拉出图像.

这里有什么问题吗?

提前致谢!

最佳答案
您的kubernetes集群需要通过容器注册表进行身份验证才能提取图像,通常这是通过docker secret完成的:

kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

如果使用的是AKS,则可以向注册表授予群集应用程序ID提取权限,这就足够了.

阅读:https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

猜你在找的Docker相关文章