平台特定先决条件
本文档涵盖了在 Ambient 模式下安装 Istio 的任何特定于平台或环境的先决条件。
平台
Minikube
- 如果您使用 Minikube 以及 Docker 驱动, 必须在
helm install
命令后追加--set cni.cniNetnsDir="/var/run/docker/netns"
, 以便istio-cni
节点代理能够正确管理和捕获节点上的 Pod。
CNI
Cilium
Cilium 目前默认主动删除其他 CNI 插件及其配置, 并且必须配置
cni.exclusive = false
才能正确支持链接。 有关更多详细信息,请参阅 Cilium 文档。由于 Cilium 管理节点身份并在内部允许节点级健康探针到 Pod 的白名单, 在 Cilium CNI 安装下的 Istio Ambient 模式中应用 default-DENY 的
NetworkPolicy
, 将会导致被 Cilium 默认免于NetworkPolicy
执行的kubelet
健康探针被阻塞。这可以通过应用以下
CiliumClusterWideNetworkPolicy
来解决:apiVersion: "cilium.io/v2"
kind: CiliumClusterwideNetworkPolicy
metadata:
name: "allow-ambient-hostprobes"
spec:
description: "Allows SNAT-ed kubelet health check probes into ambient pods"
endpointSelector: {}
ingress:
- fromCIDR:
- "169.254.7.127/32"
请参阅 Issue #49277 和 CiliumClusterWideNetworkPolicy 了解更多详细信息。