跳至内容

事件与 Istio 服务网格集成

标志名称: istio

阶段: Beta,默认情况下禁用

跟踪问题: #6596

概述

管理员可以使用 Istio 与事件一起加密、验证和授权对事件组件的请求。

先决条件

安装

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

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

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

  3. 安装 eventing-istio-controller

    kubectl apply -f https://github.com/knative-extensions/eventing-istio/releases/download/knative-v1.16.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 为事件资源创建 Istio 资源。

istio 的可能值为

  • disabled
    • 禁用事件与 Istio 的集成
  • enabled
    • 启用事件与 Istio 的集成

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

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

我们使用分析和 Cookie 来了解网站流量。有关您使用我们网站的信息将与 Google 共享,用于该目的。 了解更多。