1.docker登陆认证

  1. [root@master ~]# vim /etc/docker/daemon.json
  2. {
  3. "insecure-registries": ["10.0.1.99:5000"]
  4. }

进行登录认证才能进行后续的操作,私有镜像仓库登录认证的语法和格式:docker login <nexus-hostname>:<repository-port>

  1. [root@master ~]# docker login 10.0.1.99:
  2. Username(admin): admin
  3. Password:
  4. login Succeeded
  5. [root@master ~]#

登录时,需要提供用户名和密码。认证的信息会被保存在~/.docker/config.json文件,在后续与私有镜像仓库交互时就可以被重用,而不需要每次都进行登录认证。

  1. [root@master ~]# cat ./.docker/config.json
  2. {
  3. "auths": {
  4. "10.0.1.99:5000": {
  5. "auth": "YWRtaW46aGFpcGFpMTIzQA=="
  6. },
  7. "134.205.136.89:5000": {
  8. "auth": "YWRtaW46aGFpcGFpMTIzQA=="
  9. }
  10. },
  11. "HttpHeaders": {
  12. "User-Agent": "Docker-Client/18.09.6 (linux)"
  13. }
  14. }

2.Kubernetes从私有镜像拉取镜像

在使用私有镜像拉取镜像时,需要为私有镜像仓库创建一个镜像仓库的密钥,并在创建容器中进行引用。创建镜像仓库的语法和格式:kubectl create secret docker–registry <regsecret-name> —docker–server=<your–registry–server> —docker–username=<your–name> —docker–password=<your–pword> —docker–email=<your–email>。

<regsecret-name>:所创建的私有镜像仓库密钥的名称;
<your-registry-server>:为镜像仓库的服务器地址;
<your-name>:登录镜像仓库的用户名;
<your-pword>:登录镜像仓库的密码;
<your-email>:用户的邮箱地址。

  1. //--docker-server=10.0.1.99:5000 值不要加http://
  2. [root@master ~]# kubectl create secret docker-registry mysecret --docker-server=10.0.1.99: --docker-username=admin --docker-password= --docker-email=yiyo@.com
  3. [root@master ~]# kubectl get secret
  4. NAME TYPE DATA AGE
  5. default-token-pwlvv kubernetes.io/service-account-token 5d7h
  6. mysecret kubernetes.io/dockerconfigjson 22h
  7. mysql-root-password Opaque 3d
  8. newsecret kubernetes.io/dockerconfigjson 13h
  9. [root@master ~]#

定义拉取镜像的yaml

  1. [root@master ~]# vim admin.yaml
  2. apiVersion: extensions/v1beta1
  3. kind: Deployment
  4. metadata:
  5. name: dentestreplce
  6. spec:
  7. replicas:
  8. template:
  9. metadata:
  10. labels:
  11. name: dentestreplace
  12. spec:
  13. containers:
  14. - name: dentestreplace
  15. imagePullPolicy: Always
  16. #imagePullPolicy: IfNotPresent
  17. image: 10.0.1.99:/test/travel-admin:1.0.
  18. ports:
  19. - containerPort:
  20. imagePullSecrets:
  21. - name: mysecret //我们上面创建的secret的名称

创建Deployment

如果不成功就在每个节点做开头第一步操作

  1. root@master test]# kubectl apply -f admin.yaml
  2. deployment.extensions/dentestreplce created
  3. [root@master test]# kubectl get pod -o wide
  4. NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
  5. dentestreplce-5759f6c9b6-89r8r / Running 48s 10.244.1.100 node01 <none> <none>
  6. dentestreplce-5759f6c9b6-d2p2x / Running 48s 10.244.3.91 node02 <none> <none>
  7.  
  8. //查看过程
  9. [root@master test]# kubectl describe pod dentestreplce-5759f6c9b6-89r8r
  10. Name: dentestreplce-5759f6c9b6-89r8r
  11. Namespace: default
  12. Priority:
  13. PriorityClassName: <none>
  14. Node: node01/10.0.1.133
  15. Start Time: Thu, May :: +
  16. Labels: name=dentestreplace
  17. pod-template-hash=5759f6c9b6
  18. Annotations: <none>
  19. Status: Running
  20. IP: 10.244.1.100
  21. Controlled By: ReplicaSet/dentestreplce-5759f6c9b6
  22. Containers:
  23. dentestreplace:
  24. Container ID: docker://17c5b9e8878c194cfd020ebecb84b963851f37b9a7fc5cff11b2423475098445
  25. Image: 10.0.1.99:/test/travel-admin:1.0.
  26. Image ID: docker-pullable://10.0.1.99:5000/test/travel-admin@sha256:71eee17b1d9692343e8b91075bfff86676549aadf4ba440a0f0116183480a42f
  27. Port: /TCP
  28. Host Port: /TCP
  29. State: Running
  30. Started: Thu, May :: +
  31. Ready: True
  32. Restart Count:
  33. Environment: <none>
  34. Mounts:
  35. /var/run/secrets/kubernetes.io/serviceaccount from default-token-pwlvv (ro)
  36. Conditions:
  37. Type Status
  38. Initialized True
  39. Ready True
  40. ContainersReady True
  41. PodScheduled True
  42. Volumes:
  43. default-token-pwlvv:
  44. Type: Secret (a volume populated by a Secret)
  45. SecretName: default-token-pwlvv
  46. Optional: false
  47. QoS Class: BestEffort
  48. Node-Selectors: <none>
  49. Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
  50. node.kubernetes.io/unreachable:NoExecute for 300s
  51. Events:
  52. Type Reason Age From Message
  53. ---- ------ ---- ---- -------
  54. Normal Scheduled 96s default-scheduler Successfully assigned default/dentestreplce-5759f6c9b6-89r8r to node01
  55. Normal Pulling 91s kubelet, node01 Pulling image "10.0.1.99:5000/test/travel-admin:1.0.0"
  56. Normal Pulled 91s kubelet, node01 Successfully pulled image "10.0.1.99:5000/test/travel-admin:1.0.0"
  57. Normal Created 91s kubelet, node01 Created container dentestreplace
  58. Normal Started 90s kubelet, node01 Started container dentestreplace
  59. [root@master test]#

