今天主要針對gRCP在Istio Service Mesh的應用,有碰到的問題跟大家分享
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: example
spec:
hosts:
- example-host
http:
- route:
- destination:
host: example-host
port:
number: 90
一定要設定VirtualService這樣Kubernetes Service才會被納進Istio Service Mesh管理,裡面的host必須是之前有提到Kubernetes CoreDNS能解析的。
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: example
spec:
host: example-host
trafficPolicy:
loadBalancer:
simple: ROUND_ROBIN
因為Pod有可能會Scaling多個,因此需要添加DestinationRule並且設定
trafficPolicy的loadBalancer,這樣VirtualService以及DestinationRule設定好,gRPC Service就可以被完整的納入Istio Service Mesh管理,小提醒Scaling建議使用單數。偶數在loadBalancer的演算法判斷有時候會出現異常。
如果要在Istio Service Mesh中使用gRPC服務一定要同時在Istio設定
DestinationRule以及VirtualService。