在现有的华为 k8s集群上部署kubesphere和devops
1. 使用场景背景
- 项目现场部署华为方案的k8s, 没有安装图形化面板;
- 项目现场需要安装devops流水线功能
2. 部署资源要求
- kubesphere需要资源: vCPU: 8 内存: 16GB
- devops需要资源: vCPU: 16 内存: 32GB
3. 前置准备
- 安装好镜像仓库
- 安装好nfs-client 存储类,并设置为默认存储类
- 每个k8s工作节点安装好nfs-utils, 并配置containerd对内网镜像仓库走http协议。
当前的环境信息:
# 镜像仓库就绪
[root@imom-worker-test-0009 413_1]# curl -I http://192.168.100.133:5000/v2/
HTTP/1.1 200 OK
Content-Length: 2
Content-Type: application/json; charset=utf-8
Docker-Distribution-Api-Version: registry/2.0
X-Content-Type-Options: nosniff
Date: Thu, 24 Sep 2026 02:35:07 GMT
# k8s就绪
[root@imom-worker-test-0009 413_1]# kubectl version
Client Version: v1.28.0
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.0
# 默认存储类就绪
[root@imom-worker-test-0009 413_1]# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
nfs-client (default) cluster.local/nfs-subdir-external-provisioner Delete Immediate true 41d
配置containerd对内网镜像仓库走http协议: vi /etc/containerd/config.toml +156
149 [plugins."io.containerd.grpc.v1.cri".registry.auths]
150
151 [plugins."io.containerd.grpc.v1.cri".registry.configs]
152
153 [plugins."io.containerd.grpc.v1.cri".registry.headers]
154
155 [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
156 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."192.168.100.133:5000"]
157 endpoint = ["http://192.168.100.133:5000"]
158
4. 安装kubesphere4.1.3
4.1 导入离线镜像
按照以下的镜像清单,整理出离线镜像
registry.cn-beijing.aliyuncs.com/kubesphereio/pause:3.9
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-apiserver:v1.26.12
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controller-manager:v1.26.12
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-scheduler:v1.26.12
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-proxy:v1.26.12
registry.cn-beijing.aliyuncs.com/kubesphereio/coredns:1.9.3
registry.cn-beijing.aliyuncs.com/kubesphereio/k8s-dns-node-cache:1.22.20
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controllers:v3.27.4
registry.cn-beijing.aliyuncs.com/kubesphereio/cni:v3.27.4
registry.cn-beijing.aliyuncs.com/kubesphereio/node:v3.27.4
registry.cn-beijing.aliyuncs.com/kubesphereio/pod2daemon-flexvol:v3.27.4
registry.cn-beijing.aliyuncs.com/kubesphereio/typha:v3.27.4
registry.cn-beijing.aliyuncs.com/kubesphereio/provisioner-localpv:3.3.0
registry.cn-beijing.aliyuncs.com/kubesphereio/linux-utils:3.3.0
registry.cn-beijing.aliyuncs.com/kubesphereio/haproxy:2.9.6-alpine
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-vip:v0.7.2
## ks-core
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-apiserver:v4.1.3
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-console:v4.1.3
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-controller-manager:v4.1.3
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubectl:v1.27.16
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/redis:7.2.4-alpine
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/haproxy:2.9.6-alpine
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/ks-extensions-museum:v1.1.2
## devops
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/devops-apiserver:v4.1.2
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/devops-controller:v4.1.2
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/devops-tools:v4.1.2
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/devops-jenkins:v4.1.2-2.346.3
swr.cn-southwest-2.myhuaweicloud.com/ks/jenkins/inbound-agent:4.10-2
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-base:v3.2.2
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-nodejs:v3.2.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-maven:v3.2.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-maven:v3.2.1-jdk11
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-python:v3.2.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-go:v3.2.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-go:v3.2.2-1.16
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-go:v3.2.2-1.17
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-go:v3.2.2-1.18
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-base:v3.2.2-podman
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-nodejs:v3.2.0-podman
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-maven:v3.2.0-podman
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-maven:v3.2.1-jdk11-podman
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-python:v3.2.0-podman
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-go:v3.2.0-podman
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-go:v3.2.2-1.16-podman
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-go:v3.2.2-1.17-podman
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/builder-go:v3.2.2-1.18-podman
swr.cn-southwest-2.myhuaweicloud.com/ks/argoproj/argocd:v2.3.3
swr.cn-southwest-2.myhuaweicloud.com/ks/argoproj/argocd-applicationset:v0.4.1
swr.cn-southwest-2.myhuaweicloud.com/ks/dexidp/dex:v2.30.2
swr.cn-southwest-2.myhuaweicloud.com/ks/library/redis:6.2.6-alpine
## gatekeeper
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/gatekeeper-extension-apiserver:v1.0.1
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubectl:v1.27.12
swr.cn-southwest-2.myhuaweicloud.com/ks/openpolicyagent/gatekeeper:v3.14.0
swr.cn-southwest-2.myhuaweicloud.com/ks/openpolicyagent/gatekeeper-crds:v3.14.0
## gateway
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/nginx-ingress-controller:v1.4.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/gateway-apiserver:v1.0.2
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/gateway-controller-manager:v1.0.2
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubectl:v1.27.16
## grafana
swr.cn-southwest-2.myhuaweicloud.com/ks/curlimages/curl:7.85.0
swr.cn-southwest-2.myhuaweicloud.com/ks/grafana/grafana:10.4.1
swr.cn-southwest-2.myhuaweicloud.com/ks/library/busybox:1.31.1
## kubeedge
swr.cn-southwest-2.myhuaweicloud.com/ks/kubeedge/iptables-manager:v1.13.1
swr.cn-southwest-2.myhuaweicloud.com/ks/kubeedge/cloudcore:v1.13.1
swr.cn-southwest-2.myhuaweicloud.com/ks/kubeedge/controller-manager:v1.13.1
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubeedge-proxy:v0.4.1
## kubefed
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubefed-extension:v1.0.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubefed:v0.8.1
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubectl:v1.27.4
## loki
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubectl:v1.27.12
swr.cn-southwest-2.myhuaweicloud.com/ks/grafana/loki:3.0.0
swr.cn-southwest-2.myhuaweicloud.com/ks/grafana/loki-helm-test:ewelch-distributed-helm-chart-17db5ee
swr.cn-southwest-2.myhuaweicloud.com/ks/grafana/loki-canary:3.0.0
swr.cn-southwest-2.myhuaweicloud.com/ks/nginxinc/nginx-unprivileged:1.24-alpine
swr.cn-southwest-2.myhuaweicloud.com/ks/library/memcached:1.6.23-alpine
swr.cn-southwest-2.myhuaweicloud.com/ks/prom/memcached-exporter:v0.14.2
swr.cn-southwest-2.myhuaweicloud.com/ks/kiwigrid/k8s-sidecar:1.24.3
swr.cn-southwest-2.myhuaweicloud.com/ks/minio/minio:RELEASE.2022-09-17T00-09-45Z
swr.cn-southwest-2.myhuaweicloud.com/ks/minio/mc:RELEASE.2022-09-16T09-16-47Z
## metrics-server
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/metrics-server:v0.7.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/addon-resizer:1.8.20
## network
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/network-extension-apiserver:v1.1.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/network-extension-controller:v1.1.0
## openpitrix
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/apps-manage:v2.0.1
## opensearch
swr.cn-southwest-2.myhuaweicloud.com/ks/opensearchproject/opensearch:2.8.0
swr.cn-southwest-2.myhuaweicloud.com/ks/library/busybox:1.35.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/opensearch-curator:v0.0.5
swr.cn-southwest-2.myhuaweicloud.com/ks/opensearchproject/opensearch-dashboards:2.8.0
## servicemesh
swr.cn-southwest-2.myhuaweicloud.com/ks/istio/pilot:1.16.5
swr.cn-southwest-2.myhuaweicloud.com/ks/istio/proxyv2:1.16.5
swr.cn-southwest-2.myhuaweicloud.com/ks/istio/istioctl:1.16.5
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubectl:v1.27.4
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kiali-operator:v1.59.1
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kiali:v1.59
swr.cn-southwest-2.myhuaweicloud.com/ks/jaegertracing/jaeger-operator:1.35.0
swr.cn-southwest-2.myhuaweicloud.com/ks/jaegertracing/jaeger-agent:1.35
swr.cn-southwest-2.myhuaweicloud.com/ks/jaegertracing/jaeger-collector:1.35
swr.cn-southwest-2.myhuaweicloud.com/ks/jaegertracing/jaeger-query:1.35
swr.cn-southwest-2.myhuaweicloud.com/ks/jaegertracing/jaeger-es-index-cleaner:1.35
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/servicemesh-apiserver:v0.1.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/servicemesh-controller-manager:v0.1.0
## storage-utils
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/storageclass-accessor:v0.2.5
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/snapshot-controller:v4.2.1
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/snapshotclass-controller:v0.0.1
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/pvc-autoresizer:v0.3.1
## tower
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/tower:v0.2.1
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/tower-extension:v1.0.0
## vector
swr.cn-southwest-2.myhuaweicloud.com/ks/timberio/vector:0.39.0-debian
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubectl:v1.27.12
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/vector-config:v0.2.1
## whizard-alerting
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/whizard-alerting-apiserver:v1.0.2
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/whizard-alerting-controller-manager:v1.0.2
swr.cn-southwest-2.myhuaweicloud.com/ks/thanosio/thanos:v0.36.1
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubectl:v1.27.12
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/cortex-tenant:v1.12.5
swr.cn-southwest-2.myhuaweicloud.com/ks/prometheus-operator/prometheus-config-reloader:v0.75.1
## whizard-events
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kube-events-exporter:v0.8.0
swr.cn-southwest-2.myhuaweicloud.com/ks/jimmidyson/configmap-reload:v0.9.0
## whizard-logging
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubectl:v1.27.12
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/log-sidecar-injector:v1.3.0
swr.cn-southwest-2.myhuaweicloud.com/ks/jimmidyson/configmap-reload:v0.9.0
swr.cn-southwest-2.myhuaweicloud.com/ks/elastic/filebeat:6.7.0
swr.cn-southwest-2.myhuaweicloud.com/ks/timberio/vector:0.39.0-debian
swr.cn-southwest-2.myhuaweicloud.com/ks/library/alpine:3.14
## whizard-monitoring
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubectl:v1.27.12
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kube-state-metrics:v2.12.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubespheredev/kube-webhook-certgen:v20221220-controller-v1.5.1-58-g787ea74b6
swr.cn-southwest-2.myhuaweicloud.com/ks/thanosio/thanos:v0.36.1
swr.cn-southwest-2.myhuaweicloud.com/ks/brancz/kube-rbac-proxy:v0.18.0
swr.cn-southwest-2.myhuaweicloud.com/ks/prometheus-operator/prometheus-config-reloader:v0.75.1
swr.cn-southwest-2.myhuaweicloud.com/ks/prometheus-operator/prometheus-operator:v0.75.1
swr.cn-southwest-2.myhuaweicloud.com/ks/prometheus/node-exporter:v1.8.1
swr.cn-southwest-2.myhuaweicloud.com/ks/prometheus/prometheus:v2.51.2
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/dcgm-exporter:3.3.5-3.4.0-ubuntu22.04
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/process-exporter:0.5.0
swr.cn-southwest-2.myhuaweicloud.com/ks/nginxinc/nginx-unprivileged:1.24
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/calico-exporter:v0.3.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/whizard-monitoring-helm-init:v0.1.0
## whizard-notification
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kubectl:v1.27.12
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/kube-rbac-proxy:v0.11.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/alertmanager-proxy:v0.2.0
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/notification-manager-operator:v2.5.2
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/notification-manager:v2.5.2
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/notification-tenant-sidecar:v4.0.2
swr.cn-southwest-2.myhuaweicloud.com/ks/prometheus/alertmanager:v0.27.0
swr.cn-southwest-2.myhuaweicloud.com/ks/prometheus-operator/prometheus-config-reloader:v0.75.1
## whizard-telemetry
swr.cn-southwest-2.myhuaweicloud.com/ks/kubesphere/whizard-telemetry-apiserver:v1.2.2
导出离线镜像命令例子:
docker save registry.cn-beijing.aliyuncs.com/kubesphereio/pause:3.9 | gzip > kubesphereio_pause_3_9.tar.gz
将导出的离线镜像包放置到目标服务器某个目录下:

