Skip to content

01 环境与准备工作

1.1 环境信息

项目信息
K8s 集群RKE2 v1.35.6+rke2r1,API: https://192.168.122.31:6443
节点sza122023/24/28/29/30 Ready(23/24/31 为 control-plane,31 当前 NotReady),Rocky Linux 9.8
容器运行时containerd 2.2.5(节点已配置 Harbor HTTP 仓库信任)
存储StorageClass nfs(默认,nfs-subdir-external-provisioner,支持 RWX)
IngressTraefik(本次未使用,采用 NodePort 暴露)
Harborhttp://192.168.122.156:30000(HTTP,admin / xxx)
kubeconfig~/.kube/config-122.31

说明:集群节点已可正常拉取 192.168.122.156:30000 的 HTTP 镜像(集群中已有 116 个容器使用该仓库),无需额外配置 containerd。

1.2 安装 kubectl(本机无 kubectl)

官方源 dl.k8s.io 可直连;阿里云镜像路径已失效(mirrors.aliyun.com/kubernetes-release 404)。

bash
mkdir -p tools
curl -sL -o tools/kubectl "https://dl.k8s.io/release/v1.29.3/bin/linux/amd64/kubectl"
chmod +x tools/kubectl
tools/kubectl version --client

提示:kubectl 1.29 与集群 1.35 存在版本偏差告警,仅影响新特性,常用命令正常。 生产建议下载与集群一致的版本:https://dl.k8s.io/release/v1.35.x/bin/linux/amd64/kubectl

验证集群连通性:

bash
export KUBECONFIG=~/.kube/config-122.31
tools/kubectl get nodes -o wide
tools/kubectl get sc        # 确认默认 StorageClass: nfs
tools/kubectl get ns

本机已具备的工具:docker、helm v3.19.4、skopeo、sshpass、jq。

1.3 验证 Harbor 连通性与创建项目

bash
# 验证 Harbor API(401 表示服务正常、需认证)
curl -s -o /dev/null -w "%{http_code}\n" http://192.168.122.156:30000/v2/

# 创建项目(jenkins 项目已存在返回 409,sonarqube 新建成功 201)
curl -s -X POST -u 'admin:xxx' -H 'Content-Type: application/json' \
  http://192.168.122.156:30000/api/v2.0/projects \
  -d '{"project_name":"jenkins","public":true}'
curl -s -X POST -u 'admin:xxx' -H 'Content-Type: application/json' \
  http://192.168.122.156:30000/api/v2.0/projects \
  -d '{"project_name":"sonarqube","public":true}'

# 查看项目
curl -s -u 'admin:xxx' http://192.168.122.156:30000/api/v2.0/projects | jq -r '.[].name'

1.4 国内镜像源可用性测试

使用 skopeo 探测各国内 Docker Hub 加速源:

bash
for m in docker.m.daocloud.io docker.1ms.run docker.xuanyuan.me hub.rat.dev; do
  echo "== $m =="
  timeout 25 skopeo inspect --tls-verify=false docker://$m/library/nginx:latest >/dev/null 2>&1 && echo OK || echo FAIL
done

实测结果(2026-08-13):

镜像源状态
docker.m.daocloud.io✅ 可用(本次选用)
docker.1ms.run✅ 可用(备用)
docker.xuanyuan.me❌ 不可用
hub.rat.dev❌ 不可用

1.5 Helm Chart 获取(charts.jenkins.io 国内不可直连)

charts.jenkins.io(GitHub Pages)本机不可直连,通过 GitHub 加速代理下载:

bash
mkdir -p charts
# 获取 chart 索引,确认最新版本
curl -sL "https://ghfast.top/https://raw.githubusercontent.com/jenkinsci/helm-charts/gh-pages/index.yaml" \
  -o charts/jenkins-index.yaml
# 下载 chart 5.9.54(appVersion 2.568.2)
curl -sL "https://ghfast.top/https://github.com/jenkinsci/helm-charts/releases/download/jenkins-5.9.54/jenkins-5.9.54.tgz" \
  -o charts/jenkins-5.9.54.tgz
tar xzf charts/jenkins-5.9.54.tgz -C charts/

实测可用的 GitHub 代理:ghfast.topgh-proxy.comghproxy.net