对K8s服务驻留在哪里以及Istio的Envoy代理居住在哪里感到困惑?

时间:2019-11-22 13:19:12

标签: kubernetes istio envoyproxy

我对k8的常规服务和istio的边车在哪里感到困惑。

我最近了解了istio及其在吊舱内的“ sidecar / envoy / proxy”。我有信心说istio的边车位于吊舱内。但是k8s常规服务驻留在哪里,以及首先从应用程序,服务或代理/边车联系到谁?

在我脑海中的图表如下所示: The diagram in my mind is something like

2 个答案:

答案 0 :(得分:1)

Services是内部抽象REST对象,例如:loadbalancer,clusterip,nodeport等。它们的定义存储在Kubernetes API服务器(etcd)中。

服务通常由Kube-proxy实现,并且还通过匹配选择器和标签分配给端点。

每个节点都在运行由etcd管理的kube-proxy实例。服务通常在iptables中存储为规则集。


在服务网格中使用的Istio服务位于Istio控制平面中,可以用作网关,出口,入口,虚拟服务等对象。

istio控制平面还包括: 城堡:用于密钥和证书管理 试点:向代理分发身份验证策略和安全的命名信息 混音器:管理授权和审核

正如您提到的,sidecar代理(特使代理)被注入到应用程序容器旁边的pod中。

这是来自istio documentation的图表。 Istio Security Architecture

答案 1 :(得分:0)

K8s服务是iptable规则。您可以通过将其插入节点并运行来获得它们:

sudo iptables-save | grep YOUR_SERVICE_NAME

Istio sidecar容器是Envoy代理。我不知道您想怎么做,但是您可以:

  • 访问Envoy代理容器:

kubectl exec -it YOUR_POD_NAME -c istio-proxy sh

  • 获取日志:

kubectl logs YOUR_POD_NAME -c istio-proxy

等,等等。