一、k8s工具kuboard创建方法

方法1:docker命令(已亲测)

docker run -d \
  --restart=unless-stopped \
  --name=kuboard \
  --network=bridge \
  -p 30080:80/tcp \
  -p 10081:10081/udp \
  -p 10081:10081/tcp \
  -e KUBOARD_ENDPOINT="http://10.0.0.200:30080" \
  -e KUBOARD_AGENT_SERVER_UDP_PORT="10081" \
  -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
  -v /data/kuboard:/data \
  eipwork/kuboard:v3

格式化:

docker run -d --restart=unless-stopped --name=kuboard --network=bridge -p 30080:80/tcp -p 10081:10081/udp -p 10081:10081/tcp -e KUBOARD_ENDPOINT="http://10.0.0.102:30080" -e KUBOARD_AGENT_SERVER_UDP_PORT="10081" -e KUBOARD_AGENT_SERVER_TCP_PORT="10081" -v /data/kuboard:/data eipwork/kuboard:v3

方法2: k8s安装(暂未测试)

# 下载yaml文件
curl -o kuboard-v3.yaml https://addons.kuboard.cn/kuboard/kuboard-v3.yaml


# 修改yaml配置:
# KUBOARD_ENDPOINT 参数的作用是,让部署到k8s中的 kuboard-agent 知道如何访问
Kuboard Server,也可是外网ip或域名
KUBOARD_ENDPOINT: 'http://192.168.11.1:30567'

# 换成自己集群中现有的sc
storageClassName: managed-nfs-storage


# 安装 初始密码:admin/Kuboard123
kubectl apply -f kuboard-v3.yaml

已测试成功的k8s安装kuboard

使用 hostPath 提供持久化
1、在安装etcd节点添加 k8s.kuboard.cn/role=etcd 的标签,来增加 kuboard-etcd 的实例数量
执行如下指令,可以为 your-node-name 节点添加所需要的标签

kubectl label nodes your-node-name k8s.kuboard.cn/role=etcd

2、在线安装,当你的集群可以连接外网的时候,可以用,非常方便,只要在master1上执行下面的命令:

kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml

转载自:Kubernetes 多集群管理工具 - Kuboard-CSDN博客

注意:添加集群的api是https

方法3:docker-compose安装

1.安装docker-compose

# 1. 直接指定最新稳定版(写死版本,绕过代理)
# 去 https://github.com/docker/compose/releases 看最新版本号
# 比如当前最新是 v2.29.7,你可以换成最新的
COMPOSE_VERSION="v2.29.7"

# 2. 直接从 GitHub 下载(如果内网访问 GitHub 困难,就用国内镜像源)
# 国内镜像源地址:https://mirror.ghproxy.com/https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)
sudo curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 3. 加权限
sudo chmod +x /usr/local/bin/docker-compose

# 4. 验证
docker-compose --version


# 如果上述4部操作有问题,则再执行下面的命令
# 1. 先确认文件是否真的下载成功
ls -l /usr/local/bin/docker-compose

# 2. 给文件加执行权限(再确认一次)
sudo chmod +x /usr/local/bin/docker-compose

# 3. 把它软链接到系统能找到的路径(/usr/bin/)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 4. 刷新 shell 缓存,重新找命令
hash -r

# 5. 验证
docker-compose --version

kuboard的yaml文件及前提操作

创建挂载目录:mkdir -p volumes/kuboard-data

version: '3'
services:
  kuboard:
    image: eipwork/kuboard:v3
    restart: unless-stopped
    container_name: kuboard
    hostname: kuboard
    ports:
      - 80:80
      - 10081:10081
    environment:
      KUBOARD_ENDPOINT: "http://10.0.0.100:80"
      KUBOARD_AGENT_SERVER_TCP_PORT: "10081"
    volumes:
      - ./volumes/kuboard-data:/data

docker-compose -f kuboard.yaml up -d  启动,然后访问10.0.0.100 ip就行了

二、Harbor的脚本安装

