zoukankan      html  css  js  c++  java
  • kubernetes配置imagePullSecrets秘钥来拉取镜像

    背景说明:

    imagePullSecret资源将Secret提供的密码传递给kubelet从而在拉取镜像前完成必要的认证过程,简单说就是你的镜像仓库是私有的,每次拉取是需要认证的。

    配置说明:

    ①创建docker-registry类型的Secret对象,并在定义pod资源时明确通过"imagePullSecrets"字段来申明使用哪个私钥去认证;

    ②创建docker-registry类型的Secret对象,然后把它添加到某个ServiceAccount对象中,使用了这个ServiceAccount对象创建出来的pod就自然而然通过认证获取到镜像;

    第一种方式较为常见,简单记录一下。

    具体配置:

    这里创建Secret对象有两种方式,各有千秋。

    方式一:通过命令行直接创建Secret

    kubectl create secret docker-registry <name> --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL

    例子:

    kubectl create secret docker-registry xxx-key 
        --docker-server=registry.xxxxxx.com 
        --docker-username='xxxxxx' 
        --docker-password='xxxxxx' 

    最后在yaml文件中使用这个创建出来的Secret:

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

    方式二:通过现存的docker认证文件来创建Secret

    kubectl create secret generic xxx-key 
        --from-file=.dockerconfigjson=/root/.docker/config.json> 
        --type=kubernetes.io/dockerconfigjson

    注意:config.json文件需要在主机上通过docker login 的方式登录后,才会生成。这种方式有一个好处,就是如果有多个镜像仓库,都先存在于一个config.json文件中,然后通过命令打入Secret。

    接下来,在yaml文件中引用,同上,略。

    结束.

  • 相关阅读:
    Nginx 解决WebApi跨域二次请求以及Vue单页面问题
    微信小程序部署问题总结
    Webapi文档描述-swagger优化
    [AOP系列]Autofac+Castle实现AOP日志
    WebApi Ajax 跨域请求解决方法(CORS实现)
    MSDTC启用——分布式事务
    [钉钉通知系列]Jenkins发布后自动通知
    [AOP系列]Autofac+Castle实现AOP事务
    [钉钉通知系列]SVN提交后自动推送消息到钉钉群
    Vue H5 History 部署IIS上404问题
  • 原文地址:https://www.cnblogs.com/ding2016/p/13384799.html
Copyright © 2011-2022 走看看