关于k8s和harbor脚本安装的一系列操作
一、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
🎯 为什么这个方法一定能成?
- 彻底关掉 HTTPS,没有证书问题,没有 TLS 错误
- 只走 80 端口,Docker 完全信任
- 不用配置任何证书,不用导入系统证书
- 不会出现 connection refused /x509 证书错误
这是最简单、最稳定、最适合测试环境的方案!
你现在直接按这 4 步走,我保证你这次一定能成功上传镜像!
更多推荐


所有评论(0)