Kubernetes概述
什么是Kubernetes?
Kubernetes是一个便携式的、可扩展的开源平台,用于管理容器化的工作负载和服务,这有助于声明式配置和自动化。它有一个巨大的,快速增长的生态系统。Kubernetes的服务、支持和工具被广泛使用。
2014年,谷歌开源了Kubernetes项目。Kubernetes建立在谷歌大规模运行生产工作负载的十年半的经验之上,并结合社区的最 佳思想和实践。
为什么我需要Kubernetes,它能做什么?
Kubernetes有许多特性。它可以被认为是:*一个容器平台*一个微服务平台*一个移动的云平台,还有更多。
Kubernetes提供了一个以容器为中心的管理环境。它代表用户工作负载协调计算、网络和存储基础设施。这提供了许多简单的平台作为服务(PaaS),以基础设施的灵活性作为服务(IaaS),并支持跨基础设施提供商的可移植性。
Kubernetes是怎样一个平台的?
尽管Kubernetes提供了很多功能,但是仍然有一些新的场景会从新特性中受益。应用程序特定的工作流可以简化,以加速开发人员的速度。最初可以接受的特别编排通常需要在规模上实现健壮的自动化。这就是为什么Kubernetes也被设计为构建组件和工具的生态系统的平台,使其更易于部署、扩展和管理应用程序。
标签授权用户组织他们的资源。注释使用户可以用定制的信息来装饰资源,以方便他们的工作流程,并为管理工具提供一种方便的检查点状态的方法。
此外,Kubernetes控制plane是建立在开发人员和用户可用的相同api之上的。用户可以编写自己的控制器,比如调度程序,使用自己的api,这些api可以被通用命令行工具作为目标.
这个设计使许多其他系统能够在Kubernetes之上构建。
Kubernetes不做的事
Kubernetes并不是一个传统的、包罗万象的PaaS(平台作为服务)系统。由于Kubernetes在容器级别而不是在硬件级别上运行,所以它提供了一些通常适用的特性,比如部署、扩展、负载平衡、日志记录和监视。然而,Kubernetes并不是单一的,这些默认的解决方案是可选的和可插入的。Kubernetes为构建开发者平台提供了构建模块,但保留了用户的选择和灵活性。
Kubernetes:
- 不限制所支持的应用程序的类型。Kubernetes的目标是支持极其多样化的工作负载,包括无状态、有状态和数据处理工作负载。如果一个应用程序可以在容器中运行,它应该在Kubernetes上运行得很好。
- 不部署源代码,也不构建应用程序。持续集成、交付和部署工作流是由组织文化和偏好以及技术需求决定的。
- 不提供应用程序级的服务,例如中间件(例如消息总线)、数据处理框架(例如Spark)、数据库(如mysql)、缓存和集群存储系统(例如Ceph)作为内置服务。这样的组件可以在Kubernetes上运行,也可以通过在Kubernetes上运行的应用程序访问,比如开放服务代理。
- 不指定日志、监视或警报解决方案。它提供了一些集成作为概念的证明,以及收集和导出度量的机制。
- 不提供或授权配置语言/系统(例如,jsonnet)。它提供了一个声明性的API,它可以被任意形式的声明性规范作为目标。
- 不提供或采用任何综合的机器配置、维护、管理或自修复系统。
此外,Kubernetes不只是一个编排系统。事实上,它消除了编排的需要。编排的技术定义是执行定义的工作流:首先是a,然后是B,然后是C。相反,Kubernetes由一组独立的、可组合的控制过程组成,这些过程不断地将当前状态驱动到所提供的期望状态。怎么从A到C都不重要。也不需要集中控制。用它得到一个更容易使用、更强大、更健壮、更有弹性和可扩展的系统。
为什么使用容器?
比对以下图片可找到你应该使用容器的理由
部署应用程序的旧方法是使用操作系统包管理器在主机上安装应用程序。这样做的缺点是将应用程序、配置、库和生命周期与主机操作系统纠缠在一起。
新的方法是基于操作系统级虚拟化(而不是硬件虚拟化)部署容器。这些容器彼此隔离,从主机上分离:它们有自己的文件系统,它们不能看到彼此的进程,而且它们的计算资源使用也可以被限制。它们比vm更容易构建,而且由于它们与底层基础结构和主机文件系统之间的解耦,它们在云和OS分布中是可移植的。
因为容器小而快速,所以一个应用程序可以在每个容器映像中打包。这种一对一的应用程序对图像的关系释放了容器的全部好处。使用容器,可以在构建或发布时创建不可变容器映像,而不是部署时间,因为每个应用程序不需要与应用程序堆栈的其余部分组成,也不需要与生产基础设施环境结合。在构建或发布时生成容器映像,可以使一个一致的环境从开发进入生产。类似地,容器比VMs更加透明,这有助于监视和管理。当容器程序的生命周期由基础结构管理而不是由容器内的程序管理器隐藏时,这一点尤其正确。最后,对于每个容器使用单个应用程序,管理容器就等于管理应用程序的部署。
容器的好处摘要:
- 敏捷的创建与部署:与VM镜像使用相比,增加了容器镜像创建的方便性和效率。
- 持续开发、集成和部署:提供可靠和频繁的容器镜像构建和部署,快速和简单的回滚(由于镜像的不变性)。
- Dev和Ops分离的关注:在构建或发布时间而不是部署时间创建应用程序容器镜像,从而将应用程序与基础结构解耦。
- 可观察性:不仅仅是表面的信息和度量,还包括应用程序的健康和其他信号。
- 跨开发、测试和生产的环境一致性:在笔记本电脑上运行和在云中运行一样。
- 可在OS distribution与云之间移植:在Ubuntu、RHEL、CoreOS、on-prem、谷歌Kubernetes引擎和其他任何地方运行。
- 以应用程序为中心的管理:提高抽象级别在虚拟硬件上运行OS以使用逻辑资源在OS上运行应用程序。
- 松散耦合,分布式,弹性,自由的微服务:应用程序被分割成更小的独立的块,并且可以动态地部署和管理,而不是在一个大型的单用途机器上运行一个庞大的整体堆栈。
- 资源隔离: 可预测的应用程序的性能。
- 资源利用: 高效率和密度。
Kubernetes是什么意思?K8s?
Kubernetes这个名字源于希腊语,意思是舵手或领航员,是总督和控制论的根源。K8s是用8来替换“ubernete” 这8个字母而得到的缩写。
本文转自开源中国-Kubernetes概述

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Kubernetes Dashboard集成Heapster
默认安装后的Kubernetes dashboard 如下图所示,是无法图形化展现集群度量指标 信息的: 图形化展示度量指标的实现需要集成k8s的另外一个Addons组件: Heapster 。 Heapster原生支持K8s(v1.0.6及以后版本)和 CoreOS ,并且支持多种存储后端,比如: InfluxDB 、 ElasticSearch 、 Kafka 等,这个风格和k8s的确很像:功能先不管完善与否,先让自己在各个平台能用起来再说^0^。这里我们使用的数据存储后端是InfluxDB。 一、安装步骤 我们的Heapster也是要放在pod里运行的。当前,Heapster的最新stable版本是 v1.2.0 ,我们可以下载其 源码包 到K8s cluster上的某个Node上。解压后,我们得到一个名为”heapster-1.2.0″的目录,进入该目录,我们可以看到如下内容: root@node1:~/k8stest/dashboardinstall/heapster-1.2.0# ls code-of-conduct.md CONTRIBUTING.md docs Gode...
- 下一篇
Kubernetes(k8s)部署安全最佳实践
Kubernetes 提供了很多能够提高应用安全的方法。要进行这些配置,就要掌握 Kubernetes 的相关知识,同时也要清楚的了解安全需求。这里我们关注的安全内容集中在容器的生命周期上:构建、传输以及运行,并且针对 Kubernetes 进行了特别的裁剪。我们 自己的 SaaS 就是运行在 Google Cloud Platform 上的 Kubernetes 中,已经采用了这些最佳实践。 下面是我们对于安全部署 Kubernetes 应用的一些建议。 确保镜像无漏洞 运行带有漏洞的容器会让你的环境身处险境。只要运行中的系统的所有组件都不存在已知漏洞,就能够避免很多被攻击的机会。 安全漏洞的持续扫描 容器中可能有一些过期组件,这些过期组件往往会包含已知漏洞(CVE)。新的漏洞层出不穷,因此对安全漏洞的扫描工作必须持续进行。 适时应用安全更新 一旦在运行的容器中发现了安全漏洞,就该对源镜像进行更新并部署。为了避免破坏镜像和容器的继承性,尽量不要在容器中直接进行更新(例如 apt-update)。 Kubernetes 的滚动更新功能可以渐进式的为运行中的应用更新镜像,这一功能让应用更...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题