diff --git a/cloud-native/quick-start.md b/cloud-native/quick-start.md index 20e6cedc5..3fe96a059 100644 --- a/cloud-native/quick-start.md +++ b/cloud-native/quick-start.md @@ -150,7 +150,7 @@ Kubernetes 提供了应用程序在集群的每个层次上的资源使用情况 毕竟,监控可以帮助你了解应用和集群运行情况的详细信息,这对于学习 Kubernetes 是十分有帮助的。 -Kubernetes 包含两个内置度量收集工具用于监控:[资源管道和全度量管道](https://kubernetes.io/docs/tasks/debug-application-cluster/resource-usage-monitoring/)。资源管道是一个较低级和较有限的工具,主要集中在与各种控制器相关的指标上。全指标管道,顾名思义,从几乎所有集群组件中获取并显示更丰富的指标。 +Kubernetes 包含两个内置度量收集工具用于监控:资源管道和全度量管道。资源管道是一个较低级和较有限的工具,主要集中在与各种控制器相关的指标上。全指标管道,顾名思义,从几乎所有集群组件中获取并显示更丰富的指标。 还有一些第三方工具可以安装并集成到 Kubernetes 集群中。对于 Kubernetes 来说,最普遍使用的两个工具是 Prometheus 和 Grafana。 diff --git a/develop/advance-developer.md b/develop/advance-developer.md index 5d85384d8..4c5b924f9 100644 --- a/develop/advance-developer.md +++ b/develop/advance-developer.md @@ -13,8 +13,8 @@ 如您所知,将整个应用程序(例如容器化的 Rails 应用程序,MySQL 数据库以及所有应用程序)迁移到单个 Pod 中是一种反模式。这就是说,有一些非常有用的模式超出了容器和 Pod 之间的 1:1 的对应关系: -- **Sidecar 容器**:虽然 Pod 中依然需要有一个主容器,你还可以添加一个副容器作为辅助(见 [日志示例](https://kubernetes.io/docs/concepts/cluster-administration/logging/#using-a-sidecar-container-with-the-logging-agent))。*单个 Pod 中的两个容器可以[通过共享卷](https://kubernetes.io/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume/)进行通信*。 -- **Init 容器**:*Init 容器*在 Pod 的应用容器(如主容器和 sidecar 容器)之前运行。[阅读更多](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/),查看 [nginx 服务器示例](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-initialization/),并[学习如何调试这些容器](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-init-containers/)。 +- **Sidecar 容器**:虽然 Pod 中依然需要有一个主容器,你还可以添加一个副容器作为辅助(见 [日志示例](https://kubernetes.io/docs/concepts/cluster-administration/logging/#using-a-sidecar-container-with-the-logging-agent))。单个 Pod 中的两个容器可以[通过共享卷](https://kubernetes.io/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume/)进行通信。 +- **Init 容器**:Init 容器在 Pod 的应用容器(如主容器和 sidecar 容器)之前运行。 #### Pod 配置 diff --git a/guide/accessing-kubernetes-pods-from-outside-of-the-cluster.md b/guide/accessing-kubernetes-pods-from-outside-of-the-cluster.md index 73ed5fb93..d814e1294 100644 --- a/guide/accessing-kubernetes-pods-from-outside-of-the-cluster.md +++ b/guide/accessing-kubernetes-pods-from-outside-of-the-cluster.md @@ -8,7 +8,7 @@ - LoadBalancer - Ingress -说是暴露 Pod 其实跟暴露 Service 是一回事,因为 Pod 就是 Service 的 backend。 +说是暴露 Pod 其实跟暴露 Service 是一回事,因为 Pod 就是 Service 的后端。 ## hostNetwork: true @@ -50,7 +50,7 @@ curl -v http://$POD_IP:8086/ping 这是一种直接定义 Pod 网络的方式。 -`hostPort` 是直接将容器的端口与所调度的节点上的端口路由,这样用户就可以通过宿主机的 IP 加上来访问 Pod 了,如:。 +`hostPort` 是直接将容器的端口与所调度的节点上的端口路由,这样用户就可以通过宿主机的 IP 加上来访问 Pod 了,比如: ```yaml apiVersion: v1 @@ -68,7 +68,7 @@ spec: 这样做有个缺点,因为 Pod 重新调度的时候该 Pod 被调度到的宿主机可能会变动,这样就变化了,用户必须自己维护一个 Pod 与所在宿主机的对应关系。 -这种网络方式可以用来做 nginx ingress controller。外部流量都需要通过 Kubernetes node 节点的 80 和 443 端口。 +这种网络方式可以用来做 Nginx Ingress Controller。外部流量都需要通过 Kubernetes node 节点的 80 和 443 端口。 ## NodePort @@ -105,7 +105,7 @@ spec: name: influxdb ``` -集群外就可以使用 kubernetes 任意一个节点的 IP 加上 30000 端口访问该服务了。kube-proxy 会自动将流量以 round-robin 的方式转发给该 service 的每一个 pod。 +集群外就可以使用 Kubernetes 任意一个节点的 IP 加上 30000 端口访问该服务了。kube-proxy 会自动将流量以 `round-robin` 的方式转发给该 service 的每一个 pod。 这种服务暴露方式,无法让你指定自己想要的应用常用端口,不过可以在集群上再部署一个反向代理作为流量入口。 @@ -134,12 +134,12 @@ NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE influxdb 10.97.121.42 10.13.242.236 8086:30051/TCP 39s ``` -内部可以使用 ClusterIP 加端口来访问服务,如 19.97.121.42:8086。 +内部可以使用 ClusterIP 加端口来访问服务,如 `10.97.121.42:8086`。 外部可以用以下两种方式访问该服务: - 使用任一节点的 IP 加 30051 端口访问该服务 -- 使用 `EXTERNAL-IP` 来访问,这是一个 VIP,是云供应商提供的负载均衡器 IP,如 10.13.242.236:8086。 +- 使用 `EXTERNAL-IP` 来访问,这是一个 VIP,是云供应商提供的负载均衡器 IP,如 `10.13.242.236:8086` ## Ingress diff --git a/guide/docker-cli-to-kubectl.md b/guide/docker-cli-to-kubectl.md index 95fc44c96..ceca08286 100644 --- a/guide/docker-cli-to-kubectl.md +++ b/guide/docker-cli-to-kubectl.md @@ -132,8 +132,6 @@ $ kubectl exec -ti nginx-app-5jyvm -- /bin/sh # exit ``` -更多信息请查看 [获取运行中容器的 Shell 环境](https://kubernetes.io/docs/tasks/kubectl/get-shell-running-container)。 - #### docker logs 如何查看运行中进程的 stdout/stderr?查看 [kubectl logs](https://kubernetes.io/docs/user-guide/kubectl/#logs)。 diff --git a/practice/configuring-dns.md b/practice/configuring-dns.md index 4cf514e83..07e9d41aa 100644 --- a/practice/configuring-dns.md +++ b/practice/configuring-dns.md @@ -1,18 +1,18 @@ # 安装配置 kube-dns -在我们安装Kubernetes集群的时候就已经安装了kube-dns插件,这个插件也是官方推荐安装的。通过将 Service 注册到 DNS 中,Kuberentes 可以为我们提供一种简单的服务注册发现与负载均衡方式。 +在我们安装 Kubernetes 集群的时候就已经安装了 `kube-dns` 插件,这个插件也是官方推荐安装的。通过将 Service 注册到 DNS 中,Kuberentes 可以为我们提供一种简单的服务注册发现与负载均衡方式。 -[CoreDNS](https://coredns.io)作为CNCF中的托管的一个项目,在Kuberentes1.9版本中,使用kubeadm方式安装的集群可以通过以下命令直接安装CoreDNS。 +[CoreDNS](https://coredns.io) 作为 CNCF 中的托管的一个项目,在 Kuberentes1.9 版本中,使用 kubeadm 方式安装的集群可以通过以下命令直接安装 CoreDNS。 ```bash kubeadm init --feature-gates=CoreDNS=true ``` -您也可以使用CoreDNS替换Kubernetes插件kube-dns,可以使用 Pod 部署也可以独立部署,请参考[Using CoreDNS for Service Discovery](https://kubernetes.io/docs/tasks/administer-cluster/coredns/),下文将介绍如何配置kube-dns。 +您也可以使用 CoreDNS 替换 Kubernetes 插件 `kube-dns`,可以使用 Pod 部署也可以独立部署,请参考 [Using CoreDNS for Service Discovery](https://kubernetes.io/docs/tasks/administer-cluster/coredns/),下文将介绍如何配置 `kube-dns`。 ## kube-dns -kube-dns是Kubernetes中的一个内置插件,目前作为一个独立的开源项目维护,见。 +`kube-dns` 是 Kubernetes 中的一个内置插件,目前作为一个独立的开源项目维护,见 [GitHub](https://github.com/kubernetes/dns)。 下文中给出了配置 DNS Pod 的提示和定义 DNS 解析过程以及诊断 DNS 问题的指南。 @@ -101,7 +101,7 @@ data: [“8.8.8.8”, “8.8.4.4”] ``` -如上面指定的那样,带有“.acme.local”后缀的 DNS 请求被转发到 1.2.3.4 处监听的 DNS。Google Public DNS 为上游查询提供服务。 +如上面指定的那样,带有“.acme.local”后缀的 DNS 请求被转发到 `1.2.3.4` 处监听的 DNS。Google Public DNS 为上游查询提供服务。 下表描述了如何将具有特定域名的查询映射到其目标DNS服务器: @@ -296,8 +296,6 @@ kube-dns 10.0.0.10 53/UDP,53/TCP 1h ... ``` -如果您已经创建了该服务或它本应该默认创建但没有出现,参考[调试服务](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/)获取更多信息。 - ### DNS 端点暴露出来了吗? 您可以使用`kubectl get endpoints`命令验证 DNS 端点是否被暴露。 @@ -308,8 +306,6 @@ NAME ENDPOINTS AGE kube-dns 10.180.3.17:53,10.180.3.17:53 1h ``` -如果您没有看到端点,查看[调试服务](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/)文档中的端点部分。 - 获取更多的 Kubernetes DNS 示例,请参考 Kubernetes GitHub 仓库中的[cluster-dns示例](https://github.com/kubernetes/examples/tree/master/staging/cluster-dns)。 ## 已知问题 diff --git a/usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.md b/usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.md index c9427043e..e9d7316d8 100644 --- a/usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.md +++ b/usecases/understand-sidecar-injection-and-traffic-hijack-in-istio-service-mesh.md @@ -395,5 +395,5 @@ tproxy 可以用于 inbound 流量的重定向,且无需改变报文中的目 - [Debugging Envoy and Istiod - istio.io](https://istio.io/docs/ops/diagnostic-tools/proxy-cmd/) - [揭开 Istio Sidecar 注入模型的神秘面纱 - istio.io](https://istio.io/latest/zh/blog/2019/data-plane-setup/) -- [MOSN 作为 Sidecar 使用时的流量劫持方案 - mosn.io](https://mosn.io/docs/concept/traffic-hijack/) +- [MOSN 作为 Sidecar 使用时的流量劫持方案 - mosn.io](https://mosn.io/docs/products/structure/traffic-hijack/) - [Istio 中的 Sidecar 注入、透明流量劫持及流量路由过程详解 - jimmysong.io](https://jimmysong.io/blog/sidecar-injection-iptables-and-traffic-routing/)