Hello,Kubernetes
什么是Kubernetes
Kubernetes(k8s)是一款开源的以容器为中心的,用于跨主机集群自动部署(automating deployment),控制容器扩展/收缩(scaling)和管理容器化应用程序(management of containerized applications)的基础平台。
Kubernetes项目由Google于2014年启动,建立在Google 十五年的大规模生产环境管理经验之上,再结合社区中的最好想法进行实践。
- 规模庞大(Planet Scale):k8s与Google每周运行数十亿个容器平台采用相同的设计原则,使得你的应用在不断扩展时不用扩充你的ops团队;
- 永不过时(Never Outgrow):无论是本地测试还是应用在国际企业,k8s的灵活性能都能满足你任何复杂的需求,让你始终如一、轻松地提供应用服务;
- 随处运行(Run Anywhere):k8s是开源的,你可以随意地将它运行在公有云、私有云、混合云( hybrid,)、多云(multi-cloud)环境之上。
Kubernetes功能
自动配载(Automatic binpacking):在保证应用服务可用前提下,每个容器所占用资源会根据实际情况与配置约束进行自动分配;
自我修复(Self-healing):如果容器出错,在尝试重启失败后它将会被替换与重新编排;k8s也会自动关闭由你定义为“不健康”的容器;只有“健康”的容器才会被用于提供应用服务;
横向扩展(Horizontal scaling) : 可以通过一个简单的指令、界面操作或CPU使用情况,来控制你的应用程序扩展或收缩;
服务发现与负载均衡(Service discovery and load balancing):无需修改你现有的应用程序便可使用“服务发现”;k8s为容器提供了一个虚拟网络环境,每个容器拥有独立的IP地址与DNS名称,使得他们之间可以相互访问,提供了负载均衡的基础。
自动部署与回滚(Automated rollouts and rollbacks):k8s支持滚动更新模式,能逐步替换当前环境的应用程序与配置,同时检测整体应用服务运行情况,以确保不会在同一时刻终止所有容器,导致服务瘫痪;如果在部署过程出现问题,k8s将会回滚本次部署所有操作。
安全与配置管理(Secret and configuration management):在容器镜像与异常信息堆栈中不会暴露你的部署信息、更新秘钥以及应用程序配置。
存储编排(Storage orchestration):k8s能挂接到你所选的存储系统,无论是本地存储、网络存储、云端存储都支持。(如:GCP\AWS\NFS\iSCSI\Gluster\Ceph\Cinder\Flocker)
批处理(Batch execution):除了服务以外,k8s还能管理你的批处理与“CI workloads”;如果有需要可以在容器出错时执行你的批处理指令。
为什么用容器(containers)
传统的部署方式是将应用程序直接安装到机器上(Applications on host),并且操作系统需要安装配置一大堆的相关组件。这将会导致应用程序、配置文件、相关组件、操作系统互相依赖纠结不清,为下次的更新部署带来极大不便。后来有虚拟化技术的出现,可以预先制作虚拟机镜像来实现发布与回滚,但VM是重量级的技术,非常厚重。
新的部署方式是基于操作系统虚拟化技术(无需硬件支持)将应用程序打包到容器当中(Deploy containers),每个容器拥有自己的文件系统与运行环境,不同容器之间进程隔离,容器所获取的运算资源也可实现控制。容器的构建与虚拟机镜像相比更加简单,并且容器镜像的运行环境与宿主机器的架构环境、文件系统无关,所以它能实现跨云和跨操作系统分发。
由于容器的体积小加载速度快,所以在规划打包时可以让一个应用程序打成一个容器镜像。这种一对一打包方式能充分释放容器技术的威力。如果不同应用程序之间需要一个一致的基础环境,可以在构建/发布应用程序容器镜像前准备一个容器镜像底包(immutable Container images)。相对于虚拟机镜像,容器镜像的更加透明与易于控制管理,更总要的是容器的生命周期是由外层控制器监控,而非通过注入进程到容器内部进行监控。
容器技术的优势
- 敏捷的创建与部署(Agile application creation and deployment)
- 持续式开发、集成与部署(Continuous development, integration, and deployment)
- dev与ops职能分离(Dev and Ops separation of concerns)
- 统一开发、测试、生产环境(Environmental consistency across development, testing, and production)
- 可在单机与云之间移植(Cloud and OS distribution portability)
- 以应用为中心的管理(Application-centric management)
- 松耦合、分布式、弹性计算,释放微服务(Loosely coupled, distributed, elastic, liberated micro-services)
- 资源隔离(Resource isolation)
- 质量利用(Resource utilization)
谁在用Kubernetes
Hello,Kubernetes的更多相关文章
- [笔记]kubernetes 无法启动问题
在启动kubernetes的时候报错误. ERROR: timed out for http://localhost:4001/v2/keys/ 原因是无法启动etcd, etcd 监听4001本地端 ...
- 基于Kubernetes在AWS上部署Kafka时遇到的一些问题
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 交代一下背景:我们的后台系统是一套使用Kafka消息队列的数据处理管线 ...
- 基于Python+Django的Kubernetes集群管理平台
➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...
- Docker中部署Kubernetes
Kubernetes为Google开源的容器管理框架,提供了Docker容器的夸主机.集群管理.容器部署.高可用.弹性伸缩等一系列功能:Kubernetes的设计目标包括使容器集群任意时刻都处于用户期 ...
- kubernetes部署Fluentd+Elasticsearch+kibana 日志收集系统
一.介绍 1. Fluentd 是一个开源收集事件和日志系统,用与各node节点日志数据的收集.处理等等.详细介绍移步-->官方地址:http://fluentd.org/ 2. Elastic ...
- kubernetes 文档
kubernetes 官方文档:http://kubernetes.io/docs/ null
- kubernetes 1.4.5集群部署
2016/11/16 23:39:58 环境: centos7 [fu@centos server]$ uname -a Linux centos 3.10.0-327.el7.x86_64 #1 S ...
- kubernetes单机板
参考地址: *** http://blog.csdn.net/carter115/article/details/51121223 ** http://www.cnblogs.com/dongdong ...
- 一次kubernetes资源文件创建失败的排查
今天在jenkins中创建kubernetes的rc时,检查目标yaml文件时报出如下错误: + /opt/jenkins/kube/kubectl -s http://10.xx.xx.xx:808 ...
- kubernetes&tensorflow
谷歌内部--Borg Google Brain跑在数十万台机器上 谷歌电商商品分类深度学习模型跑在1000+台机器上 谷歌外部--Kubernetes(https://github.com/kuber ...
随机推荐
- MVC 视图-模型,动态更新
<!DOCTYPE html> <html> <head> <title>Binding</title> <script src=&q ...
- 多因子降维法(MDR,multifactor dimensionality reduction)
多因子降维法(MDR,Multifactor Dimensionality Reduction ) MDR是近年统计学中发展起来的一种新的分析方法.其中,“因子” 即交互作用研究中的变量,“维” 是指 ...
- EhLib DBGridEh组件在Delphi中应用全攻略总结(转)
EhLib DBGridEh组件在Delphi中应用全攻略总结(转) http://blog.sina.com.cn/s/blog_94b1b40001013xn0.html 优化SQL查询:如何写出 ...
- leetcode难度及面试频率
转载自:LeetCode Question Difficulty Distribution 1 Two Sum 2 5 array sort set ...
- 必应地图api文档,微软必应地图web开发版详解,可以在国内使用国外地图
最近,公司项目要求在页面中嵌入地图,需求还算简单,但是由于必须具备响应式(主要是pc和移动端),而且由于公司业务是全球性的,要支持国外地点搜索.考虑到百度,腾讯,高德等等国内地图无法显示国外数据,谷歌 ...
- Javascript/js的相等和不等运算符(= 、== 、===)
"=="和"==="运算符用于比较两个值是否相等,当然它们对相等的定义不尽相同.两个运算符允许任意类型的操作数,如果操作数相等则返回tru,否则返回false. ...
- 基於tiny4412的Linux內核移植 --- 实例学习中断背后的知识(1)
作者:彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台 tiny4412 ADK Linux-4.9 概述 前面几篇博文列举了在有设备树的时候,gpio中断的 ...
- 在C++中反射调用.NET(三)
在.NET与C++之间传输集合数据 上一篇<在C++中反射调用.NET(二)>中,我们尝试了反射调用一个返回DTO对象的.NET方法,今天来看看如何在.NET与C++之间传输集合数据. 使 ...
- 获取Pid
Java程序中获取当前进程的进程ID 标签: javainterfacesystemcompilationjvmjni 2011-12-29 16:31 15182人阅读 评论(2) 收藏 举报 分 ...
- Professional C# 6 and .NET Core 1.0 - 38 Entity Framework Core
本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - 38 Entity Framework ...