kubernetes概述
kubernetes面世不过短短几年时间,kuberenetes已经成为容器编排领域事实上的标准,无论是公有云,私有云或混合云,kubernetes都将作为一个为任何应用,任何环境提供容器管理框架无处不在。
简述什么是kubernetes?
kubernetes(来自希腊语,意为什“舵手”或“飞行员”)由Joe Beda,Brendan Burns和Craig McLuckie创立,而后Google的其他几位工程师等共同研发,并由google在2014年首次对外宣布,kubernetes的开发和涉及深受Google内部系统Borg的影响,事实上,它的许多顶级贡献者之前也是Borg系统的开发者。
Borg是Google内部使用的大规模集群管理系统,它构建于容器技术之上,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用最大化,2015年4月,borg论文伴随kubernetes宣传被Google首次公开。
事实,正是容器世家Google,并站在borg巨人的肩膀上,充分受益 于Borg过去数十年积累的经验和教训,kubernetes一面世受到关注和青睐,并迅速称霸容器编排技术领域,很多人将kubernetes视为borg系统的一个开源实现版本,在Google内部,kubernetes的原始代号曾经是serven of Nine即星际迷航中友好的Borg角色,它标识中的舵轮有7个轮辐就是对该项目代号的致意。
kubernetesv1.0在2015年7月21发布,紧随其后,Google与linux基金会合作组建了Cloud Native Computing Foundation (云原生计算基金会简称CNCF)并将kubernetes作为核心技术对其提供。在此以后,kubereetes进入了版本快速迭代时期,,从此不断融入了新功能,如Federation,Network Policy API,RBAC,CRD和CSI,等等,增加了对windows系统的支持。

kubernetes特点:
kuberentes是一种由于在一组主机上运行和协通容器化应用程序的系统,旨在提供可预测可扩展性与高可用的方法来管理容器化应用程序和服务的生命周期的平台,用户可以定义应用程序的运行方式,以及与其他应用程序或外部世界交互的途径,并能实现服务的扩容和伸缩,执行平滑滚动更新,以及在不同版本的应用程序之间调度流量以及测试功能或者回滚有问题的部署,kuberentes提供了接口和可组合的平台。使得用户能够以高度的灵活性和可靠性定义以及管理应用程序。
有以下特点:
1.自动装箱
2.自我修复(自愈)
3.水平扩展
4.服务发现和负载均衡
5.自动发布和回滚
6.密钥和配置管理
7.存储编排
8.批量处理执行


kubernetes集群的核心组件
一个典型的kubernetes集群由多个工作节点和一个集群控制平面即Master来组成。
Master组件:kubernetes的集群控制平面由多个组件组成。这些组件统一运行单一的master节点,也可以以多副本的方式同时运行在多个节点,以为master提供高可用功能,甚至可以运行在kubernetes集群之上,master主要包含以下几个组件。
kube-apiserver:Kubernetes API server 为 api 对象验证并配置数据,包括 pods、 services、
replicationcontrollers 和其它 api 对象,API Server 提供 REST 操作和到集群共享状态的前端,
所有其他组件通过它进行交互。 kube-controller-manager:Controller Manager 作为集群内部的管理控制中心,负责集群内的
Node、Pod 副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、
资源定额(ResourceQuota)的管理,当某个 Node 意外宕机时,Controller Manager 会及时发
现并执行自动化修复流程,确保集群始终处于预期的工作状态。 kube-scheduler: 是一个拥有丰富策略、能够感知拓扑变化、支持特定负载的功能组件,它对
集群的可用性、性能表现以及容量都影响巨大。scheduler 需要考虑独立的和集体的资源需
求、服务质量需求、硬件/软件/策略限制、亲和与反亲和规范、数据位置、内部负载接口、
截止时间等等。如有必要,特定的负载需求可以通过 API 暴露出来。 etcd etcd key-value,只有master可以访问
etcd是CoreOS公司开发目前是kubernetes默认使用的key-value数据存储系统,用于保存所有集群数据,支持分布式集群功能,生产环境使用需要为etcd数据提供定期备份机制。 Node节点: kube-proxy::Kubernetes 网络代理运行在 node 上,它反映了 node 上 Kubernetes API 中定
义的服务,并可以通过一组后端进行简单的 TCP、UDP 流转发或循环模式(round robin))
的 TCP、UDP 转发,用户必须使用 apiserver API 创建一个服务来配置代理,其实就是 kubeproxy 通过在主机上维护网络规则并执行连接转发来实现 Kubernetes 服务访问。 kubelet:是主要的节点代理,它会监视已分配给节点的pod功能如下:
向master汇报node节点的状态信息
接受指令并在pod中创建docker容器
准备pod所需要的数据卷
返回pod的运行状态
在node节点执行容器健康检查 容器运行时环境
每个 容器都要提供一个容器运行时环境,它复制下载镜像并运行容器,kubelet并未固定链接至容器运行时的环境,而是以插件的方式载入配置的容器环境。
 

