安装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 DesktopSettingsDocker 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
相关推荐
AgentMaster2 小时前
数据治理方案对比:开源自建 vs 商业平台 vs 云原生,三条技术路线的取舍与实践
云原生
阿里云云原生2 小时前
云原生可观测性落地:乐檬通过自然语言观测与自动巡检提升运维效能的最佳实践
运维·云原生·starops·云监控2.0
2601_962299242 小时前
云原生时代的技术进阶:从零到精通掌握Kubernetes实战
云原生·kubernetes·学习路径·技术进阶·实战指南
小陈不好吃13 小时前
从单体到微服务:Spring Cloud Gateway 动态路由实战与踩坑记录
微服务·云原生·架构
云祺vinchin16 小时前
桌面云如何高效备份?某科技公司灾备建设实战
云原生·数据安全·数据备份·无代理备份·桌面云
阿里云云原生18 小时前
从 NL2SQL 到自动巡检:乐檬如何打造面向多租户 SaaS 的全链路可观测性体系?
云原生
阿里云云原生18 小时前
Agent 观测与优化开发者摸底报告
云原生·agent
探索云原生20 小时前
Kueue + HAMi vGPU 实战:显存与算力配额管理
docker·ai·云原生·kubernetes·gpu
玉&心1 天前
通过helm在k8s上面一键部署前端和后端代码
云原生·容器·kubernetes·helm