fix broken links and typos
- fix https://github.com/rootsongjc/kubernetes-handbook/issues/474 - fix broken links from mosn.io and kubernetes.iopull/478/head
parent
d230e8787a
commit
699a164806
|
@ -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。
|
||||||
|
|
||||||
|
|
|
@ -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 配置
|
||||||
|
|
||||||
|
|
|
@ -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,是云供应商提供的负载均衡器 IP,如 10.13.242.236:8086。
|
- 使用 `EXTERNAL-IP` 来访问,这是一个 VIP,是云供应商提供的负载均衡器 IP,如 `10.13.242.236:8086`
|
||||||
|
|
||||||
## Ingress
|
## Ingress
|
||||||
|
|
||||||
|
|
|
@ -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)。
|
||||||
|
|
|
@ -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)。
|
||||||
|
|
||||||
## 已知问题
|
## 已知问题
|
||||||
|
|
|
@ -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/)
|
||||||
|
|
Loading…
Reference in New Issue