启用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 安全策略修改为不受限制。
- 从集群管理器的集群视图中,选择 项目/命名空间。
- 找到项目 > 系统,并选择 ⋮ > 编辑。
- 将 Pod 安全策略 选项改为
unrestricted
,然后单击保存。
#
步骤 2:启用 CNI通过应用程序和市场安装或升级 Istio 时,您需要执行以下步骤启用 CNI
- 单击组件。
- 勾选启用 CNI旁边的方框。
- 完成安装或升级 Istio。
除了可以通过 Rancher UI 启用 CNI 外,您也可以通过编辑values.yaml
来启用 CNI,在values.yaml
文件中添加以下代码即可。
Istio 应该在集群中启用 CNI 后成功安装。
#
3. 验证 CNI 是否正常工作通过部署一个示例应用程序或部署一个您自己的应用程序来验证 CNI 是否工作。
#
v2.5.3#
前提条件- 该集群必须是一个 RKE Kubernetes 集群。
- 集群必须是用默认的 PodSecurityPolicy 创建的。
要在 Rancher UI 中创建 Kubernetes 集群时启用 pod 安全策略支持,请转到 高级选项在 Pod 安全策略支持部分,单击 启用然后选择默认的 pod 安全策略。
#
步骤 1:配置系统项目策略您需要将系统项目策略修改为不受限,以允许项目安装 Istio。
- 从集群管理器的集群视图中,选择 项目/命名空间。
- 找到项目 > 系统,并选择 ⋮ > 编辑。
- 将 Pod 安全策略选项改为不受限制,然后单击 "保存"。
#
2. 在系统项目中安装 CNI 插件。- 从仪表盘的主菜单中,选择项目/命名空间。
- 选择项目 > 系统项目。
- 在导航栏中选择工具 > 目录。
- 添加目录,内容如下。
- 名称:istio-cni
- 目录网址:https://github.com/istio/cni
- 分支:匹配当前版本的分支,例如:
release-1.4
。
- 从主菜单中选择 Apps。
- 单击 "启动 "并选择 istio-cni
- 更新命名空间为 "kube-system"
- 在答案部分,单击 "编辑为 YAML",粘贴以下内容,然后单击启动。
#
3. 安装 Istio按照主要说明,添加自定义答案。istio_cni.enabled: true
。
当 Istio 安装完成后,在系统项目中的 Apps 页面应该会显示 istio 和istio-cni
应用程序部署成功。Sidecar 注入现在可以使用了。