安装常见问题

我应该使用哪种方式安装 Istio ?

除了简单地入门评估版安装之外,您还可以使用几种不同的方式安装 Istio 。您应该根据您的生产要求来选择安装方式。

下面列出了每种安装方式的优缺点:

  1. 使用 istioctl 安装

    具有高安全性的简单、合格的安装和管理方法。这是社区推荐的安装方法。

    优点:

    • 完整的配置和运行状态的验证。
    • 使用提供了扩展的配置、自定义选项的 IstioOperator API。
    • 不需要集群内的高权限 Pod 。通过执行 istioctl 命令修改。

    缺点:

    • 需要维护多个 Istio minor 版本的二进制文件。
    • istioctl 命令可能根据您的运行环境设置诸如 JWT_POLICY 之类的值,从而能够在不同的 Kubernetes 环境中进行不同的安装。
  2. 使用 Istio Operator 安装

    没有 istioctl 二进制文件的简单安安装方式。这是推荐的方法。用于简单升级工作,无需考虑运行集群内的高权限 Controller。

    优点:

    • 具有与 istioctl install 相同的 API ,但是通过据群众具有高权限的 Controller Pod 通过完全声明的方式进行操作。
    • 使用提供了扩展的配置、自定义选项的 IstioOperator API。
    • 不需要管理多个 istioctl 的二进制文件。

    缺点:

    • 在集群内运行高权限的 Controller 会带来安全问题。
  3. 使用 istioctl manifest generate 安装

    生成 Kubernetes 的配置清单,并通过 kubectl apply --prune 应用到集群中。该方法适用于需要严格审查或者增加配置清单的情况。

    优点:

    • Chart 是由与 istioctl install 和 Operator 里使用的相同的 IstioOperator API 生成的。
    • 使用提供了扩展的配置、自定义选项的 IstioOperator API。

    缺点:

    • 一些在 istioctl install 和 Operator 中会进行的检查将不会执行。
    • istioctl install 相比,UX 的精简程度较低。
    • 错误报告没有 istioctl install 的错误报告详细、全面。
  4. 使用 Helm (alpha) 安装

    使用 Helm 的 Chart 可以通过 Helm 的工作流程轻松的完成,并在升级的过程中自动清理资源。

    优点:

    • 使用熟悉、常用的行业标准工具。
    • Helm 原生的版本、升级管理。

    缺点:

    • 相比于 istioctl install 和 Operator 相比,检查较少。
    • 一些高权限任务需要更多步骤,并且具有更高的复杂性。

这些安装方式的安装向导在 Istio 安装页中。

Kubernetes - 我该如何调试 sidecar 自动注入的问题?

为了支持 sidecar 自动注入,请确保你的集群符合此前提条件。如果你的微服务是部署在 kube-systemkube-public 或者 istio-system 这些命名空间,那么就会被免除 sidecar 自动注入。请使用其他命名空间替代。

Kubernetes - 我可以将现有的 Istio 0.1.x 迁移至 0.2.x 吗?

不支持从 Istio 0.1.x 升级至 0.2.x。你必须卸载 Istio 0.1(包括 pod 及其 Istio sidecar),并重新安装 Istio 0.2。

Consul - 我的应用没有工作,怎么进行问题排查?

请确保所有需要的容器正常运行:etcdistio-apiserverconsulregistratorpilot。如果以上某个容器未正常运行,你可以通过 docker ps -a 命令找到容器 ID {containerID} 然后使用 docker logs {containerID} 命令查看日志。

Consul - 怎么取消 kubectl 对上下文的修改?

执行命令 kubectl use-context istio 后,你的 kubectl 会切换至 Istio 上下文。 你可以使用 kubectl config get-contexts 获取上下文列表, 并通过 kubectl config use-context {desired-context} 切换至你想要的上下文。