概述
默认情况下,服务网格内的sidecar可以访问到网格内的所有服务,也可以被网格内所有其他服务访问到。Sidecar资源可以实现对网格内的sidecar更新粒度的配置,包括开放的端口、协议,可以访问的服务等。
Sidecar资源创建
- 登录服务网格控制台,选择流量管理中心 > Sidecar资源菜单,选择相应的命名空间。
- 选择使用YAML创建,目前提供了配置模板,可以基于模板修改或者自己编辑配置。
Sidecar资源修改
- 登录服务网格控制台,选择流量管理中心 -> Sidecar资源菜单,选择相应的命名空间。
- 在Sidecar资源列表右侧操作栏可以看到编辑按钮,可以对已创建的Sidecar资源进行编辑修改。
Sidecar资源删除
- 登录服务网格控制台,选择流量管理中心 > Sidecar资源菜单,选择相应的命名空间。
- 在Sidecar资源列表右侧操作栏可以看到删除按钮,可以删除已创建的Sidecar资源。
下面的例子在prod-us1命名空间下定义了名为default的Sidecar配置,对于被选中的sidecar,只允许访问prod-us1、prod-apis 和istio-system命名空间下的服务。
apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
name: default
namespace: prod-us1
spec:
egress:
- hosts:
- "prod-us1/*"
- "prod-apis/*"
- "istio-system/*"
Sidecar配置说明如下:
字段 | 类型 | 必选 | 说明 |
---|---|---|---|
workloadSelector | WorkloadSelector | No | Sidecar资源应用到pod的选择器。 |
ingress | []IstioIngressListener | No | sidecar入流量配置。 |
egress | []IstioEgressListener | No | sidecar出流量配置。 |
outboundTrafficPolicy | OutboundTrafficPolicy | No | 外部访问策略,可选项: 1,REGISTRY_ONLY:只允许访问网格注册中心的服务。 2,ALLOW_ANY:允许访问所有服务。 |
IstioIngressListener
定义sidecar入流量监听器的配置,具体配置项如下:
字段 | 类型 | 必选 | 说明 |
---|---|---|---|
port | Port | Yes | 监听器端口配置。 |
bind | string | No | 监听器绑定的ip。 |
captureMode | CaptureMode | No | 监听器流量拦截策略。 |
defaultEndpoint | string | Yes | 流量转发的默认目标地址,可以是ip端口或者Unix domain socket。 |
tls | ServerTLSSettings | No | 外部请求访问的TLS卸载相关的配置。 |
IstioEgressListener
定义了出流量的监听器配置,具体说明如下:
字段 | 类型 | 必选 | 说明 |
---|---|---|---|
port | Port | No | 监听器端口。 |
bind | string | No | 监听器地址,可以是IP或者unix domain socket。 |
captureMode | CaptureMode | No | 流量拦截策略。 |
hosts | string | Yes | 当前sidecar可以访问的外部服务列表,采用namespace/dnsName格式。 |