首页/新闻资讯/正文详情

k8s下,Harbor 私有镜像仓库部署

发布时间:2026/9/24 17:28:23 来源:云帆数科 栏目:资讯中心
k8s下,Harbor 私有镜像仓库部署
环境信息表格服务器IP角色node‑0110.10.6.27k8s 节点 HAProxyKeepalivednode‑0210.10.6.28k8s 节点 HAProxyKeepalivednode‑0310.10.6.29k8s 节点 HAProxyKeepalivedVIP10.10.6.100Keepalived 虚拟 IP前端负载均衡入口集群版本K8s v1.28.15Helmv3.14.0Ingress‑Nginx‑Controller v1.13.5Harbor‑v2.15.2 网络架构HAProxy 四层 TCP 透传SSL 证书终止于 k8s 内部 ingress‑nginx不在 haproxy 做 ssl 解密访问域名harbor.devops.local前置条件kubernetes 集群正常运行calico 网络就绪ingress‑nginx‑controller 已经部署完成使用 NodePort 模式https 端口为 30443kubectl get ingressclass #确认 ingressclass名称为 nginx三台服务器 HAProxyKeepalived 高可用已经部署VIP10.10.6.100helm 环境可用可访问外网 helm 仓库一、Helm 部署 Harbor1. 添加 harbor helm 仓库helm repo add harbor https://helm.goharbor.io helm repo update2. 离线下载 chart可选内网环境建议cd /opt helm pull harbor/harbor --untar cd harbor3. 编写 harbor 自定义 values 配置 my‑harbor‑values.yaml注意此处 ingress 默认没有填写 ingressClassName部署完成之后需要手动修补这是本次实施遇到的坑expose: type: ingress tls: enabled: true certSource: auto ingress: hosts: core: harbor.devops.local annotations: nginx.ingress.kubernetes.io/proxy-body-size: 0 nginx.ingress.kubernetes.io/ssl-redirect: true externalURL: https://harbor.devops.local harborAdminPassword: Harbor123456 persistence: persistentVolumeClaim: registry: storageClass: size: 20Gi chartmuseum: storageClass: jobservice: storageClass: database: storageClass: redis: storageClass: trivy: storageClass: 4. helm 执行安装helm upgrade --install harbor . \ -n harbor \ --create-namespace \ -f my-harbor-values.yaml5. 部署后检查 pod 状态kubectl get pods -n harbor -w等待所有 pod 状态变为 Runningjobservice 允许前期 1‑3 次重启稳定后不再重启属于正常。6. 修复 Ingress 资源重要helm chart 默认缺失 ingressClassName 字段问题现象Ingress 资源 CLASS 列为noneingress‑nginx 控制器直接忽略该 ingress 规则不会同步配置。 执行 patch 命令修复 ingress 资源kubectl patch ingress harbor-ingress -n harbor -p {spec:{ingressClassName:nginx}}修复完成之后查看 ingresskubectl get ingress -n harbor此时 CLASS 列变为nginx⚠️该 Ingress 的 ADDRESS 字段为空属于正常现象因为 ingress‑nginx 使用 NodePort 模式非 LoadBalancer Service。二、三台 HAProxy 配置修改三台机器都必须修改配置保持完全一致编辑/etc/haproxy/haproxy.cfg在配置文件末尾追加下面 listen 片段重点mode tcp 四层透传bind 监听0.0.0.0:443禁止直接绑定 VIP 地址 10.10.6.100否则 keepalived 漂移之后备节点 haproxy 启动失败listen k8s-ingress-https bind 0.0.0.0:443 mode tcp balance roundrobin server k8s-node1 10.10.6.27:30443 check inter 3000 fall 2 rise 2 server k8s-node2 10.10.6.28:30443 check inter 3000 fall 2 rise 2 server k8s-node3 10.10.6.29:30443 check inter 3000 fall 2 rise 2说明k8s‑node1/k8s‑node2仅为 haproxy 内部后端别名无需和服务器主机名保持一致仅用于 stats 监控页面展示实际生效的是后面的 IPNodePort 端口。每台 haproxy 修改之后校验配置并热重载#校验语法 haproxy -c -f /etc/haproxy/haproxy.cfg #热加载配置不需要重启服务 systemctl reload haproxy防火墙放行 443 端口三台 haproxy 节点firewall-cmd --add-port443/tcp --permanent firewall-cmd --reload验证 haproxy 监听端口ss -lnp | grep 443 #确认haproxy进程监听 *:443三、集群节点 hosts 解析 harbor 健康验证1、k8s 节点 hosts 写入域名解析node‑01/node‑02/node‑03echo 10.10.6.100 harbor.devops.local /etc/hosts2、健康接口测试验证整套链路curl -k https://harbor.devops.local/api/v2.0/health预期返回 json 结果status:healthy所有组件状态 healthy 即为 harbor 后端 前端 haproxy 链路全部正常。四、所有 K8s 业务节点 containerd 配置镜像推送必须配置自签证书跳过校验修改/etc/containerd/config.toml添加 harbor 仓库跳过 tls 校验配置[plugins.io.containerd.grpc.v1.cri.registry.configs.harbor.devops.local.tls] insecure_skip_verify true修改之后重启 containerd 服务systemctl restart containerd测试 nerdctl 登录 harbor 仓库nerdctl login harbor.devops.local五、PC 客户端访问准备windows 电脑修改 hosts 文件 (C:\Windows\System32\drivers\etc\hosts)增加解析10.10.6.100 harbor.devops.local浏览器访问https://harbor.devops.local当前使用 ingress‑nginx 默认内置自签证书浏览器提示不安全告警属于现状生产环境建议申请内网域名证书创建 tls secret 绑定到 harbor‑ingress 消除告警获取 harbor 管理员密码如果部署时没有写死密码可从 secret 读取kubectl get secret harbor -n harbor -o jsonpath{.data.harborAdminPassword} |base64 -d;echo默认管理员账号admin六、完整流量路径PC客户端浏览器 ↓ Keepalived‑VIP 10.10.6.100:443 (HAProxy mode tcp四层透传不解密SSL) ↓轮询后端k8s节点NodePort k8s节点IP:30443 ↓ ingress‑nginx‑controller Pod终止HTTPS SSL证书 ↓匹配ingress‑nginx规则 harbor‑ingress harbor‑portal / harbor‑core (ClusterIP Service →业务Pod)七、后续运维说明harbor 后续 helm 升级时如果 values.yaml 没有指定 ingressClassName升级后会再次丢失该字段需要重新 patch建议直接把 ingressClassName 写进 my‑harbor‑values.yamlhaproxy 三台配置务必保持完全一致保证 keepalived 故障漂移之后业务不间断harbor 的数据持久化存储需要定期做好 PV 数据备份。

