戴志强1
Published on 2026-09-24 / 19 Visits
0
0

在现有的华为 k8s集群上部署kubesphere和devops

在现有的华为 k8s集群上部署kubesphere和devops

1. 使用场景背景

  1. 项目现场部署华为方案的k8s, 没有安装图形化面板;
  2. 项目现场需要安装devops流水线功能

2. 部署资源要求

  1. kubesphere需要资源: vCPU: 8 内存: 16GB
  2. devops需要资源: vCPU: 16 内存: 32GB

3. 前置准备

  1. 安装好镜像仓库
  2. 安装好nfs-client 存储类,并设置为默认存储类
  3. 每个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 

将导出的离线镜像包放置到目标服务器某个目录下:

image-CkaS.png

新建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

将 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:

image-dDAu.png

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

image-vycg.png

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

image-pxHr.png

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的工作负载机:

image-DhUd.png

image-hrNI.png

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 的内容:

image-uvMg.png

添加缺失的编译容器列表,如: nodejs-zuanix, nodejs-react, maven-imom, maven363-imom

修改镜像仓库地址:

image-MQln.png

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

image-BkHX.png

之后重启jenkins工作负载:

image-ZrNI.png

7. 使用devops

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

image-eavb.png

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

image-YaPT.png

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

image-JjQv.png

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

image-qhFX.png

image-JAJa.png


Comment