经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Kubernetes » 查看文章
八、Kubernetes 架构(下)
来源:cnblogs  作者:cuiyongchao007  时间:2021/1/25 10:51:47  对本文有异议

八、Kubernetes 架构(下)

? 上一节我们讨论了 Kubernetes 架构 Master 上运行的服务,本节讨论 Node 节点。

(一)node

? Node 是 Pod 运行的地方,Kubernetes 支持 Docker、rkt 等容器 Runtime。 Node上运行的 Kubernetes 组件有 kubelet、kube-proxy 和 Pod 网络(例如 flannel)。

(1)kubelet

? kubelet 是 Node 的 agent,当 Scheduler 确定在某个 Node 上运行 Pod 后,会将 Pod 的具体配置信息(image、volume 等)发送给该节点的 kubelet,kubelet 根据这些信息创建和运行容器,并向 Master 报告运行状态。

(2)kube-proxy

? service 在逻辑上代表了后端的多个 Pod,外界通过 service 访问 Pod。service 接收到的请求是如何转发到 Pod 的呢?这就是 kube-proxy 要完成的工作。

? 每个 Node 都会运行 kube-proxy 服务,它负责将访问 service 的 TCP/UPD 数据流转发到后端的容器。如果有多个副本,kube-proxy 会实现负载均衡。

(3) Pod 网络

Pod 要能够相互通信,Kubernetes Cluster 必须部署 Pod 网络,flannel 是其中一个可选方案。

(二)架构图

? 你可能会问:为什么 k8s-master 上也有 kubelet 和 kube-proxy 呢?

? 这是因为 Master 上也可以运行应用,即 Master 同时也是一个 Node。几乎所有的 Kubernetes 组件本身也运行在 Pod 里,执行如下命令:

  1. root@k8s-master:~# kubectl get pod --all-namespaces -o wide
  2. NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
  3. kube-system coredns-6d56c8448f-9grxk 1/1 Running 0 104m 10.244.0.3 k8s-master <none> <none>
  4. kube-system coredns-6d56c8448f-mrx55 1/1 Running 0 104m 10.244.0.2 k8s-master <none> <none>
  5. kube-system etcd-k8s-master 1/1 Running 0 105m 10.0.0.41 k8s-master <none> <none>
  6. kube-system kube-apiserver-k8s-master 1/1 Running 0 105m 10.0.0.41 k8s-master <none> <none>
  7. kube-system kube-controller-manager-k8s-master 1/1 Running 0 105m 10.0.0.41 k8s-master <none> <none>
  8. kube-system kube-flannel-ds-cqwqv 1/1 Running 0 99m 10.0.0.41 k8s-master <none> <none>
  9. kube-system kube-flannel-ds-nh2qg 1/1 Running 0 89m 10.0.0.43 k8s-node-02 <none> <none>
  10. kube-system kube-flannel-ds-wbrs6 1/1 Running 0 88m 10.0.0.42 k8s-node-01 <none> <none>
  11. kube-system kube-proxy-45prh 1/1 Running 0 104m 10.0.0.41 k8s-master <none> <none>
  12. kube-system kube-proxy-g2c4x 1/1 Running 0 89m 10.0.0.43 k8s-node-02 <none> <none>
  13. kube-system kube-proxy-jwvg5 1/1 Running 0 88m 10.0.0.42 k8s-node-01 <none> <none>
  14. kube-system kube-scheduler-k8s-master 1/1 Running 0 105m 10.0.0.41 k8s-master <none> <none>
  15. root@k8s-master:~#

? Kubernetes 的系统组件都被放到  kube-system namespace中。这里有一个 kube-dns 组件,它为 Cluster 提供 DNS 服务,我们后面会讨论。kube-dns是在执行 kubeadm init 时(第 ⑤ 步)作为附加组件安装的。

? kubelet 是唯一没有以容器形式运行的 Kubernetes 组件,它在 Ubuntu 中通过 Systemd 运行。

  1. root@k8s-master:~# systemctl status kubelet.service
  2. kubelet.service - kubelet: The Kubernetes Node Agent
  3. Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
  4. Drop-In: /etc/systemd/system/kubelet.service.d
  5. └─10-kubeadm.conf
  6. Active: active (running) since Sun 2020-11-01 11:22:37 UTC; 1h 52min ago
  7. Docs: https://kubernetes.io/docs/home/
  8. Main PID: 78026 (kubelet)
  9. Tasks: 16 (limit: 4632)
  10. CGroup: /system.slice/kubelet.service

? 为了帮助大家更好地理解 Kubernetes 架构,下节我们将部署一个应用来展示各个组件是如何协作的。

原文链接:http://www.cnblogs.com/cuiyongchao007/p/14323060.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号