istio: when VirtualService Status Error,istiod can not start
istio version: 1.18.3 kubernetes:1.18.10
Bug description when VirtualService config error, istiod can not started
istiod error log:
{"level":"error","time":"2021-02-23T06:40:18.954868Z","scope":"klog","msg":"k8s.io/client-go@v0.19.3/tools/cache/reflector.go:156: Failed to watch *v1alpha3.VirtualService: failed to list *v1alpha3.VirtualService: v1alpha3.VirtualServiceList.Items: []v1alpha3.VirtualService: v1alpha3.VirtualService.v1alpha3.VirtualService.Status: unmarshalerDecoder: unknown value \"Error\" for enum istio.analysis.v1alpha1.AnalysisMessageBase_Level, error found in #10 byte of ...|l+v1\\\"\"}]}},{\"apiVer|..., bigger context ...|\"map-nginx.project-1925.svc.cluster.local+v1\\\"\"}]}},{\"apiVersion\":\"networking.istio.io/v1alpha3\",\"ki|...[]"}
error VirtualService config
spec:
exportTo:
- .
gateways:
- gateway-122-71
hosts:
- nginx-map.gw-wso2t-sy-in.earth.xcloud.lenovo.com
http:
- match:
- uri:
prefix: /
rewrite:
uri: /
route:
- destination:
host: map-nginx.project-1925.svc.cluster.local
port:
number: 80
subset: v1
weight: 100
status:
validationMessages:
- code: IST0101
documentation_url: https://istio.io/docs/reference/config/analysis/ist0101/?ref=status-controller
level: Error
message: 'Referenced host+subset in destinationrule not found: "map-nginx.project-1925.svc.cluster.local+v1"'
[ ] Docs [ ] Installation [ ] Networking [ ] Performance and Scalability [ ] Extensions and Telemetry [ ] Security [X] Test and Release [ ] User Experience [ ] Developer Infrastructure [ ] Upgrade
Expected behavior
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 20 (15 by maintainers)
I am test in istio 1.6.8,1.6.13 1.7.4 ,1.7.6,1.8.3
public-system(the namespace publish service to outward) has gateway, virtualservice(exportTo: .)
project-1925(the namespace publish service to namespace`s service) has service, deploy, destinationrule, virtualservice(exportTo: .)
In <=1.7.4 public-system`s virtualservice has under error, but istod can restart
in 1.7.6 public-system`s virtualservice no error
upgrade from 1.7.4 to 1.8.3, istiod(1.8.3) canot not start
upgrade from 1.7.4 to 1.7.6, the public-system`s virtualservice error remain, but istiod(1.7.6) can started, and service can be connected.
upgrade from 1.7.4 to 1.7.6, then upgrade from 1.7.6 to 1.8.3, the public-system`s virtualservice error remain, but istiod(1.8.3) can not started,
install 1.7.6, then upgrade upgrade from 1.7.6 to 1.8.3 the public-system`s virtualservice no error, istiod(1.8.3) can started
I think This issues has two bug:
vs in public-system
To manually put garbage into status, first install Istio with WITHOUT
values.global.istiod.enableAnalysis=true
and WITHOUTvalues.pilot.env.PILOT_ENABLE_STATUS=true
. ThenWith master and daily builds, confirmed it logs