推送镜像到harbor与报错解决

推送镜像到harbor与报错解决

  • 解决k8s无法拉取本地http镜像私服问题
  • 推送docker容器镜像到harbor
  • kubesphere获取私服镜像部署pod

引言:在开发中,先推送镜像到docker,然后直接在docker运行。但是在K8S中,需要动态创建或者分配机器,这里需要将镜像推送到harbor仓库,然后再从仓库拉取到每台集群机器。

参考
如何推送docker镜像到harbor:https://blog.csdn.net/wh_computers/article/details/115644071
KubeSphere添加Harbor镜像仓库秘钥失败解决方法:https://blog.csdn.net/wenyichuan/article/details/108380842
解决报错凭证:https://v3-1.docs.kubesphere.io/zh/docs/project-user-guide/configuration/image-registry/

在解决问题时,可以直接用K8S的dashboard来看错误,这样不用去敲命令去看容器日志事件之类的:
https://172.16.2.238:32484/#/pod/kubesphere-sample-dev/scm-77bd8d4d9b-jg26h?namespace=kubesphere-sample-dev

解决k8s无法拉取本地http镜像私服问题

在不同的集群都要加一下 docker的不安全 因为你不知道他会分配到哪台机器
vi /etc/docker/daemon.json

# 添加
{
    "insecure-registries": ["172.16.2.238:30020"]
}
# 重启docker
systemctl daemon-reload
systemctl restart docker

推送docker容器镜像到harbor

docker login :<端口>

输入前面注册的账号密码

# 不需要的情况下退出docker仓库
docker logout
 [root@SR-OSDL-029 ~]# docker login --username=yeweizheng 172.16.2.238:30020
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[root@SR-OSDL-029 ~]# 

按照上述步骤应该是登陆成功,如果失败注意检查网络,账号密码,防火墙等
5.推送镜像
对要推送的镜像按照格式打上tag,然后docker push新tag的镜像

docker tag SOURCE_IMAGE[:TAG] 172.16.2.238:30020/test/REPOSITORY[:TAG]
docker push 172.16.2.238:30020/test/REPOSITORY[:TAG]

6.获取镜像
不需要docker login,直接docker pull 新tag的镜像即可

docker pull 172.16.2.238:30020/test/renren/fast_0517180414@sha256:f3b88c731d5b4648d220ffe936cfb1e99a86d62f7e0ad745c414c3eddc54332c

kubesphere获取私服镜像部署pod

先搞个harbor凭证
推送镜像到harbor与报错解决_第1张图片

创建工作负载 这边直接拉私服的
推送镜像到harbor与报错解决_第2张图片

你可能感兴趣的:(DevOps,docker,容器,kubernetes)