操作系统信息
虚拟机 Centos7.9

Kubernetes版本信息
kubectl version 命令执行结果贴在下方:

Client Version: v1.30.6

Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3

Server Version: v1.30.6

容器运行时
docker version / crictl version / nerdctl version 结果贴在下方

Version: 0.1.0

RuntimeName: containerd

RuntimeVersion: v1.7.13

RuntimeApiVersion: v1

KubeSphere版本信息
离线安装

kk:kk version: &version.Info{Major:“3”, Minor:“1”, GitVersion:“v3.1.8”, GitCommit:“dbb1ee4aa1ecf0586565ff3374427d8a7d9b327b”, GitTreeState:“clean”, BuildDate:“2025-03-26T04:49:07Z”, GoVersion:“go1.19.2”, Compiler:“gc”, Platform:“linux/amd64”}

kubernetes:v1.30.6

kubersphere:v4.1.2

问题是什么
现在离线安装好了kubernetes+kubersphere+docker registry本地私有仓库,现在想要再安装一些其他的kubersphere插件,通过如下步骤安装,最后报错如图:

1、登录 https://get-images.kubesphere.io/,选择需要的组件,填写邮箱地址,获取kk-manifest-mirror.yaml

2、在联机环境里执行

export KKZONE=cn

./kk artifact export -m kk-manifest-mirror.yaml -o kubesphere-20250421.tar.gz 导出离线镜像包

kk-manifest-mirror.yaml内容

apiVersion: kubekey.kubesphere.io/v1alpha2

kind: Manifest

metadata:

name: sample

spec:

arches:

  • amd64

    images:

    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.5

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

    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

    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

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

    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

    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

    registry:

    auths: {}

4、在离线环境里,上传tar.gz包,执行命令,推送到私有本地镜像仓库

./kk artifact image push -f config-sample.yaml -a kubesphere-20250421.tar.gz

config-sample.yaml内容:

apiVersion: kubekey.kubesphere.io/v1alpha2

kind: Cluster

metadata:

name: sample

spec:

hosts:

  • {name: dev3-bu-ansible-k8s-1.novalocal, address: 172.190.106.116, internalAddress: 192.168.0.15, user: root, password: ""}

  • {name: dev3-bu-ansible-k8s-2.novalocal, address: 172.190.106.112, internalAddress: 192.168.0.16, user: root, password: ""}

  • {name: dev3-bu-ansible-k8s-3.novalocal, address: 172.190.106.114, internalAddress: 192.168.0.17, user: root, password: ""}

    roleGroups:

    etcd:

    • dev3-bu-ansible-k8s-1.novalocal

      control-plane:

    • dev3-bu-ansible-k8s-1.novalocal

      worker:

    • dev3-bu-ansible-k8s-2.novalocal

    • dev3-bu-ansible-k8s-3.novalocal

      registry:

    • dev3-bu-ansible-k8s-1.novalocal

    controlPlaneEndpoint:

    Internal loadbalancer for apiservers

    internalLoadbalancer: haproxy

    domain: lb.kubesphere.local

    address: ""

    port: 6443

    kubernetes:

    version: v1.30.6

    clusterName: cluster.local

    autoRenewCerts: true

    containerManager: containerd

    etcd:

    type: kubekey

    network:

    plugin: calico

    kubePodsCIDR: 10.233.64.0/18

    kubeServiceCIDR: 10.233.0.0/18

    multus support. https://github.com/k8snetworkplumbingwg/multus-cni

    multusCNI:

    enabled: false

    新增 # 默认没有的新增配置,base path of the local PV provisioner

    storage:

    openebs:

    basePath: /k8s/openebs/local

    #

    registry:

    auths:

    “dockerhub.kubekey.local”:

    skipTLSVerify: true

privateRegistry: “dockerhub.kubekey.local”

namespaceOverride: "kubesphereio"

registryMirrors: []

insecureRegistries: []

addons: []

6、然后重复页面安装插件的步骤即可。

但是在第四步,推送镜像到离线本地私有仓库时报错,详见截图:

unmarshal index.json failed: %!s(MISSING): invalid character ‘w’ after top-level value

21:25:22 CST failed: [LocalHost]

error: Pipeline[ArtifactImagesPushPipeline] execute failed: Module[CopyImagesToRegistryModule] exec failed:

failed: [LocalHost] [CopyImagesToRegistry] exec failed after 1 retries: unmarshal index.json failed: %s: invalid character ‘w’ after top-level value