Kunbernetes从私有仓库nexus拉取镜像的更多相关文章

  1. k8s实战之从私有仓库拉取镜像 - kubernetes

    1.实战目的 从私有docker仓库拉取镜像,部署pod.上一篇中,我们搭建了私有的镜像仓库,这一篇我们将与k8s结合实战使用私有仓库. 2.登录docker 为了完成本次实战,需要登录docker, ...

  2. K8S从私有仓库拉取镜像

    通常来讲,我们在通过公共镜像仓库拉取docker镜像的时候,不需要任何的认证操作,但我们在构建了企业的私有镜像以后,就不得不在拉取镜像之前通过用户名密码来完成认证. 在docker单机环境中,我们可以 ...

  3. 配置 Containerd 在 harbor 私有仓库拉取镜像

    官方文档地址:https://github.com/containerd/cri/blob/master/docs/registry.md 严格来说,这个具体可分为两部分 1.在k8s中使用Conta ...

  4. Portainer安装,配置自定义镜像仓库拉取镜像

    Portainer介绍 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台 ...

  5. 关于使用kubeoperator搭建k8s集群使用containerd作为容器运行时,从自己搭建的habor仓库拉取镜像的有关说明

    1.kubepi界面添加habor仓库信息,并授权给k8s集群 这一步的操作是当在工作负载选择从harbor仓库拉取镜像时会自动创建有关的secrets信息,从而不用事先手动创建了(有别于kuboar ...

  6. 【docker】【mysql】docker安装mysql,阿里云docker镜像加速器,docker搜索查看远程仓库上的镜像,docker拉取镜像,查看本地所有镜像,查看容器的运行状况,查看容器的详细信息

    在docker上安装mysql有两种方式 1.通过Dockerfile构建 2.直接在docker hub上拉取镜像安装 =================本篇采用方法2=============== ...

  7. docker拉取镜像报错:net/http: TLS handshake timeout.

    docker拉取镜像报错:net/http: TLS handshake timeout. 启动一个后台的busybox容器 [yunva@node1 network-scripts]$ docker ...

  8. Docker学习笔记二:Docker常用命令及提升拉取镜像的速度

    一.Docker命令: 1.docker images   //命令用来查看docker中所包含的镜像信息 2.docker ps -a    //命令用来查看docker中所包含所有容器信息(运行状 ...

  9. Docker笔记5:实现加速器,加快下载/拉取镜像速度

    由于 Docker 官方仓库存储于国外服务器,因此,我们使用d ocker pull 命令拉取镜像时,速度很慢.但是,我们可以使用国内服务商提供的加速器进行加速,加速器实质是一个IP地址,将其加入到d ...

随机推荐

  1. tzfile - 时区信息

    SYNOPSIS #include <tzfile.h> DESCRIPTION 时区信息文件被 tzset(3) 使用, 其开头为特征字符"TZif", 以此标示该文 ...

  2. Arrays 001

    1.1 Array Initalization First of all, we need know Java arrays is static. When the array is initiali ...

  3. 【学术篇】SDOI2009 SuperGCD

    特别说明: 为了避免以后搬家时的麻烦, 这里的文章继续沿用csdn的风格和分类好了~ Emmmm这个题是一道高精度的模板题啊~ 既然是高精度的裸题, 那我们这些懒人当然是选择:用python啦~ 懒癌 ...

  4. MYSQL分数排名

    编写一个 SQL 查询来实现分数排名.如果两个分数相同,则两个分数排名(Rank)相同.请注意,平分后的下一个名次应该是下一个连续的整数值.换句话说,名次之间不应该有“间隔”. +----+----- ...

  5. vue 学习五 深入了解components(父子组件之间的传值)

    上一章记录了 如何在父组件中向子组件传值,但在实际应用中,往往子组件也要向父组件中传递数据,那么此时我们应该怎么办呢 1.在父组件内使用v-on监听子组件事件,并在子组件中使用$emit传递数据 // ...

  6. paper 16 : 计算机视觉领域博客资源

    这是收录的图像视觉领域的博客资源的第一部分,包含:中国内地.香港.台湾 这些名人大家一般都熟悉,本文仅收录了包含较多资料的个人博客,并且有不少更新,还有些名人由于分享的paper.code或者数据集不 ...

  7. 虚拟IP---Linux下一个网卡配置多个IP

    转:http://blog.csdn.net/turkeyzhou/article/details/16971225 Linux下配置网卡ip别名何谓ip别名?用windows的话说,就是为一个网卡配 ...

  8. easyUI tabs 显示与隐藏 tab 页

    隐藏: tab_option = $('#tabs').tabs('getTab'," 单位信息 ").panel('options').tab; tab_option.hide( ...

  9. 秦曾昌人工智能课程---6、Decision Tree Learning

    秦曾昌人工智能课程---6.Decision Tree Learning 一.总结 一句话总结: 怎样去构建决策树:比如一维:***|00|***|000|***,|为分割线,每个分割点都是一种情况, ...

  10. 反射Reflection

    using System; using System.Collections.Generic; using System.Linq; using System.Reflection;// <-- ...