【问题标题】:Installing Istio on a project-level在项目级别安装 Istio
【发布时间】:2019-08-15 23:52:32
【问题描述】:

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

【问题讨论】:

  • 你说的没有任何意义。所以多个部门可以访问一个集群,你想通过在项目级别安装 Istio 来解决这个问题,(可能)更多的用户可以访问?此外,这就是存在 RBAC 规则的原因。
  • 什么?据我了解,在 OpenShift 中,多个项目共享同一个集群。感谢 -1。
  • 好的。让我们假设你可以做到这一点。现在您已经在项目级别安装了 Istio。在您的项目中,20% 的用户应该可以访问集群,但其余 80% 不应该(例如),或者从您的 k8s 用户中,20% 应该可以访问 Istio,而其余 80% 不应该。你如何解决这个问题?你可以说我只是不让他们访问集群。然后不要从一开始就给他们。对我来说仍然没有意义。您需要使用 RBAC。

标签: kubernetes openshift istio


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    但是,以下命令不会注入 Istio sidecar,因此,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 管理的流量。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-15
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-13
      • 2021-09-25
      相关资源
      最近更新 更多