K8S-基本名词概念

178 阅读3分钟

Master

运行:etcd、kube-apiserver、kube-controller-manager、scheduler。负责集群的资源管理、Pod调度、弹性伸缩、安全控制等管理功能

  • apiserver 负责提供kubernetesAPI接口,各节点通过api与master交互。
  • etcd 高可用的键值对存储服务,k8s使用ETCD存储节点信息。
  • scheduler 负责调度pod运行在合适的worker节点。
  • controller-manager 运行controller进程的管理器。

Node

woker节点运行pod的节点。

  • kubelet 负责维护和管理该Node上面的所有容器,使Pod得运行状态与期望的状态一致。
  • kube-proxy 该模块实现了Kubernetes中的服务发现和反向代理功能。反向代理方面:kube-proxy支持TCP和UDP连接转发,默认基于Round Robin算法将客户端流量转发到与service对应的一组后端pod。服务发现方面,kube-proxy使用etcd的watch机制,监控集群中service和endpoint对象数据的动态变化,并且维护一个service到endpoint的映射关系,从而保证了后端pod的IP变化不会对访问者造成影响。另外kube-proxy还支持session affinity。
  • Container Runtime 容器运行环境,可以是docker等虚拟容器。

Pod

Pod 是Kubernetes的基本操作单元,也是容器运行的载体。提供容器共享的环境。

Replication Controller(RC)

应用托管在Kubernetes之后,Kubernetes需要保证应用能够持续运行,这是RC的工作内容,它会维持Kubernetes中运行指定数量的Pod。

  • Label Label是键值对,pod通过设置一些列label来标识自身。RC与Pod通过Label来关联。Label机制可以灵活地对pod进行分类和选择。
  • 弹性扩缩容 弹性扩缩容是指根据负载的变化,弹性的伸缩资源。在Kubernetes中,指的是可根据负载的高低动态调整Pod的副本数量(--replicas)。
  • 滚动升级 滚动升级是一种平滑过渡的升级方式,通过逐步替换的策略,保证整体系统的稳定,在启动过程中可以及时发现问题,以保证升级过程的稳定性。
  • replica set RC的升级组件,通过selector保证pod的副本数量

Job

Pod的运行可以分为两类:长时运行服务(jboss、mysql等)和一次性任务(数据计算、测试)。RC创建的Pod都是长时运行的服务,而Job创建的Pod都是一次性任务。在Job的定义中,restartPolicy(重启策略)只能是Never和OnFailure。Job可以控制一次性任务的Pod的完成次数(Job-->spec-->completions)和并发执行数(Job-->spec-->parallelism),当Pod成功执行指定次数后,即认为Job执行完毕。

Services

Service是一种抽象概念,它定义了一个Pod逻辑集合以及访问它们的方式。支持ClusterIp、NodePort、LoadBalancer。

Deployment

Deployment定义了一组Pod的信息。Deployment主要职责与RC相似,同样是为了保证pod的数量和健康。除此之外还支持滚动升级、回滚等多种升级方案。

Volume

声明容器中可以访问的文件目录,被挂载到一个或多个pod上。并且支持多样的存储类型。

PersistentVolumeClaim

处理集群中的存储请求,绑定特定的pv,将请求进行存储。

Namespace

kubernetes通过namespace实现资源的逻辑隔离,namespace唯一,不同namespace中资源可重复。


公众号

公众号.jpg