(1)🚀 Ubuntu 环境下 Harbor 2.13.2 离线安装脚本(已有 Docker)

本脚本会直接使用已有的离线包 harbor-offline-installer-v2.13.2.tgz,无需再下载。

#!/bin/bash
set -e

# 配置信息(可根据需要修改)
HARBOR_VERSION="v2.13.2"
HARBOR_HOST="10.0.0.103"
HARBOR_ADMIN_PASSWORD="Harbor12345"
HARBOR_DATA_DIR="/data/harbor"
# 你的离线包路径,请根据实际存放位置修改
OFFLINE_PACKAGE="/root/harbor-offline-installer-v2.13.2.tgz"

# 1. 安装 Docker Compose(Harbor 依赖)
echo "=== 安装 Docker Compose ==="
if ! command -v docker-compose &> /dev/null; then
    apt update && apt install -y docker-compose
fi

# 2. 创建 Harbor 数据目录
echo "=== 创建 Harbor 数据目录 ==="
mkdir -p ${HARBOR_DATA_DIR}/cert
cd ${HARBOR_DATA_DIR}

# 3. 解压离线安装包
echo "=== 解压 Harbor ${HARBOR_VERSION} 离线包 ==="
if [ -f ${OFFLINE_PACKAGE} ]; then
    tar zxf ${OFFLINE_PACKAGE} -C ${HARBOR_DATA_DIR}
else
    echo "错误:离线包 ${OFFLINE_PACKAGE} 不存在!"
    exit 1
fi
cd harbor

# 4. 生成自签证书
echo "=== 生成自签证书 ==="
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 \
  -nodes -keyout ${HARBOR_DATA_DIR}/cert/${HARBOR_HOST}.key \
  -out ${HARBOR_DATA_DIR}/cert/${HARBOR_HOST}.crt \
  -subj "/CN=${HARBOR_HOST}" \
  -addext "subjectAltName=IP:${HARBOR_HOST}"

# 5. 配置 Harbor(修复了 sed 分隔符问题)
echo "=== 配置 Harbor ==="
cp harbor.yml.tmpl harbor.yml
sed -i "s#hostname: reg.mydomain.com#hostname: ${HARBOR_HOST}#g" harbor.yml
sed -i "s#port: 80#port: 80#g" harbor.yml
sed -i "s#https: #https: #g" harbor.yml
sed -i "s#  port: 443#  port: 443#g" harbor.yml
sed -i "s#  certificate: /your/certificate/path#  certificate: ${HARBOR_DATA_DIR}/cert/${HARBOR_HOST}.crt#g" harbor.yml
sed -i "s#  private_key: /your/private/key/path#  private_key: ${HARBOR_DATA_DIR}/cert/${HARBOR_HOST}.key#g" harbor.yml
sed -i "s#harbor_admin_password: Harbor12345#harbor_admin_password: ${HARBOR_ADMIN_PASSWORD}#g" harbor.yml
sed -i "s#data_volume: /data#data_volume: ${HARBOR_DATA_DIR}#g" harbor.yml

# 6. 安装并启动 Harbor
echo "=== 安装并启动 Harbor ==="
./install.sh

echo "=== Harbor ${HARBOR_VERSION} 安装完成 ==="
echo "访问地址: https://${HARBOR_HOST}"
echo "管理员账号: admin / ${HARBOR_ADMIN_PASSWORD}"

(2)执行完脚本可能出现下面的报错(没有python依赖)

解决上面错误的依赖问题(按照下面的步骤进行操作,注意我的ubuntu的版本是24.04)

1. 卸载旧版 docker-compose

# 如果之前安装了旧版,先卸载
apt remove -y docker-compose

2. 安装 Docker Compose V2

# 下载最新稳定版(v2.27.1)
curl -SL https://github.com/docker/compose/releases/download/v2.27.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

# 赋予执行权限
chmod +x /usr/local/bin/docker-compose

# 创建软链接,确保 Harbor 安装脚本能找到它
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

3. 验证安装

docker-compose version