相关推荐

【股票交易】第 56 章 基本面与技术面的结合
【股票交易】第 56 章 基本面与技术面的结合

回到目录 文章目录 56.1 把公司质量、价值与交易条件分别判断 一、先明确每类分析负责什么 二、两类分析都需要允许修正 三、价值判断与价格兑现是两个问题 56.2 从宏观与行业,走到公司盈利和股票价格 一、把宏观判断落实到公司变量 二、盈利改善与股价上涨之间,还有估值这一… · 2026/9/24 17:28:17

零基础学ESP32:舵机控制——让设备精准转动到指定角度!
零基础学ESP32:舵机控制——让设备精准转动到指定角度!

前面我们学了控制LED亮灭、控制继电器开关、让蜂鸣器唱歌——但这些都只是"开"和"关"两种状态。今天要学一个能精准控制角度的设备:舵机。 航模飞机的机翼控制、小车车轮的转向、家用电器的开关、机器人关节的转动……这些需要"转到某个精… · 2026/9/24 17:28:17

智能时代网安护航:端点安全一体化如何筑牢政企终端安全底座
智能时代网安护航:端点安全一体化如何筑牢政企终端安全底座

2026年国家网络安全宣传周以“网络安全为人民 网络安全靠人民——智能时代 网安护航”为核心主题,聚焦智能化时代网络安全防护体系建设,强调全民、全行业、全场景的网络安全防护理念。随着人工智能、数字化办公、云终端、移动办公的全面普及,… · 2026/9/24 17:28:17

HTTP 状态码在线查询解析工具,接口与 Web 排错辅助利器
HTTP 状态码在线查询解析工具,接口与 Web 排错辅助利器

一、前言 在 Web 前后端开发、接口测试、服务运维的日常工作中,HTTP 状态码是服务器返回给客户端的信号,告诉我们当前请求是成功、重定向、客户端出错还是服务端异常。 调试接口时遇到返回 403,要区分是权限不足还是服务配置问题&#xff1… · 2026/9/24 18:03:49

恶劣天气目标检测数据集:1000张实拍图+7类YOLO标注
恶劣天气目标检测数据集:1000张实拍图+7类YOLO标注

简介:本资源是面向计算机视觉初学者与YOLO目标检测实践者的恶劣天气道路场景专用数据集,聚焦行人、车辆等关键目标在雨雪、雾、沙尘等复杂条件下的鲁棒检测需求,适用于算法复现、模型微调及小样本泛化能力验证。压缩包共2000个文件&#xff0… · 2026/9/24 18:03:49

基于CNN的智能垃圾分类系统:从数据清洗到Gradio部署全流程
基于CNN的智能垃圾分类系统:从数据清洗到Gradio部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的智能垃圾分类系统毕业设计源码,基于深度学习卷积神经网络实现,可用于课程设计、大作业或毕设参考。项目代码经过调试测试,答辩评审分达98分,适合小白学习… · 2026/9/24 18:03:49

物理约束+Self-Attention的油井动态预测模型
物理约束+Self-Attention的油井动态预测模型

简介:本资源是一套面向石油工程领域研究人员与AI开发者的技术实践源码,聚焦油井生产动态预测这一关键工业场景,提供CNN、RNN、LSTM、Self-Attention及Seq2Seq等主流深度学习模型的完整实现与对比分析方案。资源共232个文件,含58个… · 2026/9/24 18:03:49

基于CNN的智能垃圾分类系统:从数据到部署的毕业设计实战
基于CNN的智能垃圾分类系统:从数据到部署的毕业设计实战

简介:这份资源是面向计算机、通信、人工智能、自动化等专业学生与从业者的深度学习实战项目,以卷积神经网络为核心实现智能垃圾分类,可作为毕业设计、课程大作业或期末课程设计的完整参考方案。项目代码经过调试测试,答辩评审分达… · 2026/9/24 18:03:49

PTP设备同步互通测试解决方案
PTP设备同步互通测试解决方案

引言高精度时间同步网络是现代通信网络稳定运行的核心基础支撑,整套系统主要由提供标准时间源的核心时间同步设备、承担时间信号传输的传送与接入网络、各类末端业务应用设备三大核心部分组成。时间同步互通覆盖全链路设备适配测试,涵盖时间同步设备、分… · 2026/9/24 18:03:42

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码