Istioctl安装ImagePullBackOff

问题描述 投票:0回答:1

我尝试使用 istioctl 安装 istio,但从我自己的注册表中提取图像。安装时出现以下错误:

This installation will make default injection and validation pointing to the default revision, and originally it was pointing to the revisioned one.
This will install the Istio 1.22.0 "default" profile (with components: Istio core, Istiod, and Ingress gateways) into the cluster. Proceed? (y/N) y
2024-05-22T14:12:34.935176Z debug   sync complete   name=istiod analyzer attempt=1 time=897ns
✔ Istio core installed                                                                                                                                                                                             
✘ Istiod encountered an error: failed to wait for resource: resources not ready after 5m0s: context deadline exceeded                                                                                              
  Deployment/istio-system/istiod (container failed to start: ImagePullBackOff: Back-off pulling image "192.168.1.1:8082/pilot:1.22.0")
✘ Ingress gateways encountered an error: failed to wait for resource: resources not ready after 5m0s: context deadline exceeded                                                                                    
  Deployment/istio-system/istio-ingressgateway (container failed to start: ContainerCreating: )
- Pruning removed resources                                                                                                                                                                                        Error: failed to install manifests: errors occurred during operation

我有一个 Kubernetes 集群:

kubectl get nodes
NAME        STATUS   ROLES                       AGE     VERSION
control-1   Ready    control-plane,etcd,master   4d22h   v1.28.7+rke2r1
control-2   Ready    <none>                      4d22h   v1.28.7+rke2r1
control-3   Ready    <none>                      4d22h   v1.28.7+rke2r1

该服务器没有互联网连接。 我在 192.168.1.1:8082 上运行了一个私有注册表,其中包含所需的 docker 映像。 在 control-1 上我安装了 docker。 我的/etc/docker/daemon.json:

{"insecure-registries":["192.168.1.1:8082"]}

我登录注册表:

sudo docker login 192.168.1.1:8082

我创建的凭据保存在 dockerconfig.json 下。

在 control-1 上,我可以使用以下命令成功拉取所需的图像:

sudo docker pull 192.168.1.1:8082/pilot:1.22.0
sudo docker images
REPOSITORY                                              TAG       IMAGE ID       CREATED         SIZE
192.168.1.1:8082/pilot                                  1.22.0    99ceea62d078   13 days ago     200MB

我在一台有互联网连接的机器上下载了文件 istio-1.22.0-linux-.tar.gz 并将其放在 control-1 上。 然后我用以下方法提取它:

tar -xvf istio-1.22.0-linux-amd64.tar.gz

我将 istioctl 添加到路径中:

cd istio-1.22.0
export PATH=$PWD/bin:$PATH

我创建了一个秘密:

kubectl create namespace istio-system
kubectl create secret generic regcred \
    --from-file=.dockerconfigjson=/home/ubuntu/istio-1.22.0/dockerconfig.json \
    --type=kubernetes.io/dockerconfigjson --namespace=istio-system

我编辑samples/operator/default-install.yaml:

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  namespace: istio-system
  name: istio-operator
spec:
  profile: default
  hub: 192.168.1.1:8082
  values:
    global:
      imagePullSecrets:
        - regcred

然后我尝试安装 istio:

istioctl install -f samples/operator/default-install.yaml

但是我陷入了上面提到的错误。

kubernetes istio istio-operator
1个回答
0
投票

请将以下图像复制到 istio 使用的工作节点中

docker.io/istio/proxyv2:1.22.0
docker.io/istio/pilot:1.22.0

一旦图像在工作节点中可用。 请将“ImagePullPolicy”配置更新为“IfNotPresent”,该配置将传递给 istio 操作员。这是一个网格配置选项。 有关自定义安装的更多详细信息,请参阅其文档。 如果镜像已经可用,此安装配置选项不会尝试提取镜像。

© www.soinside.com 2019 - 2024. All rights reserved.