首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kubernetes是什么东西?

Kubernetes是什么东西?

作者头像
Java学习录
发布于 2019-07-10 10:43:12
发布于 2019-07-10 10:43:12
1.3K0
举报
文章被收录于专栏:Java学习录Java学习录

Kubernetes一词来源于希腊语,翻译来的意思就是舵手或者船长的意思,而它的logo也是很符合这个词的

至于k8s则是通过将ubernetes这8个字母替换为8而导出的缩写

Kubernetes是什么?

k8s是Google开源的容器集群管理系统(思想来源于谷歌内部系统Borg)。在Docker技术的基础上,为容器化的应用提供以下一系列功能来提高大规模容器集群管理的便捷性:

  • 服务发现
  • 负载均衡
  • 自动发布与回滚
  • 资源调度
  • 弹性伸缩
  • 自动恢复
  • 健康检查
  • 。。。

现在的k8s托管于CNCF基金会,也是CNCF的第一个项目。下面是CNCF的全景图

Kubernetes的架构组成

k8s由 Master 和 Node 两种节点组成,而这两种角色分别对应着控制节点和计算节点

其中最上方是UI和CLI代表了两种操控k8s的方式,即dashboar和命令行方式

Master节点是集群中的控制节点,它是由以下几个独立组件组合而成的

  • 负责 API 服务的 kube-apiserver
    • 提供集群管理的 REST API 接口,包括认证授权、数据校验以及集群状态变更
    • 提供其他模块之间的数据交互和通信的枢纽(其他模块通过 API Server 查询或修改数据
  • 负责调度的 kube-scheduler
    • 公平调度
    • 资源高效利用
    • QoS
    • affinity 和 anti-affinity
    • 数据本地化
    • 内部负载干扰
    • deadlines
    • 负责分配调度 Pod 到集群内的节点上,它监听 kube-apiserver,查询还未分配 Node 的 Pod,然后根据调度策略为这些 Pod 分配节点
    • 调度器需要充分考虑诸多的因素:
  • 负责容器编排的 kube-controller-manager
    • 由 kube-controller-manager 和 cloud-controller-manager 组成,是 Kubernetes 的大脑,它通过 apiserver 监控整个集群的状态,并确保集群处于预期的工作状态
  • 整个集群的持久化数据,则由 kube-apiserver 处理后保存在 Etcd中
  • 分布式存储Etcd
    • 分布式 key-value 存储,可用于服务发现、共享配置以及一致性保障

计算节点上是运行所有业务容器的节点

在 Kubernetes 项目中,每个节点上都运行一个 kubelet 服务进程,默认监听 10250 端口,接收并执行 master 发来的指令,管理 Pod 及 Pod 中的容器。每个 kubelet 进程会在 API Server 上注册节点自身信息,定期向 master 节点汇报节点的资源使用情况,并通过 cAdvisor 监控节点和容器的资源

  • 每台机器上都运行一个 kube-proxy 服务,它监听 API server 中 service 和 endpoint 的变化情况,并通过 iptables 等来为服务配置负载均衡

除了主节点和计算节点还有一些组件是全局通用的

  • 负责整个集群dns服务的CoreDNS
  • 提供跨 Region 跨服务商 K8s 集群服务的集群联邦(Federation)
  • Kubernetes 的命令行工具(CLI)kubectl
Kubernetes的组件通信

以用户需要操作一个pod为例

  1. 当用户在k8s的ui界面或者是通过命令行与APIServer交互
  2. APIServer首先会把用户的命令存储到etcd中
  3. 调度器kube-scheduler会通过watch机制从APIServer获取到需要调度一个pod的信息
  4. kube-scheduler得到信息后根据自身的内存状态进行一次决策,然后再通知到APIServer
  5. APIServer得到kube-scheduler的通知同样先把命令存储到etcd中
  6. 相应节点的kubelet通过watch机制得知需要操作的pod去调用相应的存储插件、网络插件来操作响应的pod
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Kubernetes 入门基础
我们要学习 Kubernetes,就有首先了解 Kubernetes 的技术范围、基础理论知识库等,要学习 Kubernetes,肯定要有入门过程,在这个过程中,学习要从易到难,先从基础学习。
痴者工良
2021/11/24
6070
Kubernetes 入门基础
从入门到跑路之Kubernetes(四)
Kubernetes是Google与RedHat共同主导的开源项目。它主要解决的问题是,编排,调度,容器云,集群管理,同时在不同的发展阶段,Kubernetes需要着重解决的问题是不同的。不过对于大多数的人来说,我们希望Kubernetes项目带来的体验是:现在我有了应用的容器镜像,请帮我在一个给定的集群上把这个应用运行起来。进一步的,它还需要给我提供路由网管、水平扩展、监控、备份、容灾恢复等运维功能。
周萝卜
2019/07/17
5050
从入门到跑路之Kubernetes(四)
Kubernetes动手系列:手把手教你10分钟快速部署集群
Kubernetes 动手系列想通过一系列动手的 demo ,来帮助读者快速的理解上手 Kubernetes 一些运行机制。会包括如下内容:
CNCF
2020/11/09
7890
Kubernetes动手系列:手把手教你10分钟快速部署集群
kubernetes第一章:基础
Kubernetes (音 kubə'netis) 这个名字来自希腊语,意思是「舵手」或「领航员」,它是一个起源于 Google 的开源项目,允许自动化部署、管理和扩容容器化应用,它现在已成为容器编排的事实标准。
用户8639654
2021/08/05
2990
k8s架构与组件详解
k8s系统在设计是遵循c-s架构的,也就是我们图中apiserver与其余组件的交互。在生产中通常会有多个Master以实现K8s系统服务高可用。K8s集群至少有一个工作节点,节点上运行 K8s 所管理的容器化应用。
你大哥
2021/10/11
4K0
k8s架构与组件详解
Kubernetes工作原理概述
刚接触Kubernetes时很容易被它繁多的概念(POD,Service,Deployment …)以及比较复杂的部署架构搞晕,本文希望能通过一个简单的例子,讲解Kubernetes最基本的工作原理。
mazhen
2023/11/24
3020
Kubernetes工作原理概述
认识Kubernates(K8S)
在后端开发中,在介绍Jenkins的可伸缩部署方式上,主要有两种方式:一种是基于Docker(或者docker-swarm 集群)的部署方式,另外一种是基于kubernetes的部署方式(而kubernetes也是基于docker而设计的)。 基本概念 kubernetes是google开源的容器集群管理系统,提供应用部署、维护、扩展机制等功能,利用kubernetes能方便管理跨集群运行容器化的应用,简称:k8s。 基本概念 Pod:若干相关容器的组合,Pod包含的容器运行在同一host上,这些容器使用相
xiangzhihong
2018/02/06
2.9K0
认识Kubernates(K8S)
K8s 系列(一) - 知识图谱
Kubernetes(K8s) 作为当前最知名的容器编排工具,称得上是云原生(Cloud Native)时代的“操作系统”,熟悉和使用它是研发、运维、产品等的必备技能。本篇文章从发展历史、安装运行、资源、存储、网络、安全、管理、未来展望等方面约 680 个知识点概述了 K8s 的知识图谱,旨在帮助大家更好的了解 K8s 的相关知识,为业务、运维、创新打下坚实基础。
astraw99
2021/09/22
1.1K0
K8s 系列(一) - 知识图谱
Kubernetes架构原来这么简单
Kubernetes 也称为 K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统。Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。Google 在 2014 年开源了 Kubernetes 项目。Kubernetes 建立在 Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和实践。
用户1107783
2023/09/14
1.5K0
Kubernetes架构原来这么简单
带着问题学 Kubernetes 架构!
打开这篇文章的同学,想必对 docker 都不会陌生。docker 是一种虚拟容器技术,它上手比较简单,只需在宿主机上起一个 docker engine,然后就能愉快的玩耍了,如:拉镜像、起容器、挂载数据、映射端口等等。
Java技术栈
2020/04/28
5320
003.Kubernetes二进制部署准备
其他更多前置准备见:https://kubernetes.io/zh/docs/setup/independent/install-kubeadm/
木二
2019/11/15
5430
K8s组件介绍
https://kubernetes.io/docs/concepts/overview/components/#cloud-controller-manager
summerking
2022/09/19
4740
K8s组件介绍
kubernetes集群架构解读
摘要: 1. kubernetes总架构图 2. kubernetes 各组件介绍 2.1 Master 节点 Master是kubernetes的大脑,运行的Deamon 服务包括kube-apiserver、kube-scheduler、kube-contronller- manager、etcd和pod网络 2.1.1 各组件介绍 API Server(kube-apiserver) API Server提供HTTP/HTTPS RESTful API,即Kubernetes API。
kubernetes中文社区
2019/06/24
9450
【K8s】专题二:Kubernetes 相关概念
Kubernetes 集群的管理操作单元,包括 Pod、Deployment、Service、ConfigMap、Secrete 等。
行者Sun
2024/09/02
1660
【K8s】专题二:Kubernetes 相关概念
K8s 调度系统由浅入深系列:简介
从CNCF基金会的成立,到Kubernetes社区蓬勃发展,历经6载,17年异军突起,在mesos、swarm等项目角逐中,拔得头筹,继而一统容器编排,其成功的关键原因可概括为以下几点:
CNCF
2021/01/12
9580
K8s 调度系统由浅入深系列:简介
k8s实践(3)--k8s集群安装详解
目前有三种安装方式 第一种是yum安装 使用yum安装,好处是简单,缺点就是要获取最新版需要跟你学yum源,而且所有软件的依赖又不能自己指定,尤其是系统版本比较,使用yum源安装的kubernetes的版本也会受到限制。
黄规速
2022/04/14
9.5K1
k8s实践(3)--k8s集群安装详解
Kubernetes入门之系统架构
Kubernetes简称k8s(也缩写为kube),一个开源的用于自动化部署容器化(主要针对Docker,其它如katacontainers和rkt也支持)应用程序系统,通过分组容器(容器组被命名为Pod,Pod也是Kubernetes的最小调度单元)来调度和管理容器,官方网站:https://kubernetes.io/,本文大量参考了官方的https://kubernetes.io/docs/concepts/、https://kubernetes.io/zh/(官方中文)等。
一见
2020/02/21
1.5K0
Kubernetes入门之系统架构
浅谈Kubernetes
注: CNCF即为云原生计算基金会,是一个开源的软件基金会,致力于云原生技术的普及及可持续发展。许多有名的项目都托管在这个社区当中,包括Docker、Kubernetes。
月梦@剑心
2023/08/31
2470
浅谈Kubernetes
「走进k8s」Kubernetes基本概念和组件(13)
k8s为每个pod分配了唯一的IP地址,一个pod里的多个容器共享pod IP。 pod其实有两种类型:普通的pod和静态pod,后者比较特殊,它并不存放在etcd存储中,而是存放在某个具体的Node上的一个具体文件中,并且只在此Node上启动运行。而普通的pod一旦被创建,就会被放入etcd中存储。随后被master调度到某个具体的Node上并进行绑定,随后该pod被对应的Node上的kubelet进程实例化成一组相关的docker容器并启动起来。 每个pod都可以对其使用的服务器上的计算资源设置限额,当前可以设置限额的源有CPU和memory两种。其中CPU的资源单位为CPU的数量。 一般而言,一个CPU的配额已经算是相当大的一个资源配额,所以在k8s中,通常以千分之一的CPU配额为最小单位,以m来表示,通常一个容器的CPU配额为100-300m,即占用0.1-0.3个CPU。这个配额是个绝对值,不是占比。 在k8s中,一个计算资源进行配额限定需要设定两个参数: requests,资源的最小申请量,系统必须满足要求 limits,资源最大允许使用的量。
IT架构圈
2019/08/08
1.9K0
「走进k8s」Kubernetes基本概念和组件(13)
Kubernetes 集群搭建
上一篇文章,我们介绍和对比了 Docker Swarm 和 Kubernetes:
用户3147702
2022/06/27
1.6K0
Kubernetes 集群搭建
相关推荐
Kubernetes 入门基础
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档