Linux云计算虚拟化-Kubernetes 容器集群管理系统基础概念讲述

Linux云计算虚拟化-Kubernetes 容器集群管理系统基础概念讲述

1. kubernetes简介

Kubernetes 是Google开源的容器集群管理系统,基于 Docker 构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件。

Kubernetes 是基于docker容器的云平台,简写为:k8s
OpenStack 是基于kvm虚拟机云平台。

k8s官网https://kubernetes.io/

在这里插入图片描述

2. k8s常见组件介绍

①Master:提供k8s集群的管理控制中心,可以在集群中任何节点上运行。通常在一台VM/机器上启动所有Master组件,并且不会在此VM/机器上运行用户容器。

②Api Server:提供接口服务,用户通过apiserver来管理整个容器集群平台。API Server负责和etcd交互(其他组件不会直接操作etcd,只有API Server这么做),整个kubernetes 集群的所有的交互都是以API Server为核心的。

  • 任何的资源请求/调用操作都是通过apiserver提供的接口进行。
  • 所有模块之间并不会互相调用,而是通过和API Server交互完成自己的那部分工作。
  • API Server 提供的验证和授权保证了整个集群的安全。

③Scheduler:k8s的调度服务,监视新创建没有分配到Node的Pod,为Pod选择一个Node。

④Replication Controllers:Kubernetes 系统中最有用的功能,实现复制多个 Pod 副本,往往一个应用需要多个 Pod 来支撑,并且可以保证其复制的副本数,即使副本所调度分配的宿主机出现异常,通过 Replication Controller 可以保证在其它宿主机启用同等数量的 Pod。Replication Controller 可以通过 repcon 模板来创建多个 Pod 副本,同样也可以直接复制已存在 Pod,需要通过 Label selector 来关联。

⑤minion:真正用来运行容器container的物理机,在k8s中需要多个minion机器来提供运算。

⑥container:容器,用来运行服务和程序。【豌豆】

⑦pod:在k8s系统中,调度的最小颗粒不是容器,而是一个pod,pod是一个可以被创建、销毁、调度、管理的最小的部署单元,pod可以包括一个或一组容器。【一群鲸鱼(docker容器)或豌豆荚】

⑧kube_proxy:端口转发,相当于lvs-nat模式中的负载调度器。proxy解决了同一宿主机,相同服务端口冲突的问题,提供了对外服务的能力,proxy的后端使用了随机、轮询负载均衡算法。实现 Kubernetes 网络相关内容。

⑨etcd:是kubernetes提供的默认存储系统。存储 kubernetes 集群的所有数据, 可以理解为是 k8s 的数据库,存储着 k8s 容器云平台中所有节点、pods、网络等信息。使用时需要为etcd数据提供备份计划。

⑩controller manager:控制器管理器,是集群中处理常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成单个二进制文件,并在单个进程中运行。

  • 节点(Node)控制器
  • 副本(Replication)控制器:负责维护系统中每个副本中的pod。
  • 端点(Endpoints)控制器:填充Endpoints对象(即连接Services和Pods)。
  • Service Account和Token控制器:为新的Namespace创建默认账户访问API Token

其他概念:
①service:Services 是 Kubernetes 最外围的单元,通过虚拟一个访问 IP 及服务端口,可以访问我们定义好的 Pod 资源,目前的版本是通过 iptables 的 nat 转发来实现,转发的目标端口为Kube_proxy 生成的随机端口。

②lables:用于区分 Pod、Service、Replication Controller 的 key/value 键值对,仅使用在Pod、Service、 Replication Controller 之间的关系识别,但对这些单元本身进行操作时得使用 name标签。

③deployment:用于更新 Pod 和 Replica Set(下一代的 Replication Controller)。可以在 Deployment 对象中只描述你所期望的理想状态(预期的运行状态),Deployment 控
制器会将现在的实际状态转换成期望的状态。

④kubelet命令:管理 Pod、Pod 中容器及容器的镜像和卷等信息。
Kubelet 和 Kube-proxy 都运行在 minion 节点上。

⑤cloud-controller-manager:云控制器管理器,负责与底层云提供商的平台交互。在1.6版本引入。

各组件的关系:

Kubernetes 的架构由一个master和多个minion组成,master通过 api提供服务,接受kubectl的请求来调度管理整个集群。

Replication controller定义了需要运行的多个pod 或者容器,如果当前集群中运行的 pod或容器达不到配置的数量,replication controller 会调度容器在多个 minion 上运行,保证集群中的pod数量。

service 则定义真实对外提供的服务,一个 service 会对应后端运行的多个 container

Kubernetes 是个管理平台,minion上的kube-proxy拥有提供真实服务公网 IP。客户端访问kubernetes中提供的服务,是直接访问到kube-proxy上的。

⑤在 Kubernetespod是一个基本单元,一个pod 可以是提供相同功能的多个 container,这些容器会被部署在同一个 minion上。minion是运行Kubelet中容器的物理机。minion接受master的指令创建pod 或者容器。

3. k8s原理持续更新…

猜你喜欢

转载自blog.csdn.net/weixin_36522099/article/details/111180875