您的位置:首页 > 汽车 > 新车 > 基本概念介绍

基本概念介绍

2024/11/18 5:41:05 来源:https://blog.csdn.net/weixin_43924419/article/details/142344823  浏览:    关键词:基本概念介绍

基本概念

  1. cluster:cluster是计算,存储和网络资源的集合,Kubernetes利用这些资源运行各种基于容器的应用
  2. master:master是cluster的大脑,它的主要职责是调度,即决定将应用放在哪里运行,为了实现高可用,可以运行多个master
  3. node:职责试运行容器应用,Node由master管理,node负责监控并汇报容器的状态,同时根据master的要求管理容器的生命周期
  4. pod:
    1. pod是kubernetes的最小工作单元,每个pod包含一个或多个容器,pod中的容器会作为一个整体被master调度到一个node上运行
    2. kubernetes引入pod的主要目的
      1. 可管理性:有些容器天生就是需要紧密联系,一起工作,pod提供了比容器更高层次的抽象,将他们封装到一个部署单元中,kubernetes以pod为最小单位进行调度,扩展,共享资源,管理生命周期
      2. 通信和资源共享:pod中的所有容器使用同一个网络namespace,即相同的IP地址和port空间,他们可以直接用localhost通信,同样的,这些容器可以共享存储,当kubernetes挂载volume到pod,本质上是将volume挂载到pod中的每一个容器
    3. pod有两种使用方式
      1. 运行单一容器:one-container-per-pod是kubernetes最常见的模型,这种情况下,只是将单个容器简单封装成pod,即便只有一个容器,kubernetes管理的也是pod而不是直接管理容器
      2. 运行多个容器:需要直接共享资源的容器,应该放到一个pod中
  5. controller:
    1. kubernetes通常不会直接创建pod,而是通过controller来管理pod的,controller中定义了pod的部署特性,比如有几个副本,在什么样的nide上运行等,为了满足不同的业务场景,kubernetes提供了多种controller,包括deployment,replicaSet,DaemonSet,statefuleSet,job等
    2. Deployment:是最常用的controller,通过创建Deployment来部署应用,Deployment可以管理pod的多个副本,并确保pod按照期望的状态运行
    3. ReplicaSet实现了Pod的多个副本管理,使用Deployment时会自动创建ReplicaSet,也就是说Deployment是通过ReplicaSet来管理pod的多个副本的,通常不需要直接使用ReplicaSet
    4. DaemonSet用于每个Node最多只运行一个pod副本的场景,DaemonSet通常用于运行daemon
    5. StatefulSet能够保证pod的每个副本在整个生命周期中名称是不变的,而其他controller不提供这个功能,当某个pod发生故障需要删除并重新启动时,pod的名称会发生变化,同时statefulSet会保证副本按照固定的顺序启动,更新或者删除
    6. job用于运行结束就删除的应用,而其他controller中的pod通常是长期持续运行的
  6. Service
    1. deployment可以部署多个副本,每个pod都有自己的IP,外界如何访问这些副本?如果通过IP访问的话,pod会被频繁地销毁和重启,他们的IP会发生变化,用IP来访问不现实
    2. service定义了外界访问一组特定pod的方式,service有自己的IP和端口,service为pod提供了负载均衡
    3. kubernetes运行容器(pod)与访问容器(pod)这两项任务分别由controller和service执行
  7. namespace:
    1. 如果有多个用户或项目组使用同一个kubernetes cluster,如何将他们创建的controller,pod等资源分开?
    2. namespace可以将一个物理的cluster逻辑上划分成多个虚拟cluster,每个cluster就是一个namespace,不同的namespace中的资源是完全隔离的
    3. kubernetes默认创建了两个namespace,通过kubectl get namespace查看:default和kube-system
    4. default:创建资源时如果不指定,将被放到这个namespace中
    5. kube-system:kubernetes自己创建的系统资源将放到这个namespace中

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com