Service的端口名称是否符合istio规范
问题描述
Service端口名称必须包含指定的协议和前缀,按以下格式命名:
name:
其中,
http-service0”和“name: tcp”是合法的端口名;而“name: httpforecast”是非法的端口名。
如果未按照以上格式命名,则“Service的端口名称是否符合istio规范”检查结果会失败。
修复指导
步骤 1 登录CCE控制台。
步骤 2 在左侧导航栏选择“资源管理 > 网络管理”,在“Service”页签中按照集群名称和命名空间搜索服务,单击对应服务后的“编辑YAML”,查看Service协议,根据支持协议,修改协议,在服务名称前加协议类型,如下图。
步骤 3单击“确定”。
Service的选择器中是否配置了version标签
问题描述
Service的选择器(spec.selector)中不能包含version标签。如果包含,则报此异常。
修复指导
步骤 1 登录CCE控制台。
步骤 2 在左侧导航栏选择“资源管理 > 网络管理”,在“Service”页签中按照集群名称和命名空间搜索服务,单击对应服务后的“编辑YAML”,查看Service的选择器(spec.selector),删除已配置的version标签。
Service是否配置了app标签,值是否正确
问题描述
Service的标签(metadata.labels)中,需要配置app标签,并和关联的Deployment中(spec.template.metadata.labels)Pod的app标签一致。如果未配置或者值不一致,会报此异常。
说明app标签在流量监控中用于流量的跟踪。
修复指导
步骤 1 登录CCE控制台。
步骤 2 在左侧导航栏选择“工作负载 > 无状态负载 Deployment”,单击对应负载后的“更多 > 编辑YAML”,查看Deployment中Pod的app标签(spec.template.metadata.labels)。
步骤 3 在左侧导航栏选择“资源管理 > 网络管理”,单击对应服务后的“编辑YAML”,查看Service的app标签(metadata.labels)。
步骤 4 修改Service的app标签与Pod的app标签值一致。
服务是否配置了默认版本的服务路由,路由配置是否正确
问题描述
Istio在VirtualService和DestinationRule中定义了服务的流量路由规则,所以需要为每个服务配置VirtualService和DestinationRule,需要满足以下的规则:
- VirtualService中必须配置了Service的所有端口。
- VirtualService中的协议类型必须和Service中端口协议类型一致。
- VirtualService和DestinationRule中必须配置了默认的服务版本。
说明如果检查结果发生改变,可能Service的端口号或端口名称被修改。
修复指导
步骤 1 登录ASM控制台,选择服务所在网格,单击左侧导航中的“网格配置”,选择“istio资源管理”页签,在搜索框中选择“istio资源:virtualservices”及服务所属命名空间。
步骤 2 确保VirtualService中必须配置了Service的所有端口。
步骤 3 确保VirtualService中的协议类型必须和Service中端口协议类型一致。