新建push_images.sh脚本,内容如下:
#!/bin/bash
set -e
# 更改为当前镜像仓库地址:
export ANSIBLE_DOCKER_REGISTRY_ADDRESS="192.168.100.133:5000"
CURRENT_PATH=`pwd`
K8S_ASSETS_PATH=(
"${CURRENT_PATH}"
)
# 使用示例
# load_and_push_image redis_8.0.2-debian-12-r4.tar 192.168.168.207:30002
load_and_push_image() {
# 参数1: 镜像tar文件地址
local IMAGE_TAR_PATH="$1"
# 参数2: 镜像仓库地址
local TARGET_REGISTRY="$2"
# 检查是否提供了两个参数
if [[ -z "$IMAGE_TAR_PATH" ]] || [[ -z "$TARGET_REGISTRY" ]]; then
echo "Usage: load_and_push_image <image_tar_path> <target_registry>"
return 1
fi
# 加载镜像
echo "Loading image from $IMAGE_TAR_PATH..."
load_result=`docker load -i "$IMAGE_TAR_PATH"`
old_image_id=`echo ${load_result} | awk '{print $3}'`
# 计算左斜杆数量
count=$(echo -n "${load_result}" | tr -cd '/' | wc -c)
if [[ "${count}" == "1" ]];then
image_name=$(echo "${load_result}" | cut -d'/' -f1- )
else
image_name=$(echo "${load_result}" | cut -d'/' -f2- )
fi
# 构建新的镜像名称
NEW_IMAGE_NAME="${TARGET_REGISTRY}/${image_name}"
# 给镜像打上新标签
echo "Tagging image as $NEW_IMAGE_NAME"
docker tag "$old_image_id" "$NEW_IMAGE_NAME"
# 推送镜像到目标仓库
echo "Pushing image to $NEW_IMAGE_NAME"
docker push "$NEW_IMAGE_NAME"
echo "Image has been pushed successfully to $NEW_IMAGE_NAME"
}
# 检查 docker 是否存在, 否则退出
if which docker > /dev/null 2>&1; then
echo "Docker 客户端已经安装"
else
echo "Docker 未找到,请确保 Docker 已正确安装。"
exit 1
fi
echo "install k8s images with docker"
for dir in "${K8S_ASSETS_PATH[@]}"; do
echo "scan dir: $dir"
# for file in $(ls "$dir" | sort -V); do
for file in $(ls "$dir" | grep -E '\.(tar\.gz|tar)$' | sort -V); do
fileFullPath="${dir}/${file}"
echo "Processing: ${fileFullPath}"
load_and_push_image ${fileFullPath} ${ANSIBLE_DOCKER_REGISTRY_ADDRESS}
done
done
cd ${CURRENT_PATH}
执行以下的命令导入镜像:
chmod 755 push_images.sh
./push_images.sh
4.2 安装kubesphere
将 ks-core-1.1.3.tgz 放置在/root目录下, 执行以下的命令安装kubesphere模块:
helm upgrade --install -n kubesphere-system --create-namespace ks-core ks-core-1.1.3.tgz --set global.imageRegistry=192.168.100.133:5000/ks --set global.tag=v4.1.3 --set extension.imageRegistry=192.168.100.133:5000/ks --set ksExtensionRepository.image.tag=v1.1.2 --debug --wait
期间新开一个终端, 输入以下的命令观察工作负载的启动情况:
[root@imom-worker-test-0009 ~]# kubectl get pods -A -o wide | grep ks
kubesphere-system ks-apiserver-5bd56c68bb-sw7cs 1/1 Running 0 12d 10.244.1.3 mbm-master-test-0002 <none> <none>
kubesphere-system ks-console-c5dbfd767-rzpk8 1/1 Running 0 12d 10.244.1.2 mbm-master-test-0002 <none> <none>
kubesphere-system ks-controller-manager-55bdfbf7fb-9cf5g 1/1 Running 0 12d 10.244.1.4 mbm-master-test-0002 <none> <none>
kubesphere 安装完毕后,使用以下的地址即可访问工作面板:
http://MASTER_IP:30880
5. 在kubesphere上安装devops
使用admin账号登录kubesphere, 在"扩展市场"中安装DevOps:

