在项目级别安装Istio

问题描述 投票:-1回答:2

是否可以在项目级别安装Istio?我看到的每个Istio安装指南都是集群范围的。但由于多个部门在我公司共享同一个集群,因此无法选择。

kubernetes openshift istio
2个回答
0
投票

Istio安装在一个命名空间中,但不一定适用于所有群集。实际上,Istio仅适用于那些注入了Istio边车的工作负载。

例如,以下命令将创建一些将注入Istio Sidecar的Deployments(以及pod)。这些pod将启用整个Istio功能。

kubectl apply -f <(./bin/istioctl kube-inject -f samples/bookinfo/platform/kube/bookinfo.yaml) -n bookinfo

但是,以下命令不会注入Istio边车,因此,Istio控制平面不会修改它们的行为。

kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml -n bookinfo

为了管理istio服务网格的传入/传出流量,您可以创建Istio网关(网格边缘):https://istio.io/docs/reference/config/networking/v1alpha3/gateway/

也与流量入口有关,Istio有自己的istio-ingressgateway(类似于K8S Ingress Resource但没有应用任何默认流量规则):https://istio.io/docs/tasks/traffic-management/ingress/

其余不通过这些方式的流量将不会成为Istio Service Mesh管理的流量的一部分。

为了测试这一点,你可以轻松安装没有sidecars的默认Istio演示bookinfo(上面的第二个命令)并且看到没有注册遥测并且没有跟踪数据。如果您正在使用Kiali(www.kiali.io),您将看到服务图显示为空并且已断开连接(意味着没有注册遥测)。

Service Graph in Kiali for pods outside of service mesh

此外,您可以公开bookinfo的任何服务并使用它们,而不需要任何Istio交互:

Calling Ratings service where sidecar is not injected


0
投票

如果您的项目有自己的命名空间,则可能。您只需为该命名空间启用istio:

kind: Namespace
apiVersion: v1
metadata:
  name: yourapp
  labels:
    app: yourapp
    istio-injection: enabled
© www.soinside.com 2019 - 2024. All rights reserved.