欢迎访问凯铧科技有限公司网站! |7X24服务热线:158-0160-3153
  • 阿里云服务器

    简单高效、处理能力可弹性伸缩的计算服务

    了解详情
当前位置:首页 > 常见问题 > 帮助中心 >
Kubernetes是什么? 2020-03-04 15:52:18

客户问题

Kubernetes是什么?

阿里云技术回复:

Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。

为什么需要 Kubernetes

容器是打包和运行应用程序的好方式。在生产环境中,您需要管理运行应用程序的容器,并确保不会停机。例如,如果一个容器发生故障,则需要启动另一个容器。如果由操作系统处理此行为,会不会更容易?

Kubernetesr的用途:

1、服务发现和负载均衡

Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果到容器的流量很大,Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。

2、存储编排

Kubernetes 允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等。 自动部署和回滚

您可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态更改为所需状态。例如,您可以自动化 Kubernetes 来为您的部署创建新容器,删除现有容器并将它们的所有资源用于新容器。

3、自动二进制打包

Kubernetes 允许您指定每个容器所需 CPU 和内存(RAM)。当容器指定了资源请求时,Kubernetes 可以做出更好的决策来管理容器的资源。

4、自我修复

Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。

5、密钥与配置管理

Kubernetes 允许您存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。您可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。

Kubernetes 组件

初学者首先要了解Kubernetes的基本概念,包括master、node、pod等。

1、Master

Master是Kubernetes集群的大脑,运行着的守护进程服务包括kube-apiserver、kube-scheduler、kube-controller-manager、etcd和Pod网络等。

kube-apiserver

主节点上负责提供 Kubernetes API 服务的组件;它是 Kubernetes 控制面的前端。

kube-apiserver 在设计上考虑了水平扩缩的需要。 换言之,通过部署多个实例可以实现扩缩。

etcd

 etcd 是兼具一致性和高可用性的键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库。

 您的 Kubernetes 集群的 etcd 数据库通常需要有个备份计划。

kube-scheduler

主节点上的组件,该组件监视那些新创建的未指定运行节点的 Pod,并选择节点让 Pod 在上面运行。

 调度决策考虑的因素包括单个 Pod 和 Pod 集合的资源需求、硬件/软件/策略约束、亲和性和反亲和性规范、数据位置、工作负载间的干扰和最后时限。

kube-controller-manager

在主节点上运行控制器的组件。

 从逻辑上讲,每个控制器都是一个单独的进程,但是为了降低复杂性,它们都被编译到同一个可执行文件,并在一个进程中运行。

 这些控制器包括:

节点控制器(Node Controller): 负责在节点出现故障时进行通知和响应。

 副本控制器(Replication Controller): 负责为系统中的每个副本控制器对象维护正确数量的 Pod。

 端点控制器(Endpoints Controller): 填充端点(Endpoints)对象(即加入 Service 与 Pod)。

 服务帐户和令牌控制器(Service Account & Token Controllers): 为新的命名空间创建默认帐户和 API 访问令牌.

云控制器管理器-(cloud-controller-manager)

 cloud-controller-manager 运行与基础云提供商交互的控制器

cloud-controller-manager 仅运行云提供商特定的控制器循环。您必须在 kube-controller-manager 中禁用这些控制器循环,您可以通过在启动 kube-controller-manager 时将 --cloud-provider 参数设置为 external 来禁用控制器循环。

cloud-controller-manager 允许云供应商的代码和 Kubernetes 代码彼此独立地发展。在以前的版本中,核心的 Kubernetes 代码依赖于特定云提供商的代码来实现功能。在将来的版本中,云供应商专有的代码应由云供应商自己维护,并与运行 Kubernetes 的云控制器管理器相关联。

以下控制器具有云提供商依赖性:

节点控制器(Node Controller): 用于检查云提供商以确定节点是否在云中停止响应后被删除

路由控制器(Route Controller): 用于在底层云基础架构中设置路由

服务控制器(Service Controller): 用于创建、更新和删除云提供商负载均衡器

数据卷控制器(Volume Controller): 用于创建、附加和装载卷、并与云提供商进行交互以编排卷

2、Node

节点组件在每个节点上运行,维护运行 Pod 并提供 Kubernetes 运行环境。

kubelet

一个在集群中每个节点上运行的代理。它保证容器都运行在 Pod 中。

