在具有 Pod 安全策略的情况下启用 Istio

如果你启用了限制性 Pod 安全策略(Pod Security Policy),由于 Istio 需要某些权限才能自行安装和管理 pod 基础设施,因此 Istio 可能无法正常运行。在本文中,我们将配置一个为 Istio 启用了 PSP 的集群,并设置 Istio CNI 插件。

Istio CNI 插件不再要求每个应用 pod 具有特权 NET_ADMIN 容器。如需更多信息,请参阅 Istio CNI 插件文档。请注意,https://istio.io/about/feature-stages/[Istio CNI 插件处于 alpha 阶段]。

先决条件:
  • 集群必须是 RKE Kubernetes 集群。

  • 必须使用默认 PodSecurityPolicy 创建集群。

要在使用 Rancher UI 创建 Kubernetes 集群时启用 Pod 安全策略支持,请转到高级选项。在 Pod 安全策略支持中,单击启用,然后选择一个默认的 pod 安全策略。

1. 将 PodSecurityPolicy 设置为不受限制

不受限制的 PSP 支持安装 Istio。

在安装 Istio 的项目或计划安装 Istio 的项目中,将 PSP 设置为 unrestricted

  1. 点击 ☰ > 集群管理

  2. 选择你创建的集群,并点击 Explore

  3. 单击集群  项目/命名空间

  4. 找到项目: System,然后选择 ⋮ > 编辑配置

  5. 将 Pod 安全策略选项更改为不受限制,然后单击保存

2. 启用 CNI

通过 Apps 安装或升级 Istio 时:

  1. 单击组件

  2. 选中启用 CNI旁边的框。

  3. 完成 Istio 的安装或升级。

你也可以通过编辑 values.yaml 来启用 CNI:

istio_cni.enabled: true

在集群中启用 CNI 后,Istio 应该能成功安装。

3. 验证 CNI 是否正常工作

通过部署示例应用或部署你自己的应用,来验证 CNI 是否正常工作。