[Istio] 使用 istio 控制转发流量
概念 首先介绍几个概念,Ingress 指的是进入到 k8s 集群中的 traffic,比如一个 client 发起的 HTTP 请求,经过层层网络最终到达了 k8s cluster 的外部,那么让不让它进入到 cluster 内部就是 ingress controller 做的事。 Kubernetes 原生提供了自己的 Ingress Controller,此外还有很多第三方的 Ingress Controller,istio 就是其中之一。需要注意的是,本文所有部署都是基于 GKE,其他的云平台可能略有不同。 在 k8s 中安装了 istio 之后,就可以用 istio 来控制所有进入 cluster 的流量。如何安装 istio 不在本文的范围,读者可以参考 istio 官方文档。 安装 istio 完成之后,kubectl get namespace 命令可以看到有个名叫 istio-system 的空间,所有 istio 组件的 pod 都在这个空间中。 然后用如下命令查看 istio ingressgateway $ kubectl -n istio-system get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT istio-ingressgateway LoadBalancer 10.0.23.180 35.222.xxx.xxx 15020:32011/TCP,80:30444/TCP 我们会看到这个名叫 istio-ingressgateway 的 LoadBalancer 它有公网 IP 地址 35.222.xxx.xxx,也就是说任何人都可以 ping 这个地址。 ...