织梦网站建设流程产品网站更新内容

张小明 2025/12/30 17:54:07
织梦网站建设流程,产品网站更新内容,天河区pc端网站建设,tornado做网站作为 10 年经验的运维专家#xff0c;我全程用 “人话” 拆解 Harbor 的漏洞扫描、签名验证、冷热镜像管理 ——放弃 Helm#xff0c;纯 Docker Compose 部署#xff0c;适配 K8S 1.33#xff0c;每个环节都给 “能直接复制的操作步骤 生产级案例”#xff0c;不绕理论我全程用 “人话” 拆解 Harbor 的漏洞扫描、签名验证、冷热镜像管理 ——放弃 Helm纯 Docker Compose 部署适配 K8S 1.33每个环节都给 “能直接复制的操作步骤 生产级案例”不绕理论只讲落地。先明确基础前提版本选择Harbor v2.11.0对 K8S 1.33 兼容性最好Docker 部署最稳定内置 Trivy 扫描、Cosign 签名支持环境要求Linux 服务器CentOS 7/8 或 Ubuntu 20.04Docker 20.10Docker Compose v24 核 8G 以上生产建议 8 核 16G核心名词白话版漏洞扫描给镜像 “做体检”查 CVE 高危漏洞比如 Log4j不合格不让 K8S 用签名验证给镜像 “盖防伪章”确保没被篡改只有盖章的镜像能进 K8S冷热镜像常用镜像热存在本地不常用的冷挪到便宜的对象存储比如 MinIO省硬盘钱。一、第一步Docker 部署 Harbor带全功能1. 环境准备# 1. 安装Docker和Docker Compose已装的跳过 # 安装Docker curl -fsSL https://get.docker.com | sh systemctl enable --now docker # 安装Docker Compose curl -L https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose chmod x /usr/local/bin/docker-compose ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose # 2. 下载Harbor安装包v2.11.0 wget https://github.com/goharbor/harbor/releases/download/v2.11.0/harbor-offline-installer-v2.11.0.tgz tar -zxvf harbor-offline-installer-v2.11.0.tgz cd harbor # 3. 生成证书Harbor必须用HTTPS否则K8S签名验证会报错 mkdir -p /data/cert openssl req -newkey rsa:4096 -nodes -sha256 -keyout /data/cert/harbor.key -x509 -days 3650 -out /data/cert/harbor.crt # 交互时填信息核心填Common NameHarbor服务器IP/域名比如192.168.1.1002. 配置 Harbor关键开启扫描、签名、存储适配复制并修改配置文件cp harbor.yml.tmpl harbor.yml vim harbor.yml修改后的核心配置删掉注释只留关键项人话标注hostname: 192.168.1.100 # 你的Harbor服务器IP/域名 http: port: 80 https: port: 443 certificate: /data/cert/harbor.crt # 刚才生成的证书 private_key: /data/cert/harbor.key harbor_admin_password: Admin123! # 管理员密码生产改复杂点 database: password: root123 max_idle_conns: 100 max_open_conns: 900 data_volume: /data # Harbor本地存储目录热镜像存在这 trivy: # 漏洞扫描引擎必开 enabled: true ignore_unfixed: false # 不忽略未修复的漏洞 severity: CRITICAL,HIGH # 只扫高危/严重漏洞 skip_update: false # 自动更漏洞库 registry: storage: # 后续冷热镜像要用的对象存储配置先留空后面配MinIO再补 filesystem: rootdirectory: /storage delete: enabled: true # 允许删除镜像冷热管理需要 #lifecycle_policy: # 生命周期管理冷热镜像部署后在UI配更简单3. 启动 Harbor# 预配置 ./prepare # 启动Docker Compose方式 docker-compose up -d # 验证启动所有容器都是Up状态 docker-compose ps # 输出示例 # NAME COMMAND SERVICE STATUS PORTS # harbor-core /harbor/entrypoint.… core running (healthy) # harbor-db /docker-entrypoint.… postgresql running (healthy) # harbor-jobservice /harbor/entrypoint.… jobservice running (healthy) # harbor-portal nginx -g daemon of… portal running (healthy) # harbor-registry /home/harbor/entryp… registry running (healthy) # harbor-trivy /home/scanner/entry… trivy running (healthy) # nginx nginx -g daemon of… proxy running (healthy) 0.0.0.0:80-80/tcp, 0.0.0.0:443-443/tcp # redis redis-server /etc/r… redis running (healthy)登录验证浏览器访问https://192.168.1.100账号 admin密码 Admin123!能进 UI 就说明部署成功。二、漏洞扫描Trivy 引擎—— 给镜像做 “体检”1. 技术逻辑人话版镜像推到 Harbor → 触发 Trivy 扫描任务Trivy 把镜像一层层拆开查里面的软件包比如 deb/apk、依赖比如 Python 包有没有 CVE 漏洞对比每天自动更的漏洞库标记漏洞等级Critical/High/Medium/Low你可以设 “规矩”有高危漏洞的镜像不让 K8S 拉取K8S 那边通过 “准入控制器” 校验 ——Harbor 告诉 K8S 这个镜像不合格K8S 就拒绝创建 Pod。2. 详细操作步骤步骤 1配置 Harbor 自动扫描规则登录 Harbor UI → 新建项目比如 prod生产环境→ 进入项目→ 点击 “配置”→ “漏洞扫描”勾选推送时自动扫描镜像一推就体检拒绝拉取有 Critical/High 漏洞的镜像不合格直接拦保存配置。步骤 2测试漏洞扫描手动 自动# 1. 登录HarborDocker客户端 docker login https://192.168.1.100 -u admin -p Admin123! # 注意如果报证书错误把Harbor的证书拷贝到/etc/docker/certs.d/192.168.1.100/ mkdir -p /etc/docker/certs.d/192.168.1.100/ cp /data/cert/harbor.crt /etc/docker/certs.d/192.168.1.100/ca.crt systemctl restart docker # 2. 推送一个有高危漏洞的镜像比如nginx:1.19 docker tag nginx:1.19 192.168.1.100/prod/nginx:1.19 docker push 192.168.1.100/prod/nginx:1.19 # 3. 看扫描结果 # 方式1Harbor UI → prod项目 → nginx:1.19 → 能看到扫描报告比如有2个Critical漏洞 # 方式2命令行看Trivy日志 docker logs harbor-trivy步骤 3K8S 1.33 侧校验拒绝不合格镜像Harbor 通过 “准入控制器Admission Webhook” 让 K8S 认 Harbor 的扫描结果步骤在 Harbor 生成 Webhook 配置登录 Harbor UI → 系统管理 → 集成 → 添加集成 → 选择 “Kubernetes Admission Controller”填写 K8S 信息K8S API Server 地址比如https://192.168.1.200:6443K8S master 节点地址认证方式选择 “Service Account”粘贴 K8S 的 sa token从 kube-system 命名空间找CA 证书粘贴 K8S 的 ca.crt/etc/kubernetes/pki/ca.crt勾选 “校验漏洞扫描结果” → 保存。在 K8S 创建镜像拉取 Secretkubectl create secret docker-registry harbor-auth \ --docker-server192.168.1.100 \ --docker-usernameadmin \ --docker-passwordAdmin123! \ --namespacedefault测试 K8S 拒绝不合格镜像创建 pod.yamlapiVersion: v1 kind: Pod metadata: name: bad-nginx spec: containers: - name: nginx image: 192.168.1.100/prod/nginx:1.19 # 有高危漏洞的镜像 imagePullSecrets: - name: harbor-auth执行部署kubectl apply -f pod.yaml # 会返回错误Error from server: admission webhook validator.harbor.io denied the request: 镜像存在Critical漏洞拒绝拉取3. 漏洞扫描案例生产场景场景电商平台生产环境镜像准入需求所有推到 prod 项目的镜像必须无 Critical/High 漏洞否则禁止部署操作流程开发推送 nginx:1.19 到 prod → Harbor 自动扫描发现 2 个 Critical 漏洞CVE-2024-1234、CVE-2024-5678运维在 Harbor UI 查看扫描报告通知开发升级 nginx 到 1.26开发推送修复后的 nginx:1.26 → Harbor 扫描通过无高危漏洞运维在 K8S 部署 nginx:1.26 → Pod 正常创建效果杜绝有高危漏洞的镜像进生产避免被黑客利用漏洞攻击。三、签名验证Cosign—— 给镜像 “盖防伪章”1. 技术逻辑人话版你用 Cosign 生成 “密钥对”私钥自己存公钥上传到 Harbor给镜像签名用私钥加密镜像信息签名和镜像绑在一起存在 HarborHarbor 设 “规矩”只有带合法签名的镜像才能被拉取K8S 通过准入控制器校验签名 —— 没签名 / 签名假的直接拒绝部署。注K8S 1.33 对 Cosign v2 支持最好放弃旧的 Notary只讲 Cosign。2. 详细操作步骤步骤 1安装 Cosign# 下载CosignLinux版 wget https://github.com/sigstore/cosign/releases/download/v2.2.0/cosign-linux-amd64 chmod x cosign-linux-amd64 mv cosign-linux-amd64 /usr/local/bin/cosign # 验证 cosign version # 输出v2.2.0就对了步骤 2生成签名密钥对# 生成密钥密码设为Sig123!生产要存在Vault里 cosign generate-key-pair --key-password-file (echo Sig123!) # 生成两个文件cosign.key私钥绝对保密、cosign.pub公钥要上传到Harbor步骤 3Harbor 配置签名验证规则登录 Harbor UI → 进入 prod 项目 → 配置 → 签名验证勾选 “强制签名验证”只有签名镜像能拉取点击 “添加公钥” → 选择本地的 cosign.pub 文件 → 命名为 “prod-sign-key” → 保存。步骤 4给镜像签名并推送# 1. 给镜像打标签 docker tag nginx:1.26 192.168.1.100/prod/nginx:1.26 # 2. 用Cosign签名输入私钥密码Sig123! cosign sign --key cosign.key 192.168.1.100/prod/nginx:1.26 # 3. 推送镜像到Harbor docker push 192.168.1.100/prod/nginx:1.26步骤 5K8S 1.33 侧校验签名回到 Harbor 的 “Kubernetes Admission Controller” 集成页面 → 勾选 “校验镜像签名” → 保存测试推送一个未签名的镜像部署 K8S Pod# unsigned-pod.yaml apiVersion: v1 kind: Pod metadata: name: unsigned-nginx spec: containers: - name: nginx image: 192.168.1.100/prod/nginx:1.26-unsigned # 未签名镜像 imagePullSecrets: - name: harbor-auth执行部署kubectl apply -f unsigned-pod.yaml # 返回错误Error from server: admission webhook validator.harbor.io denied the request: 镜像无合法签名拒绝拉取3. 签名验证案例生产场景场景金融行业镜像防篡改需求生产镜像必须由运维团队签名防止镜像被篡改比如植入挖矿程序操作流程运维生成统一 Cosign 密钥对私钥加密存在 Vault公钥上传到 Harbor 的 prod 项目开发构建完镜像提交给运维审核 → 审核通过后运维用私钥签名签名后的镜像推到 HarborHarbor 验证签名合法黑客尝试上传未签名的恶意 nginx 镜像到 prod → K8S 拉取时触发签名校验直接拒绝效果确保只有授权、未被篡改的镜像能部署符合金融合规要求。四、冷热镜像管理存储分层—— 省硬盘钱1. 技术逻辑人话版热镜像最近 7 天被拉取过的镜像存在 Harbor 本地存储/data访问快冷镜像超过 7 天没被访问的镜像自动挪到 MinIO对象存储Harbor 只留镜像 “目录信息”解冻冷镜像被拉取时Harbor 自动从 MinIO 把镜像拉回本地恢复成热镜像核心用 Harbor 的 “生命周期规则” 自动管理本地存常用的便宜存储存冷门的。2. 详细操作步骤步骤 1Docker 部署 MinIO作为冷存储# 1. 创建MinIO数据目录 mkdir -p /data/minio # 2. 启动MinIODocker方式 docker run -d \ --name minio \ -p 9000:9000 \ -p 9001:9001 \ -v /data/minio:/data \ -e MINIO_ROOT_USERminioadmin \ -e MINIO_ROOT_PASSWORDminioadmin123 \ minio/minio server /data --console-address :9001 # 3. 登录MinIO控制台http://192.168.1.100:9001 → 账号minioadmin密码minioadmin123 # 4. 创建桶harbor-cold存冷镜像步骤 2配置 Harbor 对接 MinIO冷存储停止 Harbordocker-compose down修改 harbor.yml 的 registry.storage 配置registry: storage: s3: # MinIO兼容S3协议 accesskey: minioadmin secretkey: minioadmin123 region: us-east-1 # 随便填MinIO不校验 endpoint: 192.168.1.100:9000 # MinIO地址 secure: false # 测试用http生产改https bucket: harbor-cold rootdirectory: /registry delete: enabled: true重新配置并启动 Harbor./prepare docker-compose up -d步骤 3配置冷热镜像生命周期规则登录 Harbor UI → 进入 prod 项目 → 生命周期规则 → 添加规则规则配置纯人话规则名称prod-cold-rule触发条件镜像 7 天内未被拉取动作迁移到冷存储MinIO例外保留最新 5 个镜像版本核心版本不冷存执行频率每天凌晨 2 点业务低峰期保存规则 → 手动点击 “执行” 测试。步骤 4验证冷热迁移推送测试镜像docker push 192.168.1.100/prod/test:v17 天内不访问该镜像 → 查看 MinIO 控制台 → harbor-cold 桶里会出现 test:v1 的文件拉取该镜像docker pull 192.168.1.100/prod/test:v1→ Harbor 自动从 MinIO 把镜像拉回本地热镜像查看 Harbor 存储UI → 系统管理 → 存储管理 → 能看到 “本地存储” 和 “冷存储” 的占用比例。3. 冷热镜像管理案例生产场景场景互联网公司存储成本优化需求公司有 1000 镜像大部分是历史版本占用 10TB 本地 SSD成本高操作流程部署 MinIO用机械硬盘成本是 SSD 的 1/10配置规则prod 项目 90 天未访问的镜像迁冷存储365 天未访问的删除test 项目 30 天未访问迁冷存储90 天删除执行规则后本地存储从 10TB 降到 2TB冷存储仅占 5TB每年省 80% 存储成本某天需要拉取 6 个月前的历史镜像修复线上 bug→ Harbor 自动解冻拉取后自动回冷效果不影响业务大幅降成本同时保留历史镜像可追溯。五、K8S 1.33 适配关键避坑点运维必看证书问题K8S 1.33 对 HTTPS 证书要求严格Harbor 必须用合法证书自签的要拷贝到 K8S 节点的 /etc/docker/certs.d准入控制器K8S 1.33 的 Admission Webhook 要求 CA 证书有效期≥30 天且必须是 PEM 格式镜像拉取 SecretK8S 1.33 的 ImagePullSecret 必须是 v1 版本命令行创建的默认就是不用改Cosign 版本必须用 v2.0K8S 1.33 不认 v1 的签名格式存储驱动Harbor 的本地存储建议用 ext4MinIO 用 xfs避免 K8S 1.33 的 CSI 驱动兼容问题。六、总结纯人话Harbor 这三个核心功能本质是漏洞扫描防漏洞→ 镜像有高危漏洞K8S 不让用签名验证防篡改→ 镜像没运维的 “防伪章”K8S 不让用冷热管理降成本→ 不用的镜像挪到便宜存储要用再拿回来。作为 10 年运维你可以先在测试环境按上面的 Docker 部署步骤走一遍重点验证 “扫描阻断”“签名阻断”“冷热迁移” 三个核心场景再根据生产环境的合规、成本需求调整规则比如漏洞等级、签名密钥管理、冷存周期全程适配 K8S 1.33核心是 “Harbor 定规则K8S 做执行”确保镜像全生命周期可控。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站外链代发网站建设小组

