
kubersphere 规划使用三台服务进行配置操作系统openEuler-23.03-x86_64 4C8G内存 80G硬盘ip作用配置备注192.168.1.15镜像仓库4C4G内存 80G硬盘域名harbor.magedu.com192.168.1.20master4C8G内存 80G硬盘192.168.1.30node4C8G内存 80G硬盘安装kuberpshere前需要先安装一个镜像仓库这里采用harbor离线安装Docker系统第一步下载docker离线包https://download.docker.com/linux/static/stable/x86_64/docker-28.0.1.tgz补充也可以从https://download.docker.com/linux/static/stable/网址下载指定版本第二步下载离线安装工具https://github.com/Jrohy/docker-install/第三步将下载好的资源放在一个目录例如第四步:上传离线安装包在linux环境下创建/opt/docker目录mkdir -p /opt/docker cd /opt/docker #上传下载的dockers到/opt/docker ll第五步执行安装操作cd /opt/docker chmod x install.sh ./install.sh -f docker-28.0.1.tgz docker info第六步Docker服务基本操作#启动docker服务 systemctl start docker #设置Docker开机自启 systemctl enable docker #查看Docker状态 systemctl status docker配置hostsvi /etc/hosts 192.168.1.15 harbor.magedu.com配置本地镜像仓库mkdir -p /etc/docker vi /etc/docker/daemon.json { insecure-registries: [harbor.magedu.com], exec-opts: [native.cgroupdriversystemd] } systemctl restart dockerdocker-compose 安装到docker-compose的官网https://github.com/docker/compose/releases 下载需要的docker-compose版本2、下载wget https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-linux-x86_64mv docker-compose-linux-x86_64 /usr/bin/docker-compose chmod x /usr/bin/docker-compose #查看安装结果 docker-compose versionDocker安装Harbor配置harbor使用自签名证书部署、为什么要用sa模式签发呢原因因为新版的containerd 使用go写的 harbor使用containerd就需要sa模式签发的证书。kuberspshere集群需要使用containerd一、配置证书参考官方文档https://goharbor.io/docs/2.4.0/install-config/configure-https/ 默认情况下Harbor不附带证书。可以在没有安全性的情况下部署Harbor这样您就可以通过HTTP连接到它。然而只有在没有连接到外部互联网的测试或开发环境中使用HTTP才是可接受的。在没有空隙的环境中使用HTTP会使您面临中间人攻击。在生产环境中请始终使用HTTPS。如果您启用公证内容信任来正确签署所有图像您必须使用HTTPS 要配置HTTPS您必须创建SSL证书。您可以使用由受信任的第三方CA签名的证书也可以使用自签名证书。本节描述如何使用OpenSSL创建CA以及如何使用CA签署服务器证书和客户端证书。您可以使用其他CA提供商例如Lets Encrypt生成证书颁发机构证书在生产环境中您应该从CA获得证书。在测试或开发环境中您可以生成自己的CA。要生成CA证书请运行以下命令。1.生成CA证书私钥mkdir -p /opt/openssl cd /opt/openssl openssl genrsa -out ca.key 4096 touch /root/.rnd #记录签发信息 提前进行创建2.生成CA证书#实验 openssl req -x509 -new -nodes -sha512 -days 3650 \ -subj /CCN/STBeijing/LBeijing/Oexample/OUPersonal/CNmagedu.com \ -key ca.key \ -out ca.crt生成服务器证书证书通常包含一个. crt文件和一个. key文件例如magedu.com.crt和magedu.com.key1.生成私钥#openssl genrsa -out yourdomain.com.key 4096 openssl genrsa -out magedu.com.key 40962.生成证书签名请求(CSR)openssl req -sha512 -new \ -subj /CCN/STBeijing/LBeijing/Oexample/OUPersonal/CNmagedu.com \ -key magedu.com.key \ -out magedu.com.csr无论您是使用FQDN还是IP地址连接到您的Harbor主机您都必须创建此文件以便您可以为您的Harbor主机生成符合主题备用名称(SAN)和x509 v3扩展要求的证书。替换DNS条目以反映您的域cat v3.ext -EOF authorityKeyIdentifierkeyid,issuer basicConstraintsCA:FALSE keyUsage digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment extendedKeyUsage serverAuth subjectAltName alt_names [alt_names] DNS.1magedu.com DNS.2harbor.magedu.com EOF3.使用v3.ext文件为您的Harbor主机生成证书。 用harbor主机名替换CRS和CRT文件名中的magedu.comopenssl x509 -req -sha512 -days 3650 \ -extfile v3.ext \ -CA ca.crt -CAkey ca.key -CAcreateserial \ -in magedu.com.csr \ -out magedu.com.crt-CA ca.crt -CAkey ca.key表示CA直接签发指定magedu.com.csr这个文件签发完后是magedu.com.crt文件并会加载v3.ext这个文件v3.ext文件的信息会被签发到magedu.com.crt文件信息证书里我们harbor用的就是这个magedu.net.crt和magedu.net.key文件4.将crt文件转换为cert客户端证书文件#docker程序认为*.crt文件是CA证书文件*.cert客户端证书文件于是上面第五步需要转换一下其实使用cp一下也是可以的内容并没有变化。 openssl x509 -inform PEM -in magedu.com.crt -out magedu.com.cert5.证书整理一下 方便后续维护[rootharbornew certs]ll total 32 drwxr-xr-x 5 root root 44 Jul 12 14:59 all -rw-r--r-- 1 root root 2025 Jul 12 14:33 ca.crt -rw-r--r-- 1 root root 3243 Jul 12 14:33 ca.key -rw-r--r-- 1 root root 17 Jul 12 14:34 ca.srl -rw-r--r-- 1 root root 2143 Jul 12 14:55 magedu.net.cert -rw-r--r-- 1 root root 2143 Jul 12 14:34 magedu.net.crt -rw-r--r-- 1 root root 1704 Jul 12 14:34 magedu.net.csr -rw-r--r-- 1 root root 3247 Jul 12 14:33 magedu.net.key -rw-r--r-- 1 root root 307 Jul 12 14:34 v3.ext [rootharbornew certs]ll all/ total 0 drwxr-xr-x 2 root root 48 Jul 12 14:58 CA drwxr-xr-x 2 root root 65 Jul 12 14:59 Client drwxr-xr-x 2 root root 95 Jul 12 14:59 Server [rootharbornew certs]ll all/CA/ total 12 -rw-r--r-- 1 root root 2025 Jul 12 14:58 ca.crt -rw-r--r-- 1 root root 3243 Jul 12 14:58 ca.key -rw-r--r-- 1 root root 17 Jul 12 14:58 ca.srl [rootharbornew certs]ll all/Client/ total 12 -rw-r--r-- 1 root root 2025 Jul 12 14:59 ca.crt -rw-r--r-- 1 root root 2143 Jul 12 14:59 magedu.com.cert -rw-r--r-- 1 root root 3247 Jul 12 14:59 magedu.com.key [rootharbornew certs]ll all/Server/ total 16 -rw-r--r-- 1 root root 2143 Jul 12 14:59 magedu.com.cert -rw-r--r-- 1 root root 2143 Jul 12 14:59 magedu.com.crt -rw-r--r-- 1 root root 1704 Jul 12 14:59 magedu.com.csr -rw-r--r-- 1 root root 3247 Jul 12 14:59 magedu.com.key二、配置harbor 证书mkdir -p /opt/harbor # 下载解压 到https://github.com/goharbor/harbor/releases 下载 harbor-offline-installer-v2.15.2.tgz 上传到/opt/harbor cd /opt/harbor tar zxvf harbor-offline-installer-v2.15.2.tgz # 配置安装 cd /opt/harbor/harbor/ cp harbor.yml.tmpl harbor.yml #在harbor中配置https证书 vi harbor.ymlharbor.yml内容如下# Configuration file of Harbor # The IP address or hostname to access admin UI and registry service. # DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients. hostname: harbor.magedu.com # http related config http: # port for http, default is 80. If https enabled, this port will redirect to https port port: 80 # https related config https: # https port for harbor, default is 443 port: 443 # The path of cert and key files for nginx #certificate: /your/certificate/path #private_key: /your/private/key/path certificate: /opt/openssl/magedu.com.crt private_key: /opt/openssl/magedu.com.keyadmin的默认密码 Harbor123456 按自己的需求修改三、 运行harbor#安装harbor ./install.sh --with-trivy #查看运行状态 docker ps四、配置系统启动服务vi /etc/systemd/system/harbor.service[Unit] Descriptionharbor Afterdocker.service systemd-networkd.service systemd-resolved.service Requiresdocker.service Documentationhttp://github.com/vmware/harbor [Service] Typesimple Restarton-failure RestartSec5 ExecStart/usr/bin/docker-compose -f /opt/harbor/harbor/docker-compose.yml up ExecStop/usr/bin/docker-compose -f /opt/harbor/harbor/docker-compose.yml down [Install] WantedBymulti-user.target#开机启动 systemctl enable harbor.service #启动服务 systemctl start harbor.service systemctl status harbor.servicehttp://192.168.1.15在linux可以使用#检查https证书是否正确 docker login https://harbor.magedu.comok harbor搭建完毕