引言

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

docker安装harbor:https://learnku.com/articles/29884

docker和compose安装:https://github.com/duiying/ops/tree/master/docker-ce-yum-install

安装就按照上述的安装文档

设置开机自启动

1.vim /usr/lib/systemd/system/harbor.service
2.
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor[Service]
Type=simple
Restart=on-failure
RestartSec=5
##########docker-compose和harbor的安装位置
ExecStart=/usr/local/bin/docker-compose -f  /opt/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml down[Install]
WantedBy=multi-user.target3.
systemctl enable harbor
systemctl start harbor
4.docker ps -a
**参考:**如何推送docker镜像到harbor:[https://blog.csdn.net/wh_computers/article/details/115644071](https://blog.csdn.net/wh_computers/article/details/115644071)<font style="color:rgb(34, 34, 38);">KubeSphere添加Harbor镜像仓库秘钥失败解决方法:</font>[https://blog.csdn.net/wenyichuan/article/details/108380842](https://blog.csdn.net/wenyichuan/article/details/108380842)**解决报错凭证**:[https://v3-1.docs.kubesphere.io/zh/docs/project-user-guide/configuration/image-registry/](https://v3-1.docs.kubesphere.io/zh/docs/project-user-guide/configuration/image-registry/)**<font style="color:rgb(54, 67, 92);">HTTP</font>**1. <font style="color:rgb(54, 67, 92);">您需要修改集群中所有节点的 Docker 配置。例如,如果外部 Harbor 仓库的 IP 地址为 </font><font style="color:rgb(54, 67, 92);">http://192.168.0.99</font><font style="color:rgb(54, 67, 92);">,您需要在 </font><font style="color:rgb(54, 67, 92);">/etc/systemd/system/docker.service.d/docker-options.conf</font><font style="color:rgb(54, 67, 92);"> 文件中增加 </font><font style="color:rgb(54, 67, 92);">--insecure-registry=192.168.0.99</font><font style="color:rgb(54, 67, 92);"> 标签。</font>[Service]Environment="DOCKER_OPTS=--registry-mirror=[https://registry.docker-cn.com](https://registry.docker-cn.com) --insecure-registry=10.233.0.0/18 --data-root=/var/lib/docker --log-opt max-size=50m --log-opt max-file=5 \--insecure-registry=192.168.0.99"
 docker login --username=admin 172.16.1.23:9010700  cd /data/testnginx701  docker build -t auth:latest -f Dockerfile  .702  docker tag auth:latest 172.16.1.23:9010/jpaasywz/auth:latest703  docker push 172.16.1.23:9010/jpaasywz/auth:latest704  docker build -t gateway:latest -f Dockerfile  .705  docker tag gateway:latest 172.16.1.23:9010/jpaasywz/gateway:latest706  docker build -t gateway:latest -f Dockerfile  .707  docker tag gateway:latest 172.16.1.23:9010/jpaasywz/gateway:latest708  docker push 172.16.1.23:9010/jpaasywz/gateway:latestdocker build -t portal:latest -f jpaas-portal-Dockerfile  .
docker build -t system:latest -f jpaas-system-Dockerfile  .
docker build -t user:latest -f jpaas-user-Dockerfile  .
docker build -t bpm:latest -f jpaas-bpm-Dockerfile  .
docker build -t form:latest -f jpaas-form-Dockerfile  .docker tag portal:latest 172.16.1.23:9010/jpaasywz/portal:latest
docker tag system:latest 172.16.1.23:9010/jpaasywz/system:latest
docker tag user:latest 172.16.1.23:9010/jpaasywz/user:latest
docker tag bpm:latest 172.16.1.23:9010/jpaasywz/bpm:latest
docker tag form:latest 172.16.1.23:9010/jpaasywz/form:latestdocker push 172.16.1.23:9010/jpaasywz/portal:latest
docker push 172.16.1.23:9010/jpaasywz/system:latest
docker push 172.16.1.23:9010/jpaasywz/user:latest
docker push 172.16.1.23:9010/jpaasywz/bpm:latest
docker push 172.16.1.23:9010/jpaasywz/form:latest

在解决问题时,可以直接用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

添加

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

添加

{"insecure-registries": ["172.16.1.150:30006"]
}"insecure-registries": ["172.16.1.150:30006","172.16.1.23:9010"],
"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],"insecure-registries": ["172.16.1.150:30006","172.16.1.23:9010"],

重启docker

systemctl daemon-reload
systemctl restart docker

重启docker

systemctl daemon-reload

systemctl restart docker

推送docker容器镜像到harbor

docker login --username=admin 172.16.1.23:9010

docker login <harbor所在服务器的IP>:<端口>

输入前面注册的账号密码

 [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 ~]# 
# 不需要的情况下退出docker仓库
docker logout

按照上述步骤应该是登陆成功,如果失败注意检查网络,账号密码,防火墙等

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]