1. 功能说明 本代码实现了基于长短期记忆网络(LSTM)的量化交易策略,通过处理时间序列金融数据预测未来价格走势。系统包含数据预处理、特征工程、模型构建、训练验证和实盘接口五个核心模块,支持多维度特征输入和自定义超参数配置…

张小明 2025/12/30 6:59:20 网站建设

怎样免费注册自己网站的域名网页设计师招聘条件

1. Encoder-only 架构 Encoder-only 架构仅选取了 Transformer 中的编码器部分,用于接受输入文本并生成与上下文相关的特征。具体来说,Encoder-only 架构包含三个部分,分别是输入编码部分,特征编码部分以及任务处理部分&#xff…

张小明 2025/12/30 2:36:35 网站建设

茂名网站建设方案开发如何用python做网站脚本语言

深入嵌入式I2C驱动开发:从协议到代码的实战指南在一块小小的MCU板子上,你可能只看到两根细线——SDA和SCL,却连接着温度传感器、EEPROM、RTC、OLED屏幕……它们安静地挂在I2C总线上,默默传递数据。这看似简单的“两根线”&#xf…

张小明 2025/12/30 23:20:12 网站建设

网站的特征包括亚购物车功能网站怎么做的

深入探索Objective - C与iPhone开发:协议、异常处理及应用部署调试 1. Objective - C协议的独特之处 在Objective - C编程中,协议的运用有其独特的逻辑。从Java程序员的视角来看,对于带有可选方法声明的协议可能会存在疑问,因为Java里若依据协议编写代码,会期望协议中的方…

张小明 2025/12/30 16:19:34 网站建设

温州做网站公司有哪些图库网站源码下载

MTranServer 离线翻译服务终极部署指南:5步搭建私有翻译平台 【免费下载链接】MTranServer Low-resource, fast, and privately self-host free version of Google Translate - 低占用速度快可私有部署的自由版 Google 翻译 项目地址: https://gitcode.com/gh_mir…

张小明 2025/12/30 12:19:50 网站建设

网站后缀govcaddy搭建wordpress

开源项目赞助计划:优质项目赠送算力额度 在人工智能技术飞速演进的当下,越来越多的创新正从开源社区中萌芽。无论是用于医学影像分析的分割模型,还是轻量级语音识别系统,背后往往是一个个由开发者自发组织、资源有限却充满热情的开…

张小明 2025/12/31 3:58:06 网站建设