[zh] improve tencent-cloud-mesh prerequisites (#13761)

Signed-off-by: xin.li <xin.li@daocloud.io>
This commit is contained in:
my-git9 2023-08-24 17:41:00 +08:00 committed by GitHub
parent a529b4143b
commit 6b25bcc3d9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 53 additions and 37 deletions

View File

@ -10,38 +10,45 @@ test: no
## 集群节点上的 Linux 内核模块要求 {#kernel-module-requirements-cluster-nodes} ## 集群节点上的 Linux 内核模块要求 {#kernel-module-requirements-cluster-nodes}
在用 Istio 代理 Sidecar 容器运行应用程序 Pod 的集群节点上使用 iptables 拦截模式时需要加载某些内核模块。Istio 也可以工作在没有 iptables 的 `whitebox` 模式下。如果使用的是这种模式,可以忽略本节内容,因为这种模式不需要任何专用的内核模块。 在用 Istio 代理 Sidecar 容器运行应用程序 Pod 的集群节点上使用 iptables
拦截模式时需要加载某些内核模块。Istio 也可以工作在没有 iptables 的 `whitebox`
模式下。如果使用的是这种模式,可以忽略本节内容,因为这种模式不需要任何专用的内核模块。
具体而言,`istio-init` 容器或 `istio-cni` 守护进程需要这些内核模块,才能在 Pod 中设置 iptables 规则,将任何传入或传出的流量重定向到 istio-proxy 容器中的 Sidecar 代理。尽管在许多平台上这些模块看起来像是自动加载的,但请务必确保满足相应的前提条件,因为我们曾多次接报以下列出的某些专用模块在主机上不可用,或无法通过 iptables 自动加载。例如,这个 [`selinux issue`](https://www.suse.com/support/kb/doc/?id=000020241) 就在讨论 RHEL 中的 selinux 有时会阻止自动加载下述某些内核模块。 具体而言,`istio-init` 容器或 `istio-cni` 守护进程需要这些内核模块,才能在 Pod
中设置 iptables 规则,将任何传入或传出的流量重定向到 istio-proxy 容器中的 Sidecar
代理。尽管在许多平台上这些模块看起来像是自动加载的,但请务必确保满足相应的前提条件,
因为我们曾多次接报以下列出的某些专用模块在主机上不可用,或无法通过 iptables 自动加载。
例如,这个 [`selinux issue`](https://www.suse.com/support/kb/doc/?id=000020241)
就在讨论 RHEL 中的 selinux 有时会阻止自动加载下述某些内核模块。
| 模块 | 备注 | | 模块 | 备注 |
| --- | --- | | --------------------- | ------------------------ |
| `br_netfilter` | | | `br_netfilter` | |
| `ip6table_mangle` | 仅适用于 IPv6 或双栈集群 | | `ip6table_mangle` | 仅适用于 IPv6 或双栈集群 |
| `ip6table_nat` | 仅适用于 IPv6 或双栈集群 | | `ip6table_nat` | 仅适用于 IPv6 或双栈集群 |
| `ip6table_raw` | 仅适用于 IPv6 或双栈集群 | | `ip6table_raw` | 仅适用于 IPv6 或双栈集群 |
| `iptable_mangle` | | | `iptable_mangle` | |
| `iptable_nat` | | | `iptable_nat` | |
| `iptable_raw` | 仅适用于 `DNS` 拦截 | | `iptable_raw` | 仅适用于 `DNS` 拦截 |
| `xt_REDIRECT` | | | `xt_REDIRECT` | |
| `xt_connmark` | 仅适用于 `TPROXY` 拦截模式 | | `xt_connmark` | 仅适用于 `TPROXY` 拦截模式 |
| `xt_conntrack` | | | `xt_conntrack` | |
| `xt_mark` | 仅适用于 `TPROXY` 拦截模式 | | `xt_mark` | 仅适用于 `TPROXY` 拦截模式 |
| `xt_owner` | | | `xt_owner` | |
| `xt_tcpudp` | | | `xt_tcpudp` | |
以下更多模块由上述列出的模块使用,也应该加载到集群节点上: 以下更多模块由上述列出的模块使用,也应该加载到集群节点上:
| 模块 | 备注 | | 模块 | 备注 |
| --- | --- | | -------------------- | --------------------- |
| `bridge` | | | `bridge` | |
| `ip6_tables` | 仅适用于 IPv6 或双栈集群 | | `ip6_tables` | 仅适用于 IPv6 或双栈集群 |
| `ip_tables` | | | `ip_tables` | |
| `nf_conntrack` | | | `nf_conntrack` | |
| `nf_conntrack_ipv4` | | | `nf_conntrack_ipv4` | |
| `nf_conntrack_ipv6` | 仅适用于 IPv6 或双栈集群 | | `nf_conntrack_ipv6` | 仅适用于 IPv6 或双栈集群 |
| `nf_nat` | | | `nf_nat` | |
| `nf_nat_ipv4` | | | `nf_nat_ipv4` | |
| `nf_nat_ipv6` | 仅适用于 IPv6 或双栈集群 | | `nf_nat_ipv6` | 仅适用于 IPv6 或双栈集群 |
| `nf_nat_redirect` | | | `nf_nat_redirect` | |
| `x_tables` | | | `x_tables` | |

View File

@ -10,15 +10,19 @@ test: n/a
## 准备工作 {#prerequisites} ## 准备工作 {#prerequisites}
请参考以下的说明为 Istio 搭建一个 [Tencent Kubernetes Engine](https://cloud.tencent.com/product/tke) 或者 [Elastic Kubernetes Service](https://cloud.tencent.com/product/eks) 集群 请参考以下的说明为 Istio 搭建一个 [Tencent Kubernetes Engine](https://cloud.tencent.com/product/tke)
或者 [Elastic Kubernetes Service](https://cloud.tencent.com/product/eks) 集群
您可以在腾讯云上基于 [Tencent Kubernetes Engine](https://cloud.tencent.com/document/product/457/32189) 或者 [Elastic Kubernetes Service](https://cloud.tencent.com/document/product/457/39813) 部署一个 Kubernetes 集群,这两种集群都完全支持 Istio 的安装与部署。 您可以在腾讯云上基于 [Tencent Kubernetes Engine](https://cloud.tencent.com/document/product/457/32189)
或者 [Elastic Kubernetes Service](https://cloud.tencent.com/document/product/457/39813)
部署一个 Kubernetes 集群,这两种集群都完全支持 Istio 的安装与部署。
{{< image link="./tke.png" caption="创建集群" >}} {{< image link="./tke.png" caption="创建集群" >}}
## 步骤 {#procedure} ## 步骤 {#procedure}
在创建了一个 TKE 或者 EKS 集群之后,您能够在 [Tencent Cloud Mesh](https://cloud.tencent.com/product/tcm) 中快速的部署和使用 Istio。 在创建了一个 TKE 或者 EKS 集群之后,您能够在 [Tencent Cloud Mesh](https://cloud.tencent.com/product/tcm)
中快速的部署和使用 Istio。
{{< image link="./tcm.png" caption="创建腾讯服务网格" >}} {{< image link="./tcm.png" caption="创建腾讯服务网格" >}}
@ -39,7 +43,8 @@ test: n/a
1. 选择服务网格的部署模式:**独立网格**或者是**托管网格**。 1. 选择服务网格的部署模式:**独立网格**或者是**托管网格**。
{{< tip >}} {{< tip >}}
Tencent Cloud Mesh 支持 **独立网格模式**Istiod 在用户集群中运行并由用户自身维护;同时也支持 **托管网格模式**Istiod 在托管面中运行并由 Tencent Cloud Mesh 团队维护。 Tencent Cloud Mesh 支持**独立网格模式**Istiod 在用户集群中运行并由用户自身维护;
同时也支持**托管网格模式**Istiod 在托管面中运行并由 Tencent Cloud Mesh 团队维护。
{{< /tip >}} {{< /tip >}}
1. 配置 Egress 的流量规则:`Register Only` 或者是 `Allow Any` 1. 配置 Egress 的流量规则:`Register Only` 或者是 `Allow Any`
@ -48,12 +53,14 @@ test: n/a
1. 选择在指定 Namespaces 下开启 Sidecar 自动注入。 1. 选择在指定 Namespaces 下开启 Sidecar 自动注入。
1. 配置外部请求绕过 Sidecar 直接访问的 IP 地址块,外部请求流量将无法使用 Istio 流量管理、可观测性等特性。默认所有外部请求转发至 Sidecar。 1. 配置外部请求绕过 Sidecar 直接访问的 IP 地址块,外部请求流量将无法使用 Istio
流量管理、可观测性等特性。默认所有外部请求转发至 Sidecar。
1. 选择开启 Sidecar 就绪保障。 1. 选择开启 Sidecar 就绪保障。
{{< tip >}} {{< tip >}}
开启后业务容器将等待 Sidecar 就绪后再启动,将一定程度增加 Pod 启动时长,建议对于业务逻辑中有 Sidecar 功能强依赖的服务开启。 开启后业务容器将等待 Sidecar 就绪后再启动,将一定程度增加 Pod 启动时长,
建议对于业务逻辑中有 Sidecar 功能强依赖的服务开启。
{{< /tip >}} {{< /tip >}}
{{< image link="./ingress-egress.png" caption="配置 Gateway" >}} {{< image link="./ingress-egress.png" caption="配置 Gateway" >}}
@ -65,7 +72,9 @@ test: n/a
1. 配置 MetricsTracingLogging 相关的可观测性的能力。 1. 配置 MetricsTracingLogging 相关的可观测性的能力。
{{< tip >}} {{< tip >}}
除了默认的云监控服务外,您能够选择开启高级外部服务,如 [Prometheus 监控服务](https://cloud.tencent.com/product/tmp) 和 [日志服务](https://cloud.tencent.com/product/cls). 除了默认的云监控服务外,您能够选择开启高级外部服务,如
[Prometheus 监控服务](https://cloud.tencent.com/product/tmp)
和[日志服务](https://cloud.tencent.com/product/cls)。
{{< /tip >}} {{< /tip >}}
在完成这些步骤,并确认配置创建 Istio 后,就可以开始在 Tencent Cloud Mesh 中使用 Istio 了。 在完成这些步骤,并确认配置创建 Istio 后,就可以开始在 Tencent Cloud Mesh 中使用 Istio 了。