10

有没有人对在 Azure 容器服务(kubernetes)中运行时如何从 Azure 容器注册表中提取有任何建议

我尝试了如下示例部署,但图像拉取失败:

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: jenkins-master
spec:
  replicas: 1
  template:
    metadata:
      name: jenkins-master
      labels:
        name: jenkins-master
    spec:
      containers:
      - name: jenkins-master
        image: myregistry.azurecr.io/infrastructure/jenkins-master:1.0.0
        imagePullPolicy: Always
        readinessProbe:
          tcpSocket:
            port: 8080
          initialDelaySeconds: 20
          timeoutSeconds: 5
        ports:
        - name: jenkins-web
          containerPort: 8080
        - name: jenkins-agent
          containerPort: 50000
4

2 回答 2

13

阅读此信息后,我得到了这个工作。

http://kubernetes.io/docs/user-guide/images/#specifying-imagepullsecrets-on-a-pod

所以首先创建注册表访问键

kubectl create secret docker-registry myregistrykey --docker-server=https://myregistry.azurecr.io --docker-username=ACR_USERNAME --docker-password=ACR_PASSWORD --docker-email=ANY_EMAIL_ADDRESS

将服务器地址替换为您的 ACR 地址的地址,并将 USERNAME、PASSWORD 和 EMAIL 地址替换为您的 ACR 管理员用户的值。注意:电子邮件地址可以是值。

然后在部署中,您只需告诉 kubernetes 使用该密钥来拉取镜像,如下所示:

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: jenkins-master
spec:
  replicas: 1
  template:
    metadata:
      name: jenkins-master
      labels:
        name: jenkins-master
    spec:
      containers:
      - name: jenkins-master
        image: myregistry.azurecr.io/infrastructure/jenkins-master:1.0.0
        imagePullPolicy: Always
        readinessProbe:
          tcpSocket:
            port: 8080
          initialDelaySeconds: 20
          timeoutSeconds: 5
        ports:
        - name: jenkins-web
          containerPort: 8080
        - name: jenkins-agent
          containerPort: 50000
      imagePullSecrets:
        - name: myregistrykey
于 2016-12-18T09:35:44.583 回答
2

这实际上是我们使事情变得更容易的事情。通过 Azure CLI 预配 Kubernetes 群集时,会创建一个具有参与者权限的服务主体。这将启用订阅中任何 Azure 容器注册表的拉取请求。

有一个 PR:https ://github.com/kubernetes/kubernetes/pull/40142被合并到 Kubernetes 的新部署中。它不适用于现有的 kubernetes 实例。

于 2017-03-03T22:52:36.083 回答