docker build -t hkbid:latest -f Dockerfile .

docker tag hkbid:latest 172.16.1.23:9010/hkbid/hkbid:latest

docker push 172.16.1.23:9010/hkbid/hkbid:latest

docker tag renren/fast_0517180414:latest 172.16.2.238:30020/test/renren/fast_0517180414:latest

docker tag server-gateway:latest 172.16.2.238:30020/test/server-gateway:latest

docker push 172.16.2.238:30020/test/renren/fast_0517180414

[root@SR-OSDL-029 test527]# docker tag server-gateway:latest  172.16.2.238:30020/test/server-gateway:latest
[root@SR-OSDL-029 test527]# docker images
[root@SR-OSDL-029 test527]# docker push 172.16.2.238:30020/test/server-gateway
Using default tag: latest
The push refers to repository [172.16.2.238:30020/test/server-gateway]
5ed6e1851ba1: Pushing [==================================>                ]  43.42MB/63.32MB
3e7b4560b089: Pushed 
bff9fe6e429c: Pushing [=========>                                         ]  37.98MB/209.2MB
7c245b2fe4f1: Pushed 
f9e18e59a565: Pushed 
26a504e63be4: Pushing [==================>                                ]   56.8MB/151.9MB
8bf42db0de72: Pushed 
31892cc314cb: Pushed 
11936051f93b: Pushing [======>                                            ]  15.17MB/123.9MB

或者

docker pull 172.16.2.238:30020/test/server-gateway@sha256:5a7a6f05d7516f675d690260c8aa8d7b35702053345f638492c66726ef14b570

或者用下面标签的方式

docker pull 172.16.2.238:30020/test/server-gateway:latest

直接在dockerhub选项下 输入网址即可

6.获取镜像

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

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

ks流水线文件 ——推送镜像配置

以下为harbor推送镜像的命令:

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

Jenkinsfile:

