Kunbernetes从私有仓库nexus拉取镜像
1.docker登陆认证
- [root@master ~]# vim /etc/docker/daemon.json
- {
- "insecure-registries": ["10.0.1.99:5000"]
- }
进行登录认证才能进行后续的操作,私有镜像仓库登录认证的语法和格式:docker login <nexus-hostname>:<repository-port>
- [root@master ~]# docker login 10.0.1.99:
- Username(admin): admin
- Password:
- login Succeeded
- [root@master ~]#
登录时,需要提供用户名和密码。认证的信息会被保存在~/.docker/config.json文件,在后续与私有镜像仓库交互时就可以被重用,而不需要每次都进行登录认证。
- [root@master ~]# cat ./.docker/config.json
- {
- "auths": {
- "10.0.1.99:5000": {
- "auth": "YWRtaW46aGFpcGFpMTIzQA=="
- },
- "134.205.136.89:5000": {
- "auth": "YWRtaW46aGFpcGFpMTIzQA=="
- }
- },
- "HttpHeaders": {
- "User-Agent": "Docker-Client/18.09.6 (linux)"
- }
- }
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>:用户的邮箱地址。
- //--docker-server=10.0.1.99:5000 值不要加http://
- [root@master ~]# kubectl create secret docker-registry mysecret --docker-server=10.0.1.99: --docker-username=admin --docker-password= --docker-email=yiyo@.com
- [root@master ~]# kubectl get secret
- NAME TYPE DATA AGE
- default-token-pwlvv kubernetes.io/service-account-token 5d7h
- mysecret kubernetes.io/dockerconfigjson 22h
- mysql-root-password Opaque 3d
- newsecret kubernetes.io/dockerconfigjson 13h
- [root@master ~]#
定义拉取镜像的yaml
- [root@master ~]# vim admin.yaml
- apiVersion: extensions/v1beta1
- kind: Deployment
- metadata:
- name: dentestreplce
- spec:
- replicas:
- template:
- metadata:
- labels:
- name: dentestreplace
- spec:
- containers:
- - name: dentestreplace
- imagePullPolicy: Always
- #imagePullPolicy: IfNotPresent
- image: 10.0.1.99:/test/travel-admin:1.0.
- ports:
- - containerPort:
- imagePullSecrets:
- - name: mysecret //我们上面创建的secret的名称
创建Deployment
如果不成功就在每个节点做开头第一步操作
- root@master test]# kubectl apply -f admin.yaml
- deployment.extensions/dentestreplce created
- [root@master test]# kubectl get pod -o wide
- NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
- dentestreplce-5759f6c9b6-89r8r / Running 48s 10.244.1.100 node01 <none> <none>
- dentestreplce-5759f6c9b6-d2p2x / Running 48s 10.244.3.91 node02 <none> <none>
- //查看过程
- [root@master test]# kubectl describe pod dentestreplce-5759f6c9b6-89r8r
- Name: dentestreplce-5759f6c9b6-89r8r
- Namespace: default
- Priority:
- PriorityClassName: <none>
- Node: node01/10.0.1.133
- Start Time: Thu, May :: +
- Labels: name=dentestreplace
- pod-template-hash=5759f6c9b6
- Annotations: <none>
- Status: Running
- IP: 10.244.1.100
- Controlled By: ReplicaSet/dentestreplce-5759f6c9b6
- Containers:
- dentestreplace:
- Container ID: docker://17c5b9e8878c194cfd020ebecb84b963851f37b9a7fc5cff11b2423475098445
- Image: 10.0.1.99:/test/travel-admin:1.0.
- Image ID: docker-pullable://10.0.1.99:5000/test/travel-admin@sha256:71eee17b1d9692343e8b91075bfff86676549aadf4ba440a0f0116183480a42f
- Port: /TCP
- Host Port: /TCP
- State: Running
- Started: Thu, May :: +
- Ready: True
- Restart Count:
- Environment: <none>
- Mounts:
- /var/run/secrets/kubernetes.io/serviceaccount from default-token-pwlvv (ro)
- Conditions:
- Type Status
- Initialized True
- Ready True
- ContainersReady True
- PodScheduled True
- Volumes:
- default-token-pwlvv:
- Type: Secret (a volume populated by a Secret)
- SecretName: default-token-pwlvv
- Optional: false
- QoS Class: BestEffort
- Node-Selectors: <none>
- Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
- node.kubernetes.io/unreachable:NoExecute for 300s
- Events:
- Type Reason Age From Message
- ---- ------ ---- ---- -------
- Normal Scheduled 96s default-scheduler Successfully assigned default/dentestreplce-5759f6c9b6-89r8r to node01
- Normal Pulling 91s kubelet, node01 Pulling image "10.0.1.99:5000/test/travel-admin:1.0.0"
- Normal Pulled 91s kubelet, node01 Successfully pulled image "10.0.1.99:5000/test/travel-admin:1.0.0"
- Normal Created 91s kubelet, node01 Created container dentestreplace
- Normal Started 90s kubelet, node01 Started container dentestreplace
- [root@master test]#
Kunbernetes从私有仓库nexus拉取镜像的更多相关文章
- k8s实战之从私有仓库拉取镜像 - kubernetes
1.实战目的 从私有docker仓库拉取镜像,部署pod.上一篇中,我们搭建了私有的镜像仓库,这一篇我们将与k8s结合实战使用私有仓库. 2.登录docker 为了完成本次实战,需要登录docker, ...
- K8S从私有仓库拉取镜像
通常来讲,我们在通过公共镜像仓库拉取docker镜像的时候,不需要任何的认证操作,但我们在构建了企业的私有镜像以后,就不得不在拉取镜像之前通过用户名密码来完成认证. 在docker单机环境中,我们可以 ...
- 配置 Containerd 在 harbor 私有仓库拉取镜像
官方文档地址:https://github.com/containerd/cri/blob/master/docs/registry.md 严格来说,这个具体可分为两部分 1.在k8s中使用Conta ...
- Portainer安装,配置自定义镜像仓库拉取镜像
Portainer介绍 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台 ...
- 关于使用kubeoperator搭建k8s集群使用containerd作为容器运行时,从自己搭建的habor仓库拉取镜像的有关说明
1.kubepi界面添加habor仓库信息,并授权给k8s集群 这一步的操作是当在工作负载选择从harbor仓库拉取镜像时会自动创建有关的secrets信息,从而不用事先手动创建了(有别于kuboar ...
- 【docker】【mysql】docker安装mysql,阿里云docker镜像加速器,docker搜索查看远程仓库上的镜像,docker拉取镜像,查看本地所有镜像,查看容器的运行状况,查看容器的详细信息
在docker上安装mysql有两种方式 1.通过Dockerfile构建 2.直接在docker hub上拉取镜像安装 =================本篇采用方法2=============== ...
- docker拉取镜像报错:net/http: TLS handshake timeout.
docker拉取镜像报错:net/http: TLS handshake timeout. 启动一个后台的busybox容器 [yunva@node1 network-scripts]$ docker ...
- Docker学习笔记二:Docker常用命令及提升拉取镜像的速度
一.Docker命令: 1.docker images //命令用来查看docker中所包含的镜像信息 2.docker ps -a //命令用来查看docker中所包含所有容器信息(运行状 ...
- Docker笔记5:实现加速器,加快下载/拉取镜像速度
由于 Docker 官方仓库存储于国外服务器,因此,我们使用d ocker pull 命令拉取镜像时,速度很慢.但是,我们可以使用国内服务商提供的加速器进行加速,加速器实质是一个IP地址,将其加入到d ...
随机推荐
- tzfile - 时区信息
SYNOPSIS #include <tzfile.h> DESCRIPTION 时区信息文件被 tzset(3) 使用, 其开头为特征字符"TZif", 以此标示该文 ...
- Arrays 001
1.1 Array Initalization First of all, we need know Java arrays is static. When the array is initiali ...
- 【学术篇】SDOI2009 SuperGCD
特别说明: 为了避免以后搬家时的麻烦, 这里的文章继续沿用csdn的风格和分类好了~ Emmmm这个题是一道高精度的模板题啊~ 既然是高精度的裸题, 那我们这些懒人当然是选择:用python啦~ 懒癌 ...
- MYSQL分数排名
编写一个 SQL 查询来实现分数排名.如果两个分数相同,则两个分数排名(Rank)相同.请注意,平分后的下一个名次应该是下一个连续的整数值.换句话说,名次之间不应该有“间隔”. +----+----- ...
- vue 学习五 深入了解components(父子组件之间的传值)
上一章记录了 如何在父组件中向子组件传值,但在实际应用中,往往子组件也要向父组件中传递数据,那么此时我们应该怎么办呢 1.在父组件内使用v-on监听子组件事件,并在子组件中使用$emit传递数据 // ...
- paper 16 : 计算机视觉领域博客资源
这是收录的图像视觉领域的博客资源的第一部分,包含:中国内地.香港.台湾 这些名人大家一般都熟悉,本文仅收录了包含较多资料的个人博客,并且有不少更新,还有些名人由于分享的paper.code或者数据集不 ...
- 虚拟IP---Linux下一个网卡配置多个IP
转:http://blog.csdn.net/turkeyzhou/article/details/16971225 Linux下配置网卡ip别名何谓ip别名?用windows的话说,就是为一个网卡配 ...
- easyUI tabs 显示与隐藏 tab 页
隐藏: tab_option = $('#tabs').tabs('getTab'," 单位信息 ").panel('options').tab; tab_option.hide( ...
- 秦曾昌人工智能课程---6、Decision Tree Learning
秦曾昌人工智能课程---6.Decision Tree Learning 一.总结 一句话总结: 怎样去构建决策树:比如一维:***|00|***|000|***,|为分割线,每个分割点都是一种情况, ...
- 反射Reflection
using System; using System.Collections.Generic; using System.Linq; using System.Reflection;// <-- ...