Hello,Kubernetes

什么是Kubernetes

Kubernetes(k8s)是一款开源的以容器为中心的,用于跨主机集群自动部署(automating deployment),控制容器扩展/收缩(scaling)和管理容器化应用程序(management of containerized applications)的基础平台。

Kubernetes项目是2014年由Google启动,K8s在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

Kubernetes一词源自希腊语,意思是舵手或飞行员,并且是总督或控制论的根源。(The name Kubernetes originates from Greek, meaning “helmsman” or “pilot”, and is the root of “governor” and “cybernetic”)。K8s是将中间的8个字母用8来简写的结果。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值