我对k8的常规服务和istio的边车在哪里感到困惑。
我最近了解了istio及其在吊舱内的“ sidecar / envoy / proxy”。我有信心说istio的边车位于吊舱内。但是k8s常规服务驻留在哪里,以及首先从应用程序,服务或代理/边车联系到谁?
在我脑海中的图表如下所示:
答案 0 :(得分:1)
Services是内部抽象REST对象,例如:loadbalancer,clusterip,nodeport等。它们的定义存储在Kubernetes API服务器(etcd)中。
服务通常由Kube-proxy实现,并且还通过匹配选择器和标签分配给端点。
每个节点都在运行由etcd管理的kube-proxy实例。服务通常在iptables中存储为规则集。
在服务网格中使用的Istio服务位于Istio控制平面中,可以用作网关,出口,入口,虚拟服务等对象。
istio控制平面还包括: 城堡:用于密钥和证书管理 试点:向代理分发身份验证策略和安全的命名信息 混音器:管理授权和审核
正如您提到的,sidecar代理(特使代理)被注入到应用程序容器旁边的pod中。
这是来自istio documentation的图表。
答案 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
等,等等。