安装Service Mesh(Istio)在dockers desktop的问题

在通过手动安装(Releases · istio/istio)完成istioctl工具后,通过以下命令安装Istio

XML 复制代码
istioctl install --set profile=demo -y

在通过dockers desktop安装过程中总是遇到奇怪的网络下载问题,如:

XML 复制代码
✔ 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 "docker.io/istio/pilot:1.31.0": ErrImagePull: failed to pull and unpack image "docker.io/istio/pilot:1.31.0": failed to resolve reference "docker.io/istio/pilot:1.31.0": unexpected status from HEAD request to http://registry-mirror:1273/v2/istio/pilot/manifests/1.31.0?ns=docker.io: 500 Internal Server Error)
✘ Egress gateways encountered an error: failed to wait for resource: resources not ready after 5m0s: context deadline exceeded
  Deployment/istio-system/istio-egressgateway (container failed to start: ContainerCreating: )
✘ 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: )
Error: failed to install manifests: 3 errors occurred:
        * 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 "docker.io/istio/pilot:1.31.0": ErrImagePull: failed to pull and unpack image "docker.io/istio/pilot:1.31.0": failed to resolve reference "docker.io/istio/pilot:1.31.0": unexpected status from HEAD request to http://registry-mirror:1273/v2/istio/pilot/manifests/1.31.0?ns=docker.io: 500 Internal Server Error)
        * failed to wait for resource: resources not ready after 5m0s: context deadline exceeded
  Deployment/istio-system/istio-egressgateway (container failed to start: ContainerCreating: )
        * failed to wait for resource: resources not ready after 5m0s: context deadline exceeded
  Deployment/istio-system/istio-ingressgateway (container failed to start: ContainerCreating: )

这里的解决方案是:

1.打开 Docker Desktop → Settings → Docker Engine ,在 JSON 配置中找到 registry-mirrors 字段,删除或修正无效的地址,只保留如下的镜像地址,然后重启dockers desktop

XML 复制代码
"registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.m.daocloud.io"
  ]

2.手动安装pilot

XML 复制代码
docker pull docker.io/istio/pilot:1.31.0

# 使用本地策略
istioctl install --set profile=demo --set values.global.imagePullPolicy=IfNotPresent -y

这次安装完成后Istio安装成功,但是但是Egress和Ingress网关却失败了,接下来,我们继续安装

3.手动拉取proxy

XML 复制代码
# 拉取proxy代理
docker pull docker.io/istio/proxyv2:1.31.0

# 删除两个网关 Deployment
kubectl delete deployment istio-ingressgateway -n istio-system
kubectl delete deployment istio-egressgateway -n istio-system

最后在重新安装

XML 复制代码
istioctl install --set profile=demo --set values.global.imagePullPolicy=IfNotPresent -y

这样所有的安装都成功了。验证网关 Pod 状态

XML 复制代码
kubectl get pods -n istio-system -w

在这个过程中如果有安装失败的情况,我们先要清理数据

XML 复制代码
# 卸载
istioctl uninstall --purge -y

# 删除命名空间
kubectl delete namespace istio-system

# 清理 webhook
kubectl delete validatingwebhookconfiguration istio-validator-istio-system 2>$null
kubectl delete mutatingwebhookconfiguration istio-sidecar-injector 2>$null
相关推荐
分布式存储与RustFS20 小时前
OpenSearch 的索引快照别只留本地:用 repository-s3 存进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
wzq11_6661 天前
Kubernetes集群——存储管理
云原生·容器·kubernetes
孔令飞1 天前
企业智能化升级:智能体平台设计和实现
云原生·go·ai编程
分布式存储与RustFS2 天前
镜像仓库的层别堆本地盘:用 RustFS 给 Docker Registry 当 S3 后端
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
孙克旭_2 天前
云原生基础之Containerd容器运行时
运维·云原生
分布式存储与RustFS2 天前
RustFS 自建对象存储实战目录:110 篇按场景分类(持续更新)
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
无言听风雨丶3 天前
Kubernetes Service Mesh 与 mTLS 实战:从网络可达走向零信任服务通信
网络·kubernetes·service_mesh
无人生还别怕3 天前
如何搭建docker仓库(轻量级)registry
linux·运维·docker·云原生·容器·registry·openanolisos
分布式存储与RustFS3 天前
Hudi 表想摆脱 HDFS 绑定?用 Spark + Hudi 直接写进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
逐流人3 天前
DevOps 入门实战(一):从 CI/CD 概念到 Jenkins 自动构建部署
运维·云原生·云计算·jenkins·devops