k8s基本名词概念
2020-07-13 本文已影响0人
DoubleFooker
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