操作系统信息
虚拟机 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