侧边栏壁纸
  • 累计撰写 59 篇文章
  • 累计创建 52 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

k8s使用secret拉取私有仓库镜像

木东
2020-06-04 / 0 评论 / 0 点赞 / 42 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

环境描述

harbor私有仓库地址:reg.lyndon.com

用户名密码:admin/xxxxx

1. 创建一个Secret来保存验证口令

kubectl create secret docker-registry docker-reg-sec --docker-server=reg.lyndon.com --docker-username=admin --docker-password=xxxxx --docker-email=lyndon59@163.com
  • regsecret: 指定密钥的键名称, 可自行定义
  • --docker-server: 指定docker仓库地址
  • --docker-username: 指定docker仓库账号
  • --docker-password: 指定docker仓库密码
  • --docker-email: 指定邮件地址(选填)

2. 查看验证口令

kubectl get secret
NAME                                 TYPE                                  DATA   AGE
docker-reg-sec                       kubernetes.io/dockerconfigjson        1      9s

可以看到当前除了默认的密钥,还有我们刚才生成的.。另外要注意的是,该密钥只能在对应namespace使用,也就是这里的default,如果需要用到其他namespace,比如说test,就需要在生成的时候指定参数 -n test

3. 创建Deployment来自私库的镜像

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-nginx-97
spec:
  replicas: 2
  template:
    metadata:
      labels:
        run: my-nginx-97
    spec:
      imagePullSecrets:         #imagePullSecrets 参数告诉 Kubernets 应该从名为 dockercfg-192 的 Secret 里获取验证口令
   - name: docker-reg-sec
     containers:
        - name: my-nginx-97
          image: reg.lyndon.com/base/nginx-lb:1.7.9
          ports:
     - containerPort: 80

其中imagePullSecrets是声明拉取镜像时需要指定密钥, regsecret 必须和上面生成密钥的键名一致, 另外检查一下pod和密钥是否在同一个namespace, 之后k8s便可以拉取镜像

4. 扩展

删除验证口令secret

kubectl delete secret docker-reg-sec

0

评论区