Kunbernetes从私有仓库nexus拉取镜像
2024-10-21 04:14:09
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]#
最新文章
- OkHttp和Volley对比
- SQL Server2005索引碎片分析和解决方法
- sharepoint mysite and upgrade topics
- 各个城市优步uber注册司机官网地址汇总
- Delphi Idhttp Post提交 Aspx/Asp.net 时 500错误的解决办法。
- TREEVIEW拖拽对应修改目录
- 怎样卸载goldengate
- haproxy redirect prefix
- 【嵌入式开发】写入开发板Linux系统-模型S3C6410
- formData批量上传的多种实现
- redis 分页
- C++关于运算符重载知识点
- 随机森林RandomForest
- Android 开发 框架系列 glide-transformations 图片处理基本使用
- 图文剖析自己定义View的绘制(以自己定义滑动button为例)
- 二分图最大匹配|UOJ#78|匈牙利算法|边表|Elena
- 【BZOJ】3144: [Hnoi2013]切糕
- python实现根据指定字符截取对应的行的内容
- O&#39;Reilly总裁提姆-奥莱理:什么是Web 2.0
- JDK观察者模式和事件机制比较<;转>;