Kubernetes基本概念

Kubernete模型中的核心概念。这些核心概念反映了Kubernetes设计过程中对应用容器集群的认知模型。

集群组件,从架构上看,Kubernetes集群(Cluster)也采用了典型的“主-从”架构。一个集群主要由管理组件(Master)和工作节点(Node)组件构成。

Kubernetes集群的主要任务始终围绕着应用的生命周期。通过将不同资源进行不同层次的抽象,Kubernetes提供了灵活可靠的生命周期管理。

资源的核心抽象主要包括:

  1. 容器组(Pod):由位于同一节点上若干容器组成,彼此共享网络命名空间和存储卷(Volume)。Pod是Kubernetes中进行管理的最小资源单位,是最为基础的概念。跟容器类似,Pod是短暂的,随时可变的;
  2. 服务(Service):若干(往往是同类型的)Pod形成的对外提供某个功能的抽象,不随Pod改变而变化,带有唯一固定的访问路径,如IP地址或者域名。
  3. 复制控制器(Replication Controller):负责启动Pod,并维护其健康运行的状态。是用户管理Pod的句柄。
  4. 部署(Deployment):创建Pod,并可根据参数自动创建管理Pod的复制控制器,并且支持升级。1.2.0版本引入提供比复制控制器更方便的操作;
  5. 横向Pod扩展器(Horizontal Pod Autoscaler,HPA):类似云里面的自动扩展组,根据Pod的使用率(典型如CPU)自动调整一个部署里面Pod的个数,保障服务可用性;

Kubernetes基本概念

还有一些管理资源相关的辅助概念,主要包括:

  1. 注解(Annotation):键值对,可以存放大量任意数据,一般用来添加对资源对象的详细说明,可供其他工具处理。
  2. 标签(Label):键值对,可以标记到资源对象上,用来对资源进行分类和筛选;
  3. 名字(Name):用户提供给资源的别名,同类资源不能重名;
  4. 命名空间(Namespace):这里是指资源的空间,避免不同租户的资源发生命名冲突,另外可以进行资源限额;
  5. 持久卷(PersistentVolume):类似于Docker中数据卷的概念,就是一个数据目录,Pod对其有访问权限。
  6. 秘密数据(Secret):存放敏感数据,例如用户认证的口令等;
  7. 选择器(Selector):基于标签概念的一个正则表达式,可通过标签来筛选出一组资源;
  8. Daemon集(DaemonSet):确保节点上肯定运行某个Pod,一般用来采集日志和监控节点;
  9. 任务(Job):确保给定数目的Pod正常退出(完成了任务);
  10. 入口资源(Ingress Resource):用来提供七层代理服务;
  11. 资源限额(Resource Quotas):用来限制某个命名空间下对资源的使用,开始逐渐提供多租户支持;
  12. 安全上下文(Security Context):应用到容器上的系统安全配置,包括uid、gid、capabilities、SELinux角色等;
  13. 服务账号(Service Accounts):操作资源的用户账号。
上一篇:历史文章分类汇总-Anaconda安装第三方包(whl文件)


下一篇:PHP中file_exists与is_file、is_dir的区别,以及执行效率的比较