k8s学习笔记(4)--- kubernetes核心组件

1.Master 组件

        Master组件提供集群的管理控制中心。Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一台VM/机器上启动所有Master组件,并且不会在此VM/机器上运行用户容器。
在这里插入图片描述

1.1 kube-apiserver

        kube-apiserver用于暴露Kubernetes API。任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行。

1.2 ETCD

        etcd是Kubernetes提供默认的存储系统,保存所有集群数据,使用时需要为etcd数据提供备份计划。

1.3 kube-controller-manager

        kube-controller-manager运行管理控制器,它们是集群中处理常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成单个二进制文件,并在单个进程中运行。这些控制器包括:

  • 节点(Node)控制器。
  • 副本(Replication)控制器:负责维护系统中每个副本中的pod。
  • 端点(Endpoints)控制器:填充Endpoints对象(即连接Services&Pods)。
  • Service Account和Token控制器:为新的Namespace 创建默认帐户访问API Token。

1.4 kube-scheduler

        kube-scheduler 监视新创建没有分配到Node的Pod,为Pod选择一个Node

1.5 cloud-controller-manager

        云控制器管理器负责与底层云提供商的平台交互。云控制器管理器是Kubernetes版本1.6中引入的,目前还是Alpha的功能。

        云控制器管理器仅运行云提供商特定的(controller loops)控制器循环。可以通过将–cloud-provider flag设置为external启动kube-controller-manager ,来禁用控制器循环。

        cloud-controller-manager 具体功能:

  • 节点(Node)控制器
  • 路由(Route)控制器
  • Service控制器
  • 卷(Volume)控制器

2.Node组件

        节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod

2.1 kubelet

        kubelet是主要的节点代理,它会监视已分配给节点的pod,具体功能:

  • 安装Pod所需的volume。
  • 下载Pod的Secrets。
  • Pod中运行的 docker(或experimentally,rkt)容器。
  • 定期执行容器健康检查。
  • Reports the status of the pod back to the rest of the system, by creating a mirror pod if necessary.
  • Reports the status of the node back to the rest of the system.

2.2 kube-proxy

        提供网络代理以及负载均衡,实现与Service通讯

2.3 Container Runtime

        每个Node都需要提供一个容器运行时(Container Runtime)环境,它负责下载镜像并运行容器。目前K8S支持的容器运行环境至少包括Docker、RKT、cri-o、Fraki等。

3.核心附件- addons

        插件(addon)是实现集群pod和Services功能的 。Pod由Deployments,ReplicationController等进行管理。Namespace 插件对象是在kube-system Namespace中创建。

3.1 KubeDNS

        群集 DNS是一个DNS服务器,能够为 Kubernetes services提供 DNS记录。由Kubernetes启动的容器自动将这个DNS服务器包含在他们的DNS searches中。

        在K8S集群中调度并运行提供DNS服务的Pod,同一集群内的其他Pod可以使用该DNS服务来解决主机名。K8S自1.11版本开始默认使用CoreDNS项目来为集群提供服务注册和服务发现的动态名称解析服务。

3.2 用户界面(dashboard)

        K8S集群的全部功能都可以基于Web的UI,来管理集群中的应用和集群自身

3.3 容器资源监测(Heapster)

        容器和节点的性能监控与分析系统,它收集并解析多种指标数据,如资源利用率、生命周期时间,在最新的版本当中,其主要功能逐渐由Prometheus结合其他的组件进行代替。

3.4 Cluster-level Logging

        Cluster-level logging,负责保存容器日志,搜索/查看日志

3.5 网络插件(flannel)

        K8s本身没有网络方案,它允许别人给他提供。主要的网络有flannel、calico、canel、Kube-router,flannel其默认情况下是用的vxlan的方式来作为后端网络传输机制的。

3.6 Ingress Controller

        Service是一种工作于4层的负载均衡器,而Ingress是在应用层实现的HTTP(S)的负载均衡。不过,Ingress资源自身并不能进行流量的穿透,,它仅仅是一组路由规则的集合,这些规则需要通过Ingress控制器(Ingress Controller)发挥作用。目前该功能项目大概有:Nginx-ingress、Traefik、Envoy和HAproxy等
在这里插入图片描述

本文仅是个人学习时的整理收藏,以便回顾所用,内容均来源其它处。
[参考文档]http://docs.kubernetes.org.cn/230.html

发布了9 篇原创文章 · 获赞 0 · 访问量 907

猜你喜欢

转载自blog.csdn.net/qq_42987484/article/details/103541872