【学习笔记04】每天5分钟,玩转kubernetes-04(架构)

第四章: Kubernetes 架构

4.1 Master节点:

Master是大脑,运行如下Daemon服务:

API Server(kube-apiserver)
   API server提供了HTTP/HTTPS RESTful API,即Kubernetes API。 API server是Kubernetes Cluster的前端接口。其他客户端工具(CLI或UI)以及K8S其它组件可以通过它管理Cluster资源。

Scheduler(kube-scheduler)
   负责决定将Pod放在哪个Node上运行。调度时候考虑Cluster拓扑,各个节点的负载,以及应用对高可用、性能、数据亲和性的需求。

Controller Manager(kube-controller-manager)
   负责管理Cluster的各种资源。

etcd
   负责保存K8s Cluster的配置信息和各种资源的状态信息。当数据发生变化时,etcd可以快速的通知K8s 组件。

Pod网络
   Pod能通信,k8s cluster必须部署Pod网络(比如flannel是其中一个方案)

4.2 Node节点:

Kubelet - 是Node的agent,当scheduler确定在某个Node上运行Pod后,会将Pod的具体配置信息(image、volume等)发送给该节点的kubelet,kubelet根据这些信息创建和运行容器,并向Master报告运行状态。
kube-proxy - service在逻辑上代表了后端的多个Pod,外界通过service访问Pod。service接收到的请求是如何转发到Pod的呢?这就是kube-proxy要完成的工作。每个node都运行kube-proxy服务,它负责将访问service的TCP/UDP数据流转发到后端容器。如果有多个副本,kube-proxy实现负载均衡。
Pod网络 - Pod能通信,k8s cluster必须部署Pod网络(比如flannel是其中一个方案)
(注意:为什么Master上也有kubelet和kube-proxy呢? 因为Master上也可以运行应用,即Master同时也是一个Node )
kubectl get pod --all-namespaces -o wide

kubectl get pod --all-namespaces -o wide

4.3 完整的架构图:

P21

4.4 用例子把他们串起来:

P23

参考:

  • 【目录】每天5分钟,玩转kubernetes
  • https://kubernetes.io/zh/docs/concepts/
  • https://jimmysong.io/kubernetes-handbook/concepts/

你可能感兴趣的:(【学习笔记04】每天5分钟,玩转kubernetes-04(架构))