通过例子理解 k8s 架构 — Kubernetes(9)

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@cloudman6·
0.000 HBD
通过例子理解 k8s 架构 — Kubernetes(9)
为了帮助大家更好地理解 Kubernetes 架构,我们部署一个应用来演示各个组件之间是如何协作的。

执行命令:

```
kubectl run httpd-app --image=httpd --replicas=2
```

![606.png](https://steemitimages.com/DQmXZTnjd4QSt8Pk67aEXHyA5758LWCuCWF1Gy2MdfLs7BU/606.png)

等待一段时间,应用部署完成。

![607.png](https://steemitimages.com/DQmWhc5YT14HALgHdqfNECn7tJpQ9bWmcU1VHQrvcoAEsgm/607.png)

Kubernetes 部署了 deployment `httpd-app`,有两个副本 Pod,分别运行在 `k8s-node1` 和 `k8s-node2`。

详细讨论整个部署过程。

![608.png](https://steemitimages.com/DQmYV3gzgiFxMVUvaN8rzMVtc8fDYUxRmkoU4psUT9vFnox/608.png)

① kubectl 发送部署请求到 API Server。

② API Server 通知 Controller Manager 创建一个 deployment 资源。

③ Scheduler 执行调度任务,将两个副本 Pod 分发到 k8s-node1 和 k8s-node2。

④ k8s-node1 和 k8s-node2 上的 kubectl 在各自的节点上创建并运行 Pod。

补充两点:

1. 应用的配置和当前状态信息保存在 etcd 中,执行 `kubectl get pod` 时 API Server 会从 etcd 中读取这些数据。

2. flannel 会为每个 Pod 都分配 IP。因为没有创建 service,目前 kube-proxy 还没参与进来。

Kubernetes 架构就讨论到这里。从下节开始,我们将通过实践深入学习 Kubernetes 的各种特性。作为容器编排引擎,最重要也是最基本的功能当然是运行容器化应用。下节见。
👍 , , , , , , , , , , , , , ,