在项目级别安装Istio

时间:2019-03-25 16:57:22

标签: kubernetes openshift istio

是否可以在项目级别安装Istio?我看到的每个Istio安装指南都在群集范围内。但是由于多个部门共享我公司中的同一集群,所以这是不可行的。

2 个答案:

答案 0 :(得分:0)

您的项目有自己的名称空间是可能的。您只需为该名称空间启用istio:

kind: Namespace
apiVersion: v1
metadata:
  name: yourapp
  labels:
    app: yourapp
    istio-injection: enabled

答案 1 :(得分:0)

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

例如,以下命令将创建一些将注入Istio Sidecar的部署(因此是吊舱)。这些吊舱将启用全部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入口资源,但未应用任何默认流量规则): https://istio.io/docs/tasks/traffic-management/ingress/

其余未通过这些方式的流量将不属于Istio Service Mesh管理的流量的一部分。

为了进行测试,您可以轻松地安装默认的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