故障现象某项目在使用PaaS平台网关服务时创建路由失败istiod不断重启无法就绪。故障排查过程观察istiod的日志发现如下报错panic: runtime error: index out of range[0]with length0goroutine355[running]: istio.io/istio/pilot/pkg/serviceregistry/kube.ConvertService({{{0x0, 0x0},{0x0, 0x0}},{{0xc000674e70, 0x23},{0x0, 0x0},{0xc0028e76e8, 0x8},...},...},...)istio.io/istio/pilot/pkg/serviceregistry/kube/conversion.go:111 0xe19 istio.io/istio/pilot/pkg/serviceregistry/kube/controller.(*Controller).onServiceEvent(0xc000cb18c0,{0x32ee680, 0xc003617c38}, 0x0)istio.io/istio/pilot/pkg/serviceregistry/kube/controller/controller.go:520 0x245 istio.io/istio/pilot/pkg/serviceregistry/kube/controller.(*Controller).syncServices(0xc000cb18c0)istio.io/istio/pilot/pkg/serviceregistry/kube/controller/controller.go:805 0x138 istio.io/istio/pilot/pkg/serviceregistry/kube/controller.(*Controller).SyncAll(0xc000cb18c0)istio.io/istio/pilot/pkg/serviceregistry/kube/controller/controller.go:763 0x114 istio.io/istio/pilot/pkg/serviceregistry/kube/controller.(*Controller).Run(0xc000cb18c0, 0x0)istio.io/istio/pilot/pkg/serviceregistry/kube/controller/controller.go:842 0x19c created by istio.io/istio/pilot/pkg/serviceregistry/aggregate.(*Controller).Run istio.io/istio/pilot/pkg/serviceregistry/aggregate/controller.go:322 0x5d通过以上istiod程序崩溃报错初步看是因为获取service地址时出现问题导致istiod识别错误service信息崩溃。针对以上问题进行搜索说是因为service未配置端口导致的搜索了下整个集群的svc服务发现其中一个服务未设置端口如下相关命令如下kubectl get svc --all-namespaces-ogo-template{{range .items}}{{if not .spec.ports}}{{.metadata.namespace}}/{{.metadata.name}}{{\n}}{{end}}{{end}}通过这个svc地址到istio网关的vs路由中并没有查找到代理这个无端口服务百思不得其解。然后根据崩溃日志搜索istio相关代码发现并不是通过istio代理的svc地址才会进行服务发现而是默认自动获取k8s集群中所有svc地址当发现到集群中这个无端口的svc时就触发了panic崩溃。istiod控制器watcher所定义资源:自动注册集群下所有service服务处理结果删除这个无端口的svc地址重启istiod恢复。