事件与 Istio 服务网格集成¶
标志名称: istio
阶段: Beta,默认情况下禁用
跟踪问题: #6596
概述¶
管理员可以使用 Istio 与事件一起加密、验证和授权对事件组件的请求。
先决条件¶
- 要启用 Istio 集成,您需要按照 Istio 安装指南 安装 Istio。
安装¶
某些事件组件使用 ExternalName
类型的服务,对于此类服务,需要手动配置 Istio 以使用双向 TLS 连接到此类服务。
事件发布了一个控制器,该控制器会自动配置 Istio,以便任何属于 Istio 网格的 Pod 都可以与也属于同一个 Istio 网格的事件组件通信。
- 创建事件命名空间并启用 Istio 注入
kubectl create namespace knative-eventing --dry-run=client -oyaml | kubectl apply -f - kubectl label namespace knative-eventing istio-injection=enabled
-
安装
eventing-istio-controller
kubectl apply -f https://github.com/knative-extensions/eventing-istio/releases/download/knative-v1.16.0/eventing-istio.yaml
- 验证
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"