kubernetes概念笔记

Kubernetes重要的几个概念

Cluster:资源的集合

  计算存储和网络资源的集合

Master:调度器

  是cluster的大脑,主要是来调度决定应用程序放在哪里去运行。

  Linux系统,物理机,虚拟机都可以是master。

  多master是做高可用

Node:是运行容器的应用,是master管理的。

  负责监控并汇报容器当前运行的状态,并根据master的要求来管理容器的生命周期。(容器是运行的一个实例)

Pod:是kubernetes中最小的工作单元,kubernetes并不是直接管理容器而是管理pod,pod再管理容器。

  每个pod会包含一个或多个容器,pod中的容器会作为一个整体被master调度到node上。

Controller:管理Pod

  controller中去定义pod当中的一些部署的特性,比如说运行几个pod。

  Deployment,replicaset,DeamonSet,job........

  Deployment 可以管理多个pod副本并且确保pod按照期望状态运行。

  Replicaset 是实现多个副本的管理。

  DeamonSet 是实现这些容器和pod在每一个节点上只运行一个。

  有多种controller,不同的controller负责管理不同的资源。

 

Service:访问副本

  k8s的service是定义了外界访问一组特定pod的方式,service有自己IP,有自己的端口,service给pod提供了负载均衡功能。

 

Namespace:命名空间

  可以将一个物理的Cluster在逻辑上划分成多个虚拟的Cluster。

  不同的Namespace的资源是完全隔离的。

 

Kubernetes框架结构概念

 

       

Master节点是的Cluster大脑,运行多个服务。

 

Master节点的组件

API SERVER:提供对外访问的功能。http/https/restful(访问接口)/API

Scheduler:调度器。决定pod放在哪一个node上运行,会考虑k8s的拓扑结构,各个节点的负载均衡,高可用性,性能,数据都会考虑到。根据这些因素来决定pod放在哪个node上运行。

Controller:负责管理各种资源,保证资源处于期望状态。有多种controller,不同的controller负责管理不同的资源。

Etcd:键值对数据库,用来存放配置信息和各种资源的使用状态。当数据发生变化时,etcd就会快速通知k8s的各个组件。Scheduler和controller调用资源的时候都要跟etcd打个招呼。

Fannel: 是作为跨主机通讯,跨容器通讯的网络结构。每个节点上都运行着。

Node是pod真正运行的地方,每个node上是由N多个pod构成。

 

Node节点的组件

Kubelet:安装时的一个服务,每个节点上都有。默认情况下叫做节点上的agent(代理) ,当Scheduler确定某个node上要运行pod时候,会将pod的具体配置信息,volume(卷标)信息发送给kubelet。Kubelet根据发送来的信息来创建pod和容器,会向master报告当前主机的状态是什么。

Fannel: 是作为跨主机通讯,跨容器通讯的网络结构。每个节点上都运行着。

Proxy:负责将service的tcp\udp转发到后端的容器中。

 

posted @ 2021-07-27 15:37  摸鱼摸鱼  阅读(51)  评论(0)    收藏  举报