FAQ

  • 安装Istio后如何打开/关闭mTLS加密?

    开启/关闭mTLS的最直接方式是完整卸载并重新安装Istio。

    如果你是高级用户并了解其中的风险,也可以这样操作:

    1. kubectl edit configmap -n istio-system istio

    通过注释掉或取消注释authPolicy: MUTUAL_TLS来切换mTLS,然后执行

    1. kubectl delete pods -n istio-system -l istio=pilot

    来重启Pilot,数秒钟后(取决于设置的*RefreshDelay)Envoy代理将会从Pilot感知到变化;期间服务可能不可用。

    我们正开发一个更平滑的解决方案。

  • 使用Istio Auth的服务是否可以不经过Istio允许而与另一个服务通信?

    目前不支持,但将来很快会支持。

  • 是否支持同一个集群中的部分服务使用Istio Auth,而其他服务不使用?

    目前不支持,但将来很快会支持。

  • 如何在Istio Auth打开的情况下,使用Kubernetes的存活和状态相关的服务健康检查?

    如果Istio Auth打开,Kubelet中的HTTP和TCP健康检查将无法工作,因为它们没有Istio Auth发行的证书。解决方案就是,使用liveness command做健康检查,比如可以在服务pod中安装curl,并在pod中使用curl访问自身。Istio团队正在积极地开发解决方案。

    readinessProbe的示例:

    1. livenessProbe:
    2. exec:
    3. command:
    4. - curl
    5. - -f
    6. - http://localhost:8080/healthz # Replace port and URI by your actual health check
    7. initialDelaySeconds: 10
    8. periodSeconds: 5
  • Auth打开时可以访问Kubernetes API服务器吗?

    Kubernetes API服务器不支持交互TLS认证。因此,当Istio的mTLS认证打开时,Istio sidecar pod现阶段并不能与Kubernetes API服务器通信。