zh:sync /setup/getting-started/index.md (#12180)

* zh:sync /setup/getting-started/index.md

* fix lint error about MD036
This commit is contained in:
Michael 2022-11-04 20:02:01 +08:00 committed by GitHub
parent 3a0798ee54
commit 0eea122b9e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 65 additions and 66 deletions

View File

@ -11,6 +11,11 @@ test: yes
owner: istio/wg-environments-maintainers
---
{{< tip >}}
如果您想从 Gateway API 开始使用 Istio
请参阅[后续入门说明](/zh/docs/setup/additional-setup/getting-started/)而不是以下内容。
{{< /tip >}}
本指南帮您快速评估 Istio。
如果您已经熟悉 Istio或对安装其他配置类型或高级[部署模型](/zh/docs/ops/deployment/deployment-models/)感兴趣,
请参阅[我们应该采用哪种 Istio 安装方法?](/zh/about/faq/#install-method-selection) 的 FAQ 页面。
@ -19,8 +24,7 @@ owner: istio/wg-environments-maintainers
且运行着兼容版本的 Kubernetes ({{< supported_kubernetes_versions >}})。
您可以使用任何支持的平台,例如:
[Minikube](https://kubernetes.io/zh/docs/tasks/tools/install-minikube/)
或[特定平台安装说明](/zh/docs/setup/platform-setup/)
章节中指定的其他平台。
或[特定平台安装说明](/zh/docs/setup/platform-setup/)章节中指定的其他平台。
请按照以下步骤开始使用 Istio
@ -41,10 +45,10 @@ owner: istio/wg-environments-maintainers
{{< tip >}}
上面的命令下载最新版本(用数值表示)的 Istio。
您可以给命令行传递变量,用来下载指定的、不同处理器体系的版本。
例如,下载 x86_64 架构的、1.6.8 版本的 Istio 运行:
例如,要为 x86_64 架构下载 Istio {{< istio_full_version >}},请运行:
{{< text bash >}}
$ curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.6.8 TARGET_ARCH=x86_64 sh -
$ curl -L https://istio.io/downloadIstio | ISTIO_VERSION={{< istio_full_version >}} TARGET_ARCH=x86_64 sh -
{{< /text >}}
{{< /tip >}}
@ -58,10 +62,9 @@ owner: istio/wg-environments-maintainers
安装目录包含:
- `samples/` 目录下的示例应用程序
- `bin/` 目录下的 [`istioctl`](/zh/docs/reference/commands/istioctl) 客户端二进制文件
.
- `bin/` 目录下的 [`istioctl`](/zh/docs/reference/commands/istioctl) 客户端二进制文件。
1. 将 `istioctl` 客户端加入搜索路径Linux or macOS:
1. 将 `istioctl` 客户端添加到路径Linux 或 macOS
{{< text bash >}}
$ export PATH=$PWD/bin:$PATH
@ -74,7 +77,7 @@ owner: istio/wg-environments-maintainers
选择它是因为它包含了一组专为测试准备的功能集合,另外还有用于生产或性能测试的配置组合。
{{< warning >}}
如果您的平台有供应商提供的配置组合,比如Openshift则在下面命令中替换掉 `demo` 配置项。更多细节请参阅[平台说明](/zh/docs/setup/platform-setup/)。
如果您的平台有供应商提供的配置组合,比如 Openshift则在下面命令中替换掉 `demo` 配置项。更多细节请参阅[平台说明](/zh/docs/setup/platform-setup/)。
{{< /warning >}}
{{< text bash >}}
@ -95,7 +98,7 @@ owner: istio/wg-environments-maintainers
## 部署示例应用 {#bookinfo}
1. 部署 [`Bookinfo` 示例应用](/zh/docs/examples/bookinfo/):
1. 部署 [`Bookinfo` 示例应用](/zh/docs/examples/bookinfo/)
{{< text bash >}}
$ kubectl apply -f @samples/bookinfo/platform/kube/bookinfo.yaml@
@ -115,7 +118,7 @@ owner: istio/wg-environments-maintainers
deployment.apps/productpage-v1 created
{{< /text >}}
1. 应用很快会启动起来。当每个 Pod 准备就绪时Istio 边车代理将伴随它们一起部署。
1. 应用很快会启动起来。当每个 Pod 准备就绪时Istio 边车将伴随应用一起部署。
{{< text bash >}}
$ kubectl get services
@ -141,14 +144,14 @@ owner: istio/wg-environments-maintainers
{{< /text >}}
{{< tip >}}
在执行下面步骤之前,重新运行上面的命令直到所有的 Pod 达到此状态: 就绪状态READY的值为 `2/2` 、状态STATUS的值为 `Running`
在执行下一步之前,重新运行上面的命令直到所有的 Pod 达到此状态就绪状态READY的值为 `2/2`、状态STATUS的值为 `Running`
基于您平台的不同,这个操作过程可能会花费几分钟的时间。
{{< /tip >}}
1. 确认上面的操作都正确之后,运行下面命令,通过检查返回的页面标题来验证应用是否已在集群中运行,并已提供网页服务:
1. 确认上面的操作都正确之后,运行下面命令,通过检查返回的页面标题来验证应用是否已在集群中运行,并已提供网页服务:
{{< text bash >}}
$ kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -s productpage:9080/productpage | grep -o "<title>.*</title>"
$ kubectl exec "$(kubectl get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>"
<title>Simple Bookstore App</title>
{{< /text >}}
@ -156,7 +159,7 @@ owner: istio/wg-environments-maintainers
此时BookInfo 应用已经部署,但还不能被外界访问。
要开放访问,您需要创建
[Istio 入站网关Ingress Gateway](/zh/docs/concepts/traffic-management/#gateways),
[Istio 入站网关Ingress Gateway](/zh/docs/concepts/traffic-management/#gateways)
它会在网格边缘把一个路径映射到路由。
1. 把应用关联到 Istio 网关:
@ -174,7 +177,7 @@ owner: istio/wg-environments-maintainers
✔ No validation issues found when analyzing namespace: default.
{{< /text >}}
### 确定入站 IP 和端口
### 确定入站 IP 和端口{#determining-the-ingress-ip-and-ports}
按照说明,为访问网关设置两个变量:`INGRESS_HOST` 和 `INGRESS_PORT`
使用标签页,切换到您选用平台的说明:
@ -183,42 +186,36 @@ owner: istio/wg-environments-maintainers
{{< tab name="Minikube" category-value="external-lb" >}}
设置入站端口:
在新的终端窗口中运行此命令以启动一个 Minikube 隧道,将流量发送到 Istio Ingress Gateway。
这将为 `service/istio-ingressgateway` 提供一个外部负载均衡器 `EXTERNAL-IP`
{{< text bash >}}
$ export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
$ export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
$ minikube tunnel
{{< /text >}}
确认端口被成功的赋值给了每一个环境变量:
设置入站主机和端口:
{{< text bash >}}
$ export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
$ export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].port}')
$ export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}')
{{< /text >}}
确保 IP 地址和端口被成功地赋值给了每一个环境变量:
{{< text bash >}}
$ echo "$INGRESS_HOST"
127.0.0.1
{{< /text >}}
{{< text bash >}}
$ echo "$INGRESS_PORT"
32194
80
{{< /text >}}
{{< text bash >}}
$ echo "$SECURE_INGRESS_PORT"
31632
{{< /text >}}
设置入站 IP
{{< text bash >}}
$ export INGRESS_HOST=$(minikube ip)
{{< /text >}}
确认 IP 地址被成功的赋值给了环境变量:
{{< text bash >}}
$ echo "$INGRESS_HOST"
192.168.4.102
{{< /text >}}
在一个新的终端窗口中执行此命令,启动一个 Minikube 隧道,它将把流量发送到您的 Istio 入站网关:
{{< text bash >}}
$ minikube tunnel
443
{{< /text >}}
{{< /tab >}}
@ -234,16 +231,16 @@ istio-ingressgateway LoadBalancer 172.21.109.129 130.211.10.121 80:31380/
{{< /text >}}
设置 `EXTERNAL-IP` 的值之后,
您的环境就有了一个外部的负载均衡,可以用它做入站网关。
您的环境就有了一个外部的负载均衡器,可以将其用作入站网关。
但如果 `EXTERNAL-IP` 的值为 `<none>` (或者一直是 `<pending>` 状态)
则您的环境则没有提供可作为入站流量网关的外部负载均衡。
则您的环境则没有提供可作为入站流量网关的外部负载均衡
在这个情况下您还可以用服务Service的[节点端口](https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/#type-nodeport)访问网关。
依据您的环境,选择相应的说明:
如果您确定您的环境中确实存在外部的负载均衡,请参照下面的说明。
设置入站 IP 地址和端口
设置入站 IP 地址和端口
{{< text bash >}}
$ export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
@ -252,7 +249,7 @@ $ export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingress
{{< /text >}}
{{< warning >}}
在某些环境中,负载均衡可能使用主机名访问,而不是 IP 地址。
在某些环境中,负载均衡可能使用主机名访问,而不是 IP 地址。
在这种情况下,入站流量网关的 `EXTERNAL-IP` 值不是 IP 地址,而是一个主机名,
那上面设置 `INGRESS_HOST` 环境变量的操作会失败。
使用下面命令纠正 `INGRESS_HOST` 的值。
@ -263,7 +260,7 @@ $ export INGRESS_HOST=$(kubectl -n istio-system get service istio-ingressgateway
{{< /warning >}}
按照下面说明:如果您的环境中没有外部负载均衡,那就选择一个节点端口来代替。
按照下面说明:如果您的环境中没有外部负载均衡,那就选择一个节点端口来代替。
设置入站的端口:
@ -278,7 +275,7 @@ _GKE:_
$ export INGRESS_HOST=worker-node-address
{{< /text >}}
您需要创建一个防火墙规则,以允许 TCP 流量发送到 `ingressgateway` 服务端口。
您需要创建防火墙规则,以允许 TCP 流量发送到 `ingressgateway` 服务端口。
运行下面的命令,以允许 HTTP 端口或 HTTPS 端口的流量,或两者的流量都允许。
{{< text bash >}}
@ -299,7 +296,7 @@ _Docker For Desktop:_
$ export INGRESS_HOST=127.0.0.1
{{< /text >}}
_Other environments:_
其他环境:
{{< text bash >}}
$ export INGRESS_HOST=$(kubectl get po -l istio=ingressgateway -n istio-system -o jsonpath='{.items[0].status.hostIP}')
@ -309,13 +306,13 @@ $ export INGRESS_HOST=$(kubectl get po -l istio=ingressgateway -n istio-system -
{{< /tabset >}}
1. 设置环境变量 `GATEWAY_URL`:
1. 设置环境变量 `GATEWAY_URL`
{{< text bash >}}
$ export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT
{{< /text >}}
1. 确保 IP 地址和端口均成功的赋值给了环境变量:
1. 确保 IP 地址和端口均成功地赋值给了环境变量:
{{< text bash >}}
$ echo "$GATEWAY_URL"
@ -342,7 +339,7 @@ Istio 和[几个](/zh/docs/ops/integrations)遥测应用做了集成。
使用下面说明部署 [Kiali](/zh/docs/ops/integrations/kiali/) 仪表板、
以及 [Prometheus](/zh/docs/ops/integrations/prometheus/)、
[Grafana](/zh/docs/ops/integrations/grafana)、
还有 [Jaeger](/zh/docs/ops/integrations/jaeger/)
还有 [Jaeger](/zh/docs/ops/integrations/jaeger/)
1. 安装 [Kiali 和其他插件]({{< github_tree >}}/samples/addons),等待部署完成。
@ -354,8 +351,7 @@ Istio 和[几个](/zh/docs/ops/integrations)遥测应用做了集成。
{{< /text >}}
{{< tip >}}
如果在安装插件时出错,再运行一次命令。
有一些和时间相关的问题,再运行就能解决。
如果在安装插件时出错,再运行一次命令。有一些和时间相关的问题,再次运行就能解决。
{{< /tip >}}
1. 访问 Kiali 仪表板。
@ -366,12 +362,16 @@ Istio 和[几个](/zh/docs/ops/integrations)遥测应用做了集成。
1. 在左侧的导航菜单,选择 _Graph_ ,然后在 _Namespace_ 下拉列表中,选择 _default_
Kiali 仪表板展示了网格的概览、以及 `Bookinfo` 示例应用的各个服务之间的关系。
{{< tip >}}
{{< boilerplate trace-generation >}}
{{< /tip >}}
Kiali 仪表板展示了网格的概览以及 `Bookinfo` 示例应用的各个服务之间的关系。
它还提供过滤器来可视化流量的流动。
{{< image link="./kiali-example2.png" caption="Kiali Dashboard" >}}
{{< image link="./kiali-example2.png" caption="Kiali 仪表板" >}}
## 后续步骤
## 后续步骤{#next-steps}
恭喜您完成了评估安装!
@ -392,32 +392,31 @@ Istio 和[几个](/zh/docs/ops/integrations)遥测应用做了集成。
- [Pod 的需求](/zh/docs/ops/deployment/requirements/)
- [通用安装说明](/zh/docs/setup/)
## 加入 Istio 社区
## 加入 Istio 社区{#join-the-istio-community}
我们欢迎您加入 [Istio 社区](/zh/get-involved/)
提出问题,并给我们以反馈。
## 卸载
## 卸载{#uninstall}
删除 `Bookinfo` 示例应用和配置, 参阅
[清理 `Bookinfo`](/zh/docs/examples/bookinfo/#cleanup).
删除 `Bookinfo` 示例应用和配置, 参阅[清理 `Bookinfo`](/zh/docs/examples/bookinfo/#cleanup)。
Istio 卸载程序按照层次结构逐级的从 `istio-system` 命令空间中删除 RBAC 权限和所有资源。对于不存在的资源报错,可以安全的忽略掉,毕竟他们已经被分层的删除了。
Istio 卸载程序按照层次结构逐级的从 `istio-system` 命令空间中删除 RBAC 权限和所有资源。对于不存在的资源报错,可以安全的忽略掉,毕竟它们已经被分层地删除了。
{{< text bash >}}
$ kubectl delete -f @samples/addons@
$ istioctl manifest generate --set profile=demo | kubectl delete --ignore-not-found=true -f -
$ istioctl uninstall -y --purge
{{< /text >}}
命名空间 `istio-system` 默认情况下并不会被除。
不需要的时候,使用下面命令删掉它:
命名空间 `istio-system` 默认情况下并不会被除。
不需要的时候,使用下面命令移除它:
{{< text bash >}}
$ kubectl delete namespace istio-system
{{< /text >}}
指示 Istio 自动注入 Envoy 边车代理的标签默认也不除。
不需要的时候,使用下面命令删掉它。
指示 Istio 自动注入 Envoy 边车代理的标签默认也不除。
不需要的时候,使用下面命令移除它。
{{< text bash >}}
$ kubectl label namespace default istio-injection-