fix broken links and typos

- fix https://github.com/rootsongjc/kubernetes-handbook/issues/474
- fix broken links from mosn.io and kubernetes.io
pull/478/head
Jimmy Song 2022-04-29 09:57:16 +08:00
parent d230e8787a
commit 699a164806
No known key found for this signature in database
GPG Key ID: CBA666E6EF8B2C3A
6 changed files with 15 additions and 21 deletions

View File

@ -150,7 +150,7 @@ Kubernetes 提供了应用程序在集群的每个层次上的资源使用情况
毕竟,监控可以帮助你了解应用和集群运行情况的详细信息,这对于学习 Kubernetes 是十分有帮助的。 毕竟,监控可以帮助你了解应用和集群运行情况的详细信息,这对于学习 Kubernetes 是十分有帮助的。
Kubernetes 包含两个内置度量收集工具用于监控:[资源管道和全度量管道](https://kubernetes.io/docs/tasks/debug-application-cluster/resource-usage-monitoring/)。资源管道是一个较低级和较有限的工具,主要集中在与各种控制器相关的指标上。全指标管道,顾名思义,从几乎所有集群组件中获取并显示更丰富的指标。 Kubernetes 包含两个内置度量收集工具用于监控:资源管道和全度量管道。资源管道是一个较低级和较有限的工具,主要集中在与各种控制器相关的指标上。全指标管道,顾名思义,从几乎所有集群组件中获取并显示更丰富的指标。
还有一些第三方工具可以安装并集成到 Kubernetes 集群中。对于 Kubernetes 来说,最普遍使用的两个工具是 Prometheus 和 Grafana。 还有一些第三方工具可以安装并集成到 Kubernetes 集群中。对于 Kubernetes 来说,最普遍使用的两个工具是 Prometheus 和 Grafana。

View File

@ -13,8 +13,8 @@
如您所知,将整个应用程序(例如容器化的 Rails 应用程序MySQL 数据库以及所有应用程序)迁移到单个 Pod 中是一种反模式。这就是说,有一些非常有用的模式超出了容器和 Pod 之间的 1:1 的对应关系: 如您所知,将整个应用程序(例如容器化的 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/)进行通信* - **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/)。 - **Init 容器**Init 容器在 Pod 的应用容器(如主容器和 sidecar 容器)之前运行。
#### Pod 配置 #### Pod 配置

View File

@ -8,7 +8,7 @@
- LoadBalancer - LoadBalancer
- Ingress - Ingress
说是暴露 Pod 其实跟暴露 Service 是一回事,因为 Pod 就是 Service 的 backend 说是暴露 Pod 其实跟暴露 Service 是一回事,因为 Pod 就是 Service 的后端
## hostNetwork: true ## hostNetwork: true
@ -50,7 +50,7 @@ curl -v http://$POD_IP:8086/ping
这是一种直接定义 Pod 网络的方式。 这是一种直接定义 Pod 网络的方式。
`hostPort` 是直接将容器的端口与所调度的节点上的端口路由,这样用户就可以通过宿主机的 IP 加上来访问 Pod 了,如:。 `hostPort` 是直接将容器的端口与所调度的节点上的端口路由,这样用户就可以通过宿主机的 IP 加上来访问 Pod 了,比如:
```yaml ```yaml
apiVersion: v1 apiVersion: v1
@ -68,7 +68,7 @@ spec:
这样做有个缺点,因为 Pod 重新调度的时候该 Pod 被调度到的宿主机可能会变动,这样就变化了,用户必须自己维护一个 Pod 与所在宿主机的对应关系。 这样做有个缺点,因为 Pod 重新调度的时候该 Pod 被调度到的宿主机可能会变动,这样就变化了,用户必须自己维护一个 Pod 与所在宿主机的对应关系。
这种网络方式可以用来做 nginx ingress controller。外部流量都需要通过 Kubernetes node 节点的 80 和 443 端口。 这种网络方式可以用来做 Nginx Ingress Controller。外部流量都需要通过 Kubernetes node 节点的 80 和 443 端口。
## NodePort ## NodePort
@ -105,7 +105,7 @@ spec:
name: influxdb 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 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 端口访问该服务 - 使用任一节点的 IP 加 30051 端口访问该服务
- 使用 `EXTERNAL-IP` 来访问,这是一个 VIP是云供应商提供的负载均衡器 IP10.13.242.236:8086。 - 使用 `EXTERNAL-IP` 来访问,这是一个 VIP是云供应商提供的负载均衡器 IP`10.13.242.236:8086`
## Ingress ## Ingress

View File

@ -132,8 +132,6 @@ $ kubectl exec -ti nginx-app-5jyvm -- /bin/sh
# exit # exit
``` ```
更多信息请查看 [获取运行中容器的 Shell 环境](https://kubernetes.io/docs/tasks/kubectl/get-shell-running-container)。
#### docker logs #### docker logs
如何查看运行中进程的 stdout/stderr查看 [kubectl logs](https://kubernetes.io/docs/user-guide/kubectl/#logs)。 如何查看运行中进程的 stdout/stderr查看 [kubectl logs](https://kubernetes.io/docs/user-guide/kubectl/#logs)。

View File

@ -1,6 +1,6 @@
# 安装配置 kube-dns # 安装配置 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。
@ -8,11 +8,11 @@
kubeadm init --feature-gates=CoreDNS=true 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
kube-dns是Kubernetes中的一个内置插件目前作为一个独立的开源项目维护<https://github.com/kubernetes/dns> `kube-dns` Kubernetes 中的一个内置插件,目前作为一个独立的开源项目维护,见 [GitHub](https://github.com/kubernetes/dns)
下文中给出了配置 DNS Pod 的提示和定义 DNS 解析过程以及诊断 DNS 问题的指南。 下文中给出了配置 DNS Pod 的提示和定义 DNS 解析过程以及诊断 DNS 问题的指南。
@ -101,7 +101,7 @@ data:
[“8.8.8.8”, “8.8.4.4”] [“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服务器 下表描述了如何将具有特定域名的查询映射到其目标DNS服务器
@ -296,8 +296,6 @@ kube-dns 10.0.0.10 <none> 53/UDP,53/TCP 1h
... ...
``` ```
如果您已经创建了该服务或它本应该默认创建但没有出现,参考[调试服务](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/)获取更多信息。
### DNS 端点暴露出来了吗? ### DNS 端点暴露出来了吗?
您可以使用`kubectl get endpoints`命令验证 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 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)。 获取更多的 Kubernetes DNS 示例,请参考 Kubernetes GitHub 仓库中的[cluster-dns示例](https://github.com/kubernetes/examples/tree/master/staging/cluster-dns)。
## 已知问题 ## 已知问题

View File

@ -395,5 +395,5 @@ tproxy 可以用于 inbound 流量的重定向,且无需改变报文中的目
- [Debugging Envoy and Istiod - istio.io](https://istio.io/docs/ops/diagnostic-tools/proxy-cmd/) - [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/) - [揭开 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/) - [Istio 中的 Sidecar 注入、透明流量劫持及流量路由过程详解 - jimmysong.io](https://jimmysong.io/blog/sidecar-injection-iptables-and-traffic-routing/)