stage('推送service-user镜像') {
agent none
steps {
container('maven') {
withCredentials([usernamePassword(credentialsId : 'harbor-docker' ,usernameVariable : 'DOCKER_USER_VAR' ,passwordVariable : 'DOCKER_PWD_VAR' ,)]) {
sh 'echo "$DOCKER_PWD_VAR" | docker login $REGISTRY -u "$DOCKER_USER_VAR" --password-stdin'
sh 'docker tag service-user:latest $REGISTRY/$DOCKERHUB_NAMESPACE/service-user:SNAPSHOT-$BUILD_NUMBER'
sh 'docker push  $REGISTRY/$DOCKERHUB_NAMESPACE/service-user:SNAPSHOT-$BUILD_NUMBER'
}
}}

harbor-docker是在devops创建的凭证名称

environment {
DOCKER_CREDENTIAL_ID = 'dockerhub-id'
GITHUB_CREDENTIAL_ID = 'github-id'
KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
REGISTRY = '172.16.2.238:30020'
DOCKERHUB_NAMESPACE = 'test'
GITHUB_ACCOUNT = 'kubesphere'
APP_NAME = 'devops-java-sample'
ALIYUNHUB_NAMESPACE = 'lfy_hello'
}
parameters {
string(name: 'TAG_NAME', defaultValue: '', description: '')
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/919313.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919313.shtml
英文地址,请注明出处:http://en.pswp.cn/news/919313.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA读取AHT20温湿度模块思路及实现,包含遇到的问题(IIC协议)

一.阅读官方手册 手册在下方网址下载&#xff0c;该模块在各个网店平台均有销售 百度网盘 请输入提取码 手册重点关注IIC地址&#xff08;读地址0x71&#xff0c;写地址0x70&#xff09;、IIC命令和读写数据逻辑&#xff0c;手册写的比较简单&#xff08;感觉很多细节没到位…

项目会议怎么开才有效

要提高项目会议的有效性&#xff0c;需要做到以下几点&#xff1a;明确会议目的、制定具体的会议议程、合理控制会议时长、提前准备会议资料、选择合适的参会人员、设定清晰的会议目标、确保会议有决策和行动方案、会后及时跟进与落实。其中&#xff0c;明确会议目的尤为重要。…

计算机视觉第一课opencv(二)保姆级教

目录 简介 一、边界填充 1.函数说明 2.案例分析 二、图像运算 1.号运算 2.cv2.add()函数 3.图像加权运算 三、阈值处理 四、图像平滑处理 1.椒盐噪声 2.均值滤波&#xff08;Mean Filtering&#xff09; 3.方框滤波 4. 高斯滤波&#xff08;Gaussian Filtering&am…

母猪姿态转换行为识别:计算机视觉与行为识别模型调优指南

> 在现代智能化养殖中,母猪姿态识别是健康监测的关键技术。本文将带你从0到1构建高精度母猪姿态识别系统,准确率可达95%以上! ## 一、为什么母猪姿态识别如此重要? 母猪的行为姿态是其健康状况的重要指标: - **站立姿态**:可能表示发情期或进食需求 - **侧卧姿态**:…

循序渐进学 Spring (下):从注解、AOP到底层原理与整合实战

文章目录7. 自动装配 (Autowiring)7.1 XML 自动装配7.2 使用注解实现自动装配Autowired vs Resource8. 使用注解开发&#xff08;完全体&#xff09;8.1 定义 Bean (Component 及其衍生注解)8.2 注入属性 (Value)8.3 注入对象8.4 定义作用域 (Scope)8.5 小结&#xff1a;XML vs…

C#WPF实战出真汁06--【系统设置】--餐桌类型设置

1、系统设置的基本概念系统设置是用于配置和管理餐桌类型和菜品类型&#xff0c;是维护整个系统的基础数据。通过系统设置&#xff0c;用户可以调整餐桌类型的添加&#xff0c;删除&#xff0c;编辑&#xff0c;分页&#xff0c;查询&#xff0c;重置&#xff0c;列表&#xff…

旋钮键盘项目---foc讲解(闭环位置控制)

hello&#xff0c;周六休息了一天&#xff0c;出去打本了。趁着夜色&#xff0c;花费了几个小时&#xff0c;也是将闭环代码写完&#xff0c;参考了灯哥的思路。接下来介绍一下我的整个流程&#xff1a; 一、闭环位置控制思路&#xff1a; 其实懂得了开环&#xff0c;那么闭环…

为什么有些相机“即插即用”,而有些则需要采集卡?

在工业生产中&#xff0c;工业相机是“眼睛”&#xff0c;它帮助我们看到世界&#xff0c;但你知道吗&#xff1f;不同的工业相机接口就像不同的“通道”&#xff0c;有些“通道”直接就能与计算机连接&#xff0c;而有些则需要一个额外的小配件——图像采集卡。那么&#xff0…

【计算机网络 | 第7篇】物理层基本概念

文章目录物理层基本概念及数据通信系统解析一、物理层的核心定位&#x1f95d;二、物理层的功能&#x1f9fe;三、数据通信系统的模型&#x1f426;‍&#x1f525;&#xff08;一&#xff09;源系统&#xff08;二&#xff09;传输系统&#xff08;三&#xff09;目的系统四、…

一般情况下,python函数都会返回对象,但有时只调用一个函数,这是在修改这个信息

class Model:def __init__(self):self.training Truedef eval(self):self.training Falsereturn Nonem Model() print(m.training) # True m.eval() # 返回 None print(m.training) # False&#xff0c;模型内部状态已改变m.eval&#xff08;&#xff09;是在修改m的…

2025-08-17 李沐深度学习17——语义分割

文章目录1 语义分割1.1 介绍1.2 语义分割应用1.3 实例分割2 转置卷积2.1 工作原理2.2 为什么叫“转置”卷积2.3 转置卷积也是一种卷积3 FCN3.1 核心思想3.2 网络架构4 样式迁移4.1 基于 CNN 的样式迁移4.2 工作流程1 语义分割 1.1 介绍 语义分割&#xff08;Semantic Segment…

《若依》权限控制

若依内置了强大的权限控制系统&#xff0c;为企业级项目提供了通用的解决方案 以CRM系统为例&#xff0c;演示权限功能&#xff08;URL&#xff1a;https://huike-crm.itheima.net) demo账号&#xff08;超级管理员&#xff09;查看所有功能菜单 zhangsan账号&#xff08;市…

云原生俱乐部-RH134知识点总结(3)

这个系列的第二篇写了将近5000字&#xff0c;而且还是删节内容后的&#xff0c;如RAID就没写&#xff0c;因为头已经很大了。第二篇从早上写到下午&#xff0c;因为偷懒了&#xff0c;写着写着就停笔了。不过好在总算磨完了&#xff0c;现在开始写RH134系列的最后一篇内容。我这…

股票常见K线

1.底部反弹摸线特点长下影线之后必须有实体阴线踩实之后才考虑。macd绿缓慢收窄过程中的不买&#xff0c;刚转红也不买。macd转红之后等股价跌回之前macd绿首次收窄的最低点附近&#xff0c;而且跌破了所有均线&#xff0c;可以买入此股票。之后股票一波突破之前平台震荡平台&a…

计算机网络 THU 考研专栏简介

本专栏专为清华大学计算机网络考研复习设计&#xff0c;内容系统全面&#xff0c;涵盖从基础概念到重点考点的完整知识体系。具体包括&#xff1a;基础理论&#xff1a;计算机网络概念、分类、性能指标及网络分层模型&#xff08;OSI 七层、TCP/IP 四层&#xff09;。协议与技术…

VSCode打开新的文件夹之后当前打开的文件夹被覆盖

文件--首选项--设置&#xff1a;搜索showtabs设置为如下&#xff1a;

mac 电脑安装类似 nvm 的工具,node 版本管理工具

前言 苹果电脑开发时&#xff0c;有时候需要切换node 版本&#xff0c;window版有nvm可以管理node 版本&#xff0c;mac版本可以用另外一种 //全局安装n 模块 sudo npm install n -g//输入后回车&#xff0c;提示输入电脑密码&#xff0c;输入完密码回车等待下载完成即可//安装…

spdlog框架的安装与使用

spdlog框架的安装与使用spdlog的安装spdlog的使用spdlog二次封装总结&#xff1a;spdlog的安装 sudo apt-get install libspdlog-devspdlog的使用 同步日志器sync.cc (输出到显示器/输出到指定文件) #include<spdlog/spdlog.h> #include<spdlog/sinks/stdout_color…

使用websockets中的一些问题和解决方法

&#xff08;1&#xff09;TypeError: echo() missing 1 required positional argument: path报错自己写的代码如下&#xff1a;async def echo(websocket, path):...async def main():server await websockets.serve(echo, "0.0.0.0", 666)await server.wait_close…

机器人相关基础知识

机器人简介下面给出一份机器人方向“从入门到进阶”的极简知识地图&#xff0c;按「数学 → 硬件 → 软件 → 算法 → 应用」五层展开&#xff0c;配合常用开源资源。你可以把它当作“字典”随时查阅。&#x1f539; 1. 数学层&#xff08;所有算法的地基&#xff09;概念一句话…