操作系统信息
3节点物理机,Centos7.9,40C/128G
Kubernetes版本信息
v1.23.15-多节点部署。
容器运行时
containerd,版本1.6.4
KubeSphere版本信息
kubeky v3.0.13
kubesphere v3.4.1。
离线安装。
问题是什么
现有条件描述,manifest.yaml文件成功下载并打包好离线包。文件内容如下:
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Manifest
metadata:
name: sample
spec:
arches:
- amd64
#operatingSystems:
#- arch: amd64
# type: linux
# id: centos
# version: "7"
# repository:
# iso:
# localPath:
# url: https://github.com/kubesphere/kubekey/releases/download/v3.0.10/centos7-rpms-amd64.iso
#- arch: amd64
# type: linux
# id: ubuntu
# version: "20.04"
# repository:
# iso:
# localPath:
# url: https://github.com/kubesphere/kubekey/releases/download/v3.0.10/ubuntu-20.04-debs-amd64.iso
kubernetesDistributions:
- type: kubernetes
version: v1.26.5
components:
helm:
version: v3.9.0
cni:
version: v1.2.0
etcd:
version: v3.4.13
calicoctl:
version: v3.26.1
## For now, if your cluster container runtime is containerd, KubeKey will add a docker 20.10.8 container runtime in the below list.
## The reason is KubeKey creates a cluster with containerd by installing a docker first and making kubelet connect the socket file of containerd which docker contained.
containerRuntimes:
- type: docker
version: 20.10.8
- type: containerd
version: 1.6.4
crictl:
version: v1.24.0
#docker-registry:
# version: "2"
#harbor:
# version: v2.5.3
#docker-compose:
# version: v2.2.2
images:
- docker.io/calico/cni:v3.23.2
- docker.io/calico/kube-controllers:v3.23.2
- docker.io/calico/node:v3.23.2
- docker.io/calico/pod2daemon-flexvol:v3.23.2
- docker.io/coredns/coredns:1.8.6
- docker.io/kubesphere/k8s-dns-node-cache:1.15.12
- docker.io/kubesphere/kube-apiserver:v1.26.5
- docker.io/kubesphere/kube-controller-manager:v1.26.5
- docker.io/kubesphere/kube-proxy:v1.26.5
- docker.io/kubesphere/kube-scheduler:v1.26.5
- docker.io/kubesphere/pause:3.6
内网自建有centos源,有私有harbor仓库(v2.9.1),harbor仓库使用的是HTTP方式,非HTTPS
在执行安装的过程中,在导入镜像到私有仓库时报错,安装命令如下:
./kk create cluster -f config.yaml -a kubesphere.tar.gz --with-kubernetes 1.26.5
前面终端打印信息正常,从下面开始展示报错信息,并退出,报错信息如下:
...
21:49:46 CST success: [LocalHost]
21:49:46 CST [CopyImagesToRegistryModule] Path multi-arch manifest to private registry
21:49:46 CST message: [LocalHost]
get manifest list failed by module cache
21:49:46 CST failed: [LocalHost]
error: Pipeline[CreateClusterPipeline] execute failed: Module[CopyImagesToRegistryModule] exec failed:
failed: [LocalHost] [PushManifest] exec failed after 1 retries: get manifest list failed by module cache
使用的config.yaml文件为
(以上省略,差别不大,下面是关于registry的配置)
...
registry:
auths:
"registry.xxx.xxx":
username: admin
password: 123456
privateRegistry: "registry.xxx.xxx"
namespaceOverride: ""
registryMirrors: []
insecureRegistries: []
其中registry.xxx.xxx是我们的内部域名,肯定是可以使用的,因为,单独docker login/push/pull都没有问题,之前单机部署docker容器也是从这个仓库拉取的,使用HTTP方式,非HTTPS,后面又尝试了单独推送的命令,还是报相同的错误
./kk artifact images push -a kubesphere.tar.gz -f config.yaml
还是报错,后面尝试了更改config配置,如下几种,都不行
registry:
auths:
"registry.xxx.xxx":
username: admin
password: 123456
privateRegistry: "registry.xxx.xxx"
namespaceOverride: ""
registryMirrors: []
insecureRegistries: ["registry.xxx.xxx"]
registry:
auths:
"registry.xxx.xxx":
username: admin
password: 123456
plainHTTP: true
privateRegistry: "registry.xxx.xxx"
namespaceOverride: ""
registryMirrors: []
insecureRegistries: [registry.xxx.xxx]
因此,请问这个报错该如何处理才能通过,当然保持Harbor的HTTP访问方式的前提下。