kubelet 接收一组通过各类机制提供给它的 PodSpecs,确保这些 PodSpecs 中描述的容器处于运行状态且健康。kubelet 不会管理不是由 Kubernetes 创建的容器。

kube-proxy

 kube-proxy 是集群中每个节点上运行的网络代理,实现 Kubernetes Service 概念的一部分。

kube-proxy 维护节点上的网络规则。这些网络规则允许从集群内部或外部的网络会话与 Pod 进行网络通信。

 如果有 kube-proxy 可用,它将使用操作系统数据包过滤层。否则,kube-proxy 会转发流量本身。

 容器运行环境(Container Runtime)

容器运行环境是负责运行容器的软件。

Kubernetes 支持多个容器运行环境: Docker、 containerd、cri-o、 rktlet 以及任何实现 Kubernetes CRI (容器运行环境接口)。

3、Pod

在Kubernetes中,最小的管理元素不是一个个独立的容器,而是Pod。Pod是管理,创建,计划的最小单元.

一个Pod相当于一个共享context的配置组,在同一个context下,应用可能还会有独立的cgroup隔离机制,一个Pod是一个容器环境下的“逻辑主机”,它可能包含一个或者多个紧密相连的应用,这些应用可能是在同一个物理主机或虚拟机上。

Pod 的context可以理解成多个linux命名空间的联合

PID 命名空间(同一个Pod中应用可以看到其它进程)

 网络 命名空间(同一个Pod的中的应用对相同的IP地址和端口有权限)

IPC 命名空间(同一个Pod中的应用可以通过VPC或者POSIX进行通信)

UTS 命名空间(同一个Pod中的应用共享一个主机名称)

 同一个Pod中的应用可以共享磁盘,磁盘是Pod级的,应用可以通过文件系统调用。 由于docker的架构,一个Pod是由多个相关的并且共享磁盘的容器组成,Pid的命名空间共享还没有应用到Docker中

 和相互独立的容器一样,Pod是一种相对短暂的存在,而不是持久存在的,正如我们在Pod的生命周期中提到的,Pod被安排到结点上,并且保持在这个节点上直到被终止(根据重启的设定)或者被删除,当一个节点死掉之后,上面的所有Pod均会被删除。特殊的Pod永远不会被转移到的其他的节点,作为替代,他们必须被replace。

 

文适用于:

想了解学习Kubernetes的人群

 

如果问题还未能解决,请联系凯铧互联售后技术支持。本公司销售:阿里云、腾讯云、百度云、华为云、金山大米云、金山企业云盘!可签订合同,开具发票,同样的品质,更多贴心的服务,更实惠的价格。阿里云代理商凯铧互联会为您提供一对一专业全面的技术服务,同时还能为您提供阿里云其他产品购买的专属折扣优惠。通过凯铧互联购买可以获得折上折优惠!若您需要帮助可以直接联系我方客服,阿里云代理商凯铧互联专业技术团队为您提供全面便捷专业的7x24技术服务。 电话专线:136-5130-9831,QQ:3398234753。

为什么选择凯铧互联北京凯铧互联科技有限公司(简称凯铧互联)由多名前阿里云资深技术专家创立,核心员工来自阿里巴巴、腾讯等,作为阿里云,腾讯云,百度云,金山云,华为云重要的合作伙伴,专业从事互联网应用服务、云计算、大数据、人工智能、企业信息化建设,为企业用户提供基于大数据的企业上云解决方案。公司总部设在北京,并在内蒙设有办事处。凯铧互联以互联网基础服务为核心,以软件技术为推手,通过软件与互联网的结合,技术与行业认知的结合,提供针对互联网应用解决方案、及相关软件产品及服务。 针对各行业客户,特别是中小企业,提供安全、可靠、高质量、易扩展的行业解决方案和互联网应用,帮助客户实现信息化管理、数字化转型、企业上云等最佳实践,以满足客户业务发展的各种需求。行业解决方案涵盖的领域包括:电子、能源、文化、旅游、教育、机械、医疗、金融、餐饮等。公司官网:www.bjkaihua.com;腾讯云网站www.bjkaihua.net.cn; 阿里云业务网站:www.alibjyun.com。大家可以扫以下微信,一起交流!
凯铧互联官网微信