以下的两个地址,改成浏览器可以访问到的地址,端口无需修改:

观察 kubesphere-devops-system 和 argocd 两个命名空间下的工作负载,确保没有异常

6. 配置devops
6.1 导入imom流水线相关镜像
导出镜像:
# imom devops pipeline
docker save 192.168.168.207:30002/public/builder-nodejs:v16.9.0 | gzip > builder-nodejs_v16.9.0.tar.gz
docker save 192.168.168.207:30002/public/builder-nodejs:v16.19.0 | gzip > builder-nodejs_v16.19.0.tar.gz
docker save 192.168.168.207:30002/public/builder-nodejs:v24.11.1 | gzip > builder-nodejs_v24.11.1.tar.gz
docker save 192.168.168.207:30002/public/builder-nodejs:v20.11.1 | gzip > builder-nodejs_v20.11.1.tar.gz
docker save 192.168.168.207:30002/public/builder-jdk:v21.0.1 | gzip > builder-jdk_v21.0.1.tar.gz
docker save 192.168.168.207:30002/public/builder-jdk:v21.0.1-mvn3.6.3 | gzip > builder-jdk_v21.0.1-mvn3.6.3.tar.gz
docker save 192.168.168.207:30002/public/build-maven:v1.0 | gzip > build-maven_v1.0.tar.gz
# dockerfile image
docker save 192.168.168.207:30002/private/java/imom-jdk21:1.0.0 | gzip > imom-jdk21_1.0.0.tar.gz
docker save 192.168.168.207:30002/public/nginx:latest | gzip > nginx_latest.tar.gz
docker save 192.168.168.207:30002/private/java/aimom-jdk21:1.0.0 | gzip > aimom-jdk21_1.0.0.tar.gz
docker save 192.168.168.207:30002/public/android-builder:2.0 | gzip > android-builder_2.0.tar.gz
docker save 192.168.168.207:30002/private/java/ub-graalvm-jdk:21 | gzip > ub-graalvm-jdk_21.tar.gz
拷贝前文新建push_images.sh脚本到目标服务器下, 使用以下的命令导入离线镜像:
chmod 755 push_images.sh
./push_images.sh
6.2 配置节点标签和污点:
以下节点用作devops的工作负载机:


ssh登录进当前节点, 安装docker服务:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
配置http访问:
[root@imom-worker-test-0011 ~]# cat /etc/docker/daemon.json
{
"insecure-registries": ["192.168.0.0/16","10.0.0.0/8","172.16.0.0/12"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
重启docker服务:
systemctl restart docker
6.3 配置
对比赛意开发环境jenkins_user.yaml 的内容:

添加缺失的编译容器列表,如: nodejs-zuanix, nodejs-react, maven-imom, maven363-imom
修改镜像仓库地址:

节点亲和性的权重,设置为100

之后重启jenkins工作负载:

7. 使用devops
创建企业空间, 在企业空间下的"devops"项目下创建DevOps项目:

进入一个DevOps项目, 按需创建流水线:

流水线依赖的账号凭证在这里配置:

运行流水线,查看流水线日志:

