启用Istio与Pod安全策略

如果您启用了限制性的 Pod 安全策略,那么 Istio 可能无法正常工作,因为它需要一定的权限才能安装自己和管理 pod 基础设施。在本节中,我们将为 Istio 安装配置一个启用 PSP 的集群,同时设置 Istio CNI 插件。

Istio CNI 插件消除了每个应用 pod 拥有特权的NET_ADMIN容器的需求。更多信息,请参阅Istio CNI 插件文档。请注意,Istio CNI 插件是 alpha

步骤根据 Rancher 版本不同而不同。

v2.5.4+

前提条件

  • 该集群必须是一个 RKE Kubernetes 集群。
  • 集群必须是用默认的 PodSecurityPolicy 创建的。

要在 Rancher UI 中创建 Kubernetes 集群时启用 pod 安全策略支持,请转到 Advanced Options。在 Pod Security Policy Supportsection 中,单击 Enabled.然后选择一个默认的 pod 安全策略。

步骤 1:将 PodSecurityPolicy 设置为非限制性

只有不受限制的 Pod 安全策略允许项目安装 Istio。

在安装了 Istio 的项目或你打算安装 Istio 的项目中,将 PSP 设置为unrestricted,就可以将 Pod 安全策略修改为不受限制。

  1. 集群管理器的集群视图中,选择 项目/命名空间
  2. 找到项目 > 系统,并选择 ⋮ > 编辑
  3. 将 Pod 安全策略 选项改为unrestricted,然后单击保存

步骤 2:启用 CNI

通过应用程序和市场安装或升级 Istio 时,您需要执行以下步骤启用 CNI

  1. 单击组件
  2. 勾选启用 CNI旁边的方框。
  3. 完成安装或升级 Istio。

除了可以通过 Rancher UI 启用 CNI 外,您也可以通过编辑values.yaml来启用 CNI,在values.yaml文件中添加以下代码即可。

  1. istio_cni.enabled: true

Copy

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

3. 验证 CNI 是否正常工作

通过部署一个示例应用程序或部署一个您自己的应用程序来验证 CNI 是否工作。

v2.5.3

前提条件

  • 该集群必须是一个 RKE Kubernetes 集群。
  • 集群必须是用默认的 PodSecurityPolicy 创建的。

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

步骤 1:配置系统项目策略

您需要将系统项目策略修改为不受限,以允许项目安装 Istio。

  1. 集群管理器的集群视图中,选择 项目/命名空间
  2. 找到项目 > 系统,并选择 ⋮ > 编辑
  3. 将 Pod 安全策略选项改为不受限制,然后单击 “保存”。

2. 在系统项目中安装 CNI 插件。

  1. 仪表盘的主菜单中,选择项目/命名空间
  2. 选择项目 > 系统项目。
  3. 在导航栏中选择工具 > 目录
  4. 添加目录,内容如下。
    1. 名称:istio-cni
    2. 目录网址:https://github.com/istio/cni
    3. 分支:匹配当前版本的分支,例如:release-1.4
  5. 从主菜单中选择 Apps
  6. 单击 “启动 “并选择 istio-cni
  7. 更新命名空间为 “kube-system”
  8. 在答案部分,单击 “编辑为 YAML”,粘贴以下内容,然后单击启动。
  1. logLevel: "info"
  2. excludeNamespaces:
  3. - "istio-system"
  4. - "kube-system"

Copy

3. 安装 Istio

按照主要说明,添加自定义答案。istio_cni.enabled: true

当 Istio 安装完成后,在系统项目中的 Apps 页面应该会显示 istio 和istio-cni应用程序部署成功。Sidecar 注入现在可以使用了。