跳到内容

Istio 服务网格的事件集成

标志名称: istio

阶段:Beta,默认禁用

跟踪问题: #6596

概述

管理员可以使用 Istio 与 Eventing 集成,以加密、认证和授权对 Eventing 组件的请求。

先决条件

安装

一些 Eventing 组件使用 ExternalName 类型的服务,对于此类服务,需要手动配置 Istio 以使用双向 TLS 连接到这些服务。

Eventing 发布了一个控制器,该控制器会自动配置 Istio,以便属于 Istio 网格的任何 Pod 都可以与同属于该 Istio 网格的 Eventing 组件进行通信。

  1. 创建 Eventing 命名空间并启用 Istio 注入
    kubectl create namespace knative-eventing --dry-run=client -oyaml | kubectl apply -f -
    kubectl label namespace knative-eventing istio-injection=enabled
    
  2. 遵循 Eventing 安装

  3. 安装 eventing-istio-controller

    kubectl apply -f https://github.com/knative-extensions/eventing-istio/releases/download/knative-v1.21.0/eventing-istio.yaml
    

  4. 验证 eventing-istio-controller 已就绪
    kubectl get deployment -n knative-eventing
    
    示例输出
    NAME                        ...   READY
    eventing-istio-controller   ...   True 
    # other deployments omitted ...
    

启用 Istio 集成

istio 功能标志是一个枚举配置,它配置 eventing-istio-controller 为 Eventing 资源创建 Istio 资源。

istio 的可能值为

  • 禁用
    • 禁用 Eventing 与 Istio 的集成
  • 启用
    • 启用 Eventing 与 Istio 的集成

例如,要启用 istio 集成,config-features ConfigMap 将如下所示

apiVersion: v1
kind: ConfigMap
metadata:
  name: config-features
  namespace: knative-eventing
data:
  istio: "enabled"

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。