月度归档: 2018 年 5 月

  • 在kubernetes集群中使用私有镜像源

    最近公司迁移到了新集群,为了确保服务上线后的稳定性,所有的应用上线之前都要在本地的minikube上跑一下,但原本在集群上用得正常的yaml,在minikube里就无法正常拉取docker镜像,Google一番之后被kubernetes的官方文档搞得一头雾水,拉到最下面才找到了原因,其实好好研究一下yaml就能发现不同的点,即yaml里有这样一行

    imagePullSecrets

    当deployment指定了特定的secret之后,其便会遵循这个secret中的docker镜像源的信息来拉取镜像,创建非常简单,只要

    $ kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
    secret "myregistrykey" created.

    其中email是选填的

    在yaml里就可以直接这样写:

    apiVersion: v1
    kind: Pod
    metadata:
      name: foo
      namespace: awesomeapps
    spec:
      containers:
        - name: foo
          image: janedoe/awesomeapp:v1
      imagePullSecrets:
        - name: myregistrykey

    参考资料:
    https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry