《Kubernetes部署篇:基于麒麟V10+ARM64架构部署harbor v2.4.0镜像仓库》

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级K8s集群运维实战


一、环境信息

K8S版本 操作系统 CPU架构 服务版本
1.26.15 Kylin Linux Advanced Server V10 ARM64 harbor v2.4.0

二、部署操作

2.1、资源包下载

说明:如果你从别处找来的镜像,redis提示报错ignore-warnings ARM64-COW-BUG,可以重新编译redis镜像。当前资源已经是重新编译过了,可以正常使用的镜像。
在这里插入图片描述


2.2、生成https证书

1、配置hosts

192.168.1.188 server.harbor.com

2、生成CA证书私钥和CA证书

openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \
 -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=server.harbor.com" \
 -key ca.key \
 -out ca.crt

说明:通过 ca.key 文件生成一个 crt 文件,CA 证书后面用来签署服务器证书。


3、生成服务器证书私钥

openssl genrsa -out server.harbor.com.key 4096

4、生成签名请求文件

openssl req -sha512 -new \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=server.harbor.com" \
    -key server.harbor.com.key \
    -out server.harbor.com.csr

说明:通过 server.harbor.com生成签名请求文件 CSR。


5、生成x509 v3扩展文件

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=server.harbor.com
DNS.2=192.168.1.188
EOF

6、生成服务器证书

openssl x509 -req -sha512 -days 3650 \
    -extfile v3.ext \
    -CA ca.crt -CAkey ca.key -CAcreateserial \
    -in server.harbor.com.csr \
    -out server.harbor.com.crt

2.3、配置Docker证书

说明:配置Docker客户端以便它能够安全地与使用了自签名证书的Harbor仓库进行通信。默认情况下,Docker客户端在尝试与仓库通信时,会检查仓库的SSL证书是否由一个受信任的证书颁发机构(CA)签发。如果证书是自签名的(如Harbor的默认设置),Docker客户端将拒绝连接,因为它不信任该证书。

1、将server.harbor.com.crt转换为server.harbor.com.cert,供 Docker 使用

说明:Docker守护程序将 .crt 文件解释为CA证书,并将 .cert 文件解释为客户端证书。

openssl x509 -inform PEM -in server.harbor.com.crt -out server.harbor.com.cert

2、复制证书到指定位置

说明:将服务器证书、服务器私钥和CA文件复制到Harbor主机上的Docker证书文件夹中。必须首先创建适当的文件夹。

# 创建目录
mkdir -p /etc/docker/certs.d/server.harbor.com
# 如果不是使用443端口,则需要在后面指定使用的具体端口,例如8001
mkdir -p /etc/docker/certs.d/server.harbor.com:9443

cp server.harbor.com.cert /etc/docker/certs.d/server.harbor.com:9443/
cp server.harbor.com.key /etc/docker/certs.d/server.harbor.com:9443
cp ca.crt /etc/docker/certs.d/server.harbor.com:9443

如下图所示:
在这里插入图片描述


3、重启docker

systemctl restart docker

2.4、部署harbor

1、解压harbor安装包

tar axf harbor-offline-installer-v2.4.0-arm64.tgz
cd harbor

2、导入镜像

docker load -i harbor.v2.4.0.tar.gz

3、编辑harbor.yml文件

cp harbor.yml.tmpl harbor.yml
vim harbor.yml

如下所示:

hostname: server.harbor.com
http:
  port: 9800
https:
  port: 9443
  certificate: /data/pkgs/harbor/server.harbor.com.crt
  private_key: /data/pkgs/harbor/server.harbor.com.key
harbor_admin_password: Harbor12345
database:
  password: n714aSP3RT
data_volume: /data/basic-data/harbor/harbor-data
log:
  local:
    location:/data/basic-data/harbor/harbor-log

4、执行安装脚本

./install.sh

执行完成后,如下所示:
在这里插入图片描述

浏览器登陆https://192.168.1.188:9443,如下所示:
在这里插入图片描述


2.5、containerd接入harbor

说明:以下操作在所有containerd主机上执行。

1、配置hosts

192.168.1.188 server.harbor.com

2、编辑配置文件/etc/containerd/config.toml

    [plugins."io.containerd.grpc.v1.cri".registry]
      config_path = ""
      [plugins."io.containerd.grpc.v1.cri".registry.auths]
      [plugins."io.containerd.grpc.v1.cri".registry.configs]
        [plugins."io.containerd.grpc.v1.cri".registry.configs."server.harbor.com:9443".tls]
          insecure_skip_verify = true
        [plugins."io.containerd.grpc.v1.cri".registry.configs."server.harbor.com:9443".auth]
          username = "admin"
          password = "Harbor12345"
      [plugins."io.containerd.grpc.v1.cri".registry.headers]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."server.harbor.com:9443"]
          endpoint = ["https://server.harbor.com:9443"]
    [plugins."io.containerd.grpc.v1.cri".x509_key_pair_streaming]
      tls_cert_file = ""
      tls_key_file = ""

如下图所示:
在这里插入图片描述


3、重启containerd服务

systemctl daemon-reload && systemctl restart containerd.service  

2.6、推送和拉取私有镜像

2.6.1、推送私有镜像

1、使用docker login命令进行登录

echo Harbor12345 | docker login -u admin --password-stdin https://server.harbor.com:9443

docker login会在当前用户家目录下生成~/.docker/config.json,可以根据该文件制作镜像拉取凭证如下所示:

[root@arm-2 ~]# cat ~/.docker/config.json
{
        "auths": {
                "server.harbor.com:9443": {
                        "auth": "YWRtaW46SGFyYm9yMTIzNDU="
                }
        }

2、使用docker服务的doker push命令上传镜像

docker pull docker.io/library/nginx:1.25.4
docker tag docker.io/library/nginx:1.25.4 server.harbor.com:9443/library/nginx:1.25.4
docker push server.harbor.com:9443/library/nginx:1.25.4

如下图所示,则表示push成功
在这里插入图片描述


2.6.2、拉取私有镜像

ctr image pull --user "admin:Harbor12345" --skip-verify server.harbor.com:9443/library/nginx:1.25.4

如下图所示:
在这里插入图片描述


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级K8s集群运维实战

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/665544.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文刻创作AI工具怎么注册卡密

在科技日新月异的今天&#xff0c;生成式人工智能&#xff08;AI&#xff09;的迅猛发展正在重塑各行各业的面貌。其中&#xff0c;文刻创作AI工具以其独特的魅力和强大的功能&#xff0c;成为了内容创作领域的一股清流&#xff0c;引领着内容生产的新潮流。 【文刻二创工具教…

人脸识别模型与人类视觉识别的对比——评估人脸识别模型存在偏见是否比人类的偏见大?

1. 概述 人脸识别系统是一个几十年来一直备受关注的研究领域。而且在过去的几年中。公司和政府一直在积极引入人脸识别系统&#xff0c;并且我们看到越来越多的机会可以看到人脸识别系统。例如&#xff0c;有的系统可以随便介绍&#xff0c;如搜索特定人的图像&#xff08;图像…

SAP Build引言

前言 SAP Build 似乎是一个整合了很多低代码或无代码产品的平台&#xff0c;最早的时候应该都是各自分开的几个产品&#xff0c;近年合并到一块上了SAP Build平台 现在看官网的介绍应该是有三四个产品被集成进来了&#xff0c;分别是SAP IRPA&#xff0c;SAP Workflow&#xf…

K8s Ingress 详解

文章目录 K8s Ingress 详解Ingress 资源清单Ingress 基于URL 实现路由Ingress 基于名称虚拟主机Ingress 实现HTTPS创建TLS 证书创建Secrets配置ingress Ingress RewriteIngress 灰度发布Ingress 配置认证 K8s Ingress 详解 Ingress 资源清单 apiVersion: networking.k8s.io/v…

编程学习 (C规划) 6 {24_4_18} 七 ( 简单扫雷游戏)

首先我们要清楚扫雷大概是如何实现的&#xff1a; 1.布置雷 2.扫雷&#xff08;排查雷&#xff09; &#xff08;1&#xff09;如果这个位置是雷就炸了&#xff0c;游戏结束 &#xff08;2&#xff09;如果不是雷&#xff0c;就告诉周围有几个雷 3.把所有不是雷的位置都找…

【Unity脚本】使用脚本操作游戏对象的组件

【知识链】Unity -> Unity脚本 -> 游戏对象 -> 组件 【知识链】Unity -> Unity界面 -> Inspector【摘要】本文介绍如何使用脚本添加、删除组件&#xff0c;以及如何访问组件 文章目录 引言第一章 游戏对象与组件1.1什么是组件&#xff1f;1.2 场景、游戏对象与组…

C++11中的新特性(2)

C11 1 可变参数模板2 emplace_back函数3 lambda表达式3.1 捕捉列表的作用3.2 lambda表达式底层原理 4 包装器5 bind函数的使用 1 可变参数模板 在C11之前&#xff0c;模板利用class关键字定义了几个参数&#xff0c;那么我们在编译推演中&#xff0c;我们就必须传入对应的参数…

Mac安装第三方软件的命令安装方式

场景&#xff1a; 打开终端命令行&#xff0c;sudo xattr -rd com.apple.quarantine&#xff0c;注意最后quarantine 后面加一个空格&#xff01;然后打开Finder&#xff08;访达&#xff09;&#xff0c;点击左侧的 应用程序&#xff0c;找到相关应用&#xff0c;拖进终端qua…

指纹浏览器大全

具体请前往&#xff1a;国内外指纹浏览器大全

vue3组件通信与props

title: vue3组件通信与props date: 2024/5/31 下午9:00:57 updated: 2024/5/31 下午9:00:57 categories: 前端开发 tags: Vue3组件Props详解生命周期数据通信模板语法Composition API单向数据流 Vue 3 组件基础 在 Vue 3 中&#xff0c;组件是构建用户界面的基本单位&#…

V90 PN总线伺服通过FB285速度控制实现正弦位置轨迹运动(解析法和数值法对比测试)

V90总线伺服相关内容请参考专栏系列文章,这里不在详述 1、V90伺服PN总线速度随动控制 V90伺服PN总线速度随动控制(手摇轮功能)_手摇轮可以接总线plc吗?-CSDN博客文章浏览阅读632次。V90PN总线控制相关内容,请参考下面文章链接:博途1200/1500PLC V90 PN通信控制 (FB284功能…

构建企业级AI私有知识库

一、引言 在当今竞争激烈的市场环境中&#xff0c;企业为了保持竞争优势&#xff0c;需要高效地管理和利用内部知识资源。构建一个企业级AI私有知识库&#xff0c;不仅可以集中存储和管理企业知识&#xff0c;还能通过人工智能技术实现知识的智能化处理和利用。本文将详细介绍…

模型 STORY评估框架

说明&#xff1a;系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。故事五要素&#xff1a;结构、时间、观点、现实、收益 。 1 STORY评估框架的应用 1.1 STORY模型展示其个性化在线学习解决方案的优势 一家在线教育平台想要通过一个故事来展示其个性…

Spring 框架:Java 企业级开发的基石

文章目录 序言Spring 框架的核心概念Spring 框架的主要模块Spring Boot&#xff1a;简化 Spring 开发Spring Cloud&#xff1a;构建微服务架构实际案例分析结论 序言 Spring 框架自 2002 年发布以来&#xff0c;已经成为 Java 企业级开发的标准之一。它通过提供全面的基础设施…

Qt 窗口

在Qt Creator 中创建项目的时候&#xff0c;我们能够选择创建QMainWindow 还是 QWidget 两种窗口。 二者有什么区别呢&#xff1f;其中 QMainWindow 是一种主窗口&#xff0c;包含菜单栏&#xff0c;工具栏&#xff0c;状态栏&#xff0c;中心窗口和浮动窗口等多个窗口组合&…

vs2022 MSVC2017_64 调试Qt5.14.2源码

pdb调试文件下载路径https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5142/qt.qt5.5142.debug_info.win64_msvc2017_64/ 在vs中添加pdb文件符号路径&#xff0c;使其qt在调试时能查找到相应的符号文件。 在需要调试的解决方案下通过解决方案点击&…

引领采购数字化变革,商越科技如何帮企业穿越周期?

导读 在企业“降本增效”的路上&#xff0c;采购数字化已经站上C位。采购数字化对企业究竟带来哪些价值&#xff1f; 在中国采购数字化赛道&#xff0c;行业领军者已经出现。 正文 面对经济环境的不确定性&#xff0c;企业都在寻找能够穿越周期的确定性。 “在经济不确定的大…

【运维项目经历|023】Docker自动化部署与监控项目

目录 项目名称 项目背景 项目目标 项目成果 我的角色与职责 我主要完成的工作内容 本次项目涉及的技术 本次项目遇到的问题与解决方法 本次项目中可能被面试官问到的问题 问题1&#xff1a;项目周期是多久&#xff1f; 问题2&#xff1a;服务器部署架构方式及数量配置…

golang语言的gofly快速开发框架如何设置多样的主题说明

本节教大家如何用gofly快速开发框架后台内置设置参数&#xff0c;配置出合适项目的布局及样式、主题色&#xff0c;让你您的项目在交互上加分&#xff0c;也是能帮你在交付项目时更容易得到客户认可&#xff0c;你的软件使用客户他们一般都是不都技术的&#xff0c;所以当他们拿…

JAVAEE之文件IO_数据流概念,字节流:InputStream、OutputStream,字符流:reader、writer,及实例代码

什么是数据流 顾名思义&#xff0c;I 表示input&#xff0c;O 表示output&#xff0c;也就是输入输出流&#xff0c;主要是在程序与文件之间&#xff0c;用于传输数据的通道。既然要传输数据&#xff0c;那么我们需要理解文件和程序之间哪种方向的传输是输入流&#xff0c;哪种…