一文读懂什么是kubernetes?的更多相关文章

  1. 一文读懂 TKE 及 Kubernetes 访问权限控制

    你有了解过Kubernetes的认证授权链路吗?是否对TKE的权限控制CAM策略.服务角色傻傻分不清楚?本文将会向你介绍腾讯云TKE平台侧的访问控制.Kubernetes访问控制链路,以及演示如何将平 ...

  2. kubernetes基础——一文读懂k8s

    容器 容器与虚拟机对比图(左边为容器.右边为虚拟机)   容器技术是虚拟化技术的一种,以Docker为例,Docker利用Linux的LXC(LinuX Containers)技术.CGroup(Co ...

  3. 一文读懂HTTP/2及HTTP/3特性

    摘要: 学习 HTTP/2 与 HTTP/3. 前言 HTTP/2 相比于 HTTP/1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何 ...

  4. 一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现

    一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现 导读:近日,马云.马化腾.李彦宏等互联网大佬纷纷亮相2018世界人工智能大会,并登台演讲.关于人工智能的现状与未来,他们提出了各自的观点,也引 ...

  5. 一文读懂高性能网络编程中的I/O模型

    1.前言 随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力.本文(和下篇<高性能网络编程(六):一文读懂高性能网络编程中的线程模型>)旨在为大家提供有用的 ...

  6. 从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路

    本文原作者阮一峰,作者博客:ruanyifeng.com. 1.引言 HTTP 协议是最重要的互联网基础协议之一,它从最初的仅为浏览网页的目的进化到现在,已经是短连接通信的事实工业标准,最新版本 HT ...

  7. 一文读懂 深度强化学习算法 A3C (Actor-Critic Algorithm)

    一文读懂 深度强化学习算法 A3C (Actor-Critic Algorithm) 2017-12-25  16:29:19   对于 A3C 算法感觉自己总是一知半解,现将其梳理一下,记录在此,也 ...

  8. [转帖]MerkleDAG全面解析 一文读懂什么是默克尔有向无环图

    MerkleDAG全面解析 一文读懂什么是默克尔有向无环图 2018-08-16 15:58区块链/技术 MerkleDAG作为IPFS的核心数据结构,它融合了Merkle Tree和DAG的优点,今 ...

  9. [转帖]一文读懂 HTTP/2

    一文读懂 HTTP/2 http://support.upyun.com/hc/kb/article/1048799/ 又小拍 • 发表于:2017年05月18日 15:34:45 • 更新于:201 ...

随机推荐

  1. flutter--Dart基础语法(三)类和对象、泛型、库

    一.前言 Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,Flutter 开源.免费,拥有宽松的开源协议,支持移动.Web.桌面和嵌入式平台. ...

  2. IntelliJ IDEA 内置数据库管理工具实战

    1. 写在前面 开发Java应用程序,作为明星工具IntelliJ IDEA Ultimate当然是首选,然后进行数据库SQL开发的时候,常常会选择诸如:Navicat , sqlyog, MySQL ...

  3. 【STM32】无法下载程序

    错误: 使用keil MDK向STM32下载时出现各种错误 Internal command error.Error:Flash download failed.  Target DLL has be ...

  4. HttpRunner(1)自我介绍

    前言 首先,我们无论学习哪个框架,都要带着问题,带着思考去学习 思考1:HttpRunner是什么? 思考2:HttpRunner的设计模式是什么? 思考3:为什么我们要学习HttpRunner?他的 ...

  5. zoj2112 Dynamic Rankings (主席树 || 树套树)

    The Company Dynamic Rankings has developed a new kind of computer that is no longer satisfied with t ...

  6. Codeforces 1355 C. Count Triangles

    传送门:C - Count Triangles  题意:给你四个数A,B,C,D,求有多少个三边为x,y,z (A ≤ x ≤ B ≤ y ≤ C ≤ z ≤ D)的三角形. 题解:枚举 x=A~B, ...

  7. linux环境下使用jmeter进行分布式测试

    1.前言 熟练使用jmeter进行性能测试的工程师都知道,jmeter的客户端性能是有点差的.这会导致一个问题,其客户端的性能损耗会干扰到性能测试的结果,而且当线程数/并发大到一定程度时,客户端性能会 ...

  8. Java进阶专题(二十五) 分布式锁原理与实现

    前言 ​ 现如今很多系统都会基于分布式或微服务思想完成对系统的架构设计.那么在这一个系统中,就会存在若干个微服务,而且服务间也会产生相互通信调用.那么既然产生了服务调用,就必然会存在服务调用延迟或失败 ...

  9. 关于TCP状态TIME_WAIT的理解

    1.TIME_WAIT的作用: TIME_WAIT状态存在的理由:1)可靠地实现TCP全双工连接的终止 在进行关闭连接四次挥手协议时,最后的ACK是由主动关闭端发出的,如果这个最终的ACK丢失,服务器 ...

  10. Linux-用户/用户组身份提权

    sudo 身份提权(更安全) su命令在切换用户身份时,如果每个普通用户都能拿到root用户的密码,当其中某个用户不小心泄漏了root的密码,那系统会变得非常不安全. 为了改进这个问题,从而产生了su ...