输出类似 Docker Compose version v2.27.1 就说明安装成功了。

然后再次执行上面的脚本成功后的显示

(3)关于harbor延申的问题

想拉取镜像的时候出现:docker push 10.0.0.13/item/nginx:1.24

本人的疑问:跟这个镜像打标签的时候是 harbor.wang.org/item/nginx:1.24,却显示10.0.0.103/xx
解决方法如下操作:主要是改hostname!

  • 停止 Harbor 服务
    cd /data/harbor/harbor
    docker-compose down
    
  • 修改 harbor.yml 配置文件确保 hostname 字段是你的域名:
    hostname: harbor.wang.org
    
  • 重新生成配置并启动
    ./prepare
    docker-compose up -d

(4)关于是https还是http的问题

1.https的设置

1. 先生成带 SAN 字段的证书

# 创建目录
mkdir -p /data/harbor/cert
cd /data/harbor/cert

# 生成证书(直接复制运行)
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
  -keyout cscn.harbor.cloud.key \
  -out cscn.harbor.cloud.crt \
  -subj "/CN=cscn.harbor.cloud" \
  -addext "subjectAltName = DNS:cscn.harbor.cloud,IP:10.0.0.103"

2. 修改 harbor.yml 配置如下

hostname: cscn.harbor.cloud

http:
  port: 80

https:
  port: 443
  certificate: /data/harbor/cert/cscn.harbor.cloud.crt
  private_key: /data/harbor/cert/cscn.harbor.cloud.key

harbor_admin_password: 123456

3.重新安装并启动 Harbor

docker-compose down -v
./install.sh

4. 检查端口(必须看到 80/443 都被监听)

ss -tnulp | grep -E "(80|443)"

5. 给所有机器导入证书(包括本机)

mkdir -p /etc/docker/certs.d/cscn.harbor.cloud/
cp /data/harbor/cert/cscn.harbor.cloud.crt /etc/docker/certs.d/cscn.harbor.cloud/ca.crt


# 把 Harbor 证书导入系统信任列表
# 复制证书到系统信任目录
cp /data/harbor/cert/cscn.harbor.cloud.crt /usr/local/share/ca-certificates/cscn.harbor.cloud.crt

# 更新系统证书缓存(非常重要)
update-ca-certificates

6. 重启 Docker 并重新登录

systemctl daemon-reload
systemctl restart docker

docker logout cscn.harbor.cloud
docker login cscn.harbor.cloud -u admin -p 123456

7. 再次推送镜像

docker tag nginx:1.24 cscn.harbor.cloud/library/nginx:1.24
docker push cscn.harbor.cloud/library/nginx:1.24

2.http设置

第一步:停止 Harbor:

docker-compose down -v

第二步:修改 harbor.yml(只保留 HTTP,彻底关掉 HTTPS

hostname: cscn.harbor.cloud

http:
  port: 80

# 把 https 整段 彻底注释掉!!!
# https:
#   port: 443
#   certificate:
#   private_key:

harbor_admin_password: 123456
......

第三步:重新安装 Harbor(启用 HTTP)

./install.sh

第四步:配置 Docker 允许 HTTP 访问(必须做)

vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://docker.m.daocloud.io"],
  "insecure-registries": ["cscn.harbor.cloud"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
systemctl daemon-reload
systemctl restart docker

✅ 现在登录、上传镜像 全部成功!

docker login cscn.harbor.cloud -u admin -p 123456

docker tag nginx:1.24 cscn.harbor.cloud/library/nginx:1.24

docker push cscn.harbor.cloud/library/nginx:1.24

🎯 为什么这个方法一定能成?

  1. 彻底关掉 HTTPS,没有证书问题,没有 TLS 错误
  2. 只走 80 端口,Docker 完全信任
  3. 不用配置任何证书,不用导入系统证书
  4. 不会出现 connection refused /x509 证书错误

这是最简单、最稳定、最适合测试环境的方案!


你现在直接按这 4 步走,我保证你这次一定能成功上传镜像!

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