`
m635674608
  • 浏览: 5028759 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Kubernetes 容器编排

 
阅读更多

对于Docker编制框架来说,Kubernetes 是最强的竞争者之一,这在版本1.2之后更是如此。如果你正在寻找一种部署 Docker 容器到你的任一环境中的方法,Kubernetes给你至少7个选择它的理由。

Deployments

在K8S1.1中默认设置中,Deployments是alpha版。在1.2中,当你开启一个新的集群的时候,Deployments功能开启beta版,被认为是稳定的,并且可以运行。

为什么在K8S1.1中部署程序显得有些乏味 (点击这里阅读更多信息: 点击 ),在这里我就不赘述具体细节了,这里的要点是:

  1. 你得自己计算每个部署的唯一值,然后把它放到Replication-Controller定义文件。

  2. 首次创建以及更新已经存在的一个Replication-Controller,你得有不同的进程。

  3. 在你能够通过滚动更新配置一个新的版本后,你得在系统里找一个存在的Replication-Controller。

Deployments开始逐渐取代Replication-Controller/ Rolling-Update程序。Deployments是声明性的,这一点很厉害:就是你不必告诉集群要做什么,你只要声明你想要什么功能,然后集群就会调度所有需要的东西来将它自己呈现出理想状态。不需要你自己计算唯一值,要更新的时候也不再需要自己去寻找存在的配置。

官方介绍指南使用kubectl create创建部署,使用kubectl apply更新部署。但从我的个人经验来看,你可以在上述两个案例中应用,这就意味着你创建和更新的时候不再需要不同程序。

最后一个很棒的部署功能就是支持回滚。K8S1.1中的回滚功能已经通过重新部署旧Replication-Controller完成。在K8S1.2中,当你创建一个配置的时候,你可以使用记录Flag。这样的话,在你需要的任何时候,都会允许你回滚一个配置到目前的版本。

支持多可用性区域

K8S1.2版本之前,K8S最大的缺点之一就是,它缺乏在不同AZs上对延展程序的支持。这就意味着你的集群只存活在单个的AZ上,万一这个AZ出什么故障,你会失去你整个的集群。要handle这些故障的唯一办法就是管理多个集群,但是这么做的开销是在无法负担。

K8S1.2带来了Multi-AZ的全力支持。你可以很容易在任何AZ生成节点,调度器能充分意识到不同节点调度你的pods。

虽然在这领域这是一个显著的改进,但是Multi-AZ支持并不适用于K8S及其组件。你的集群仍然存在于一个AZ,如果这个AZ停机你会陷入一种古怪的状态:集群功能齐全但集群不会,这就意味着不能handle部署操作等等。

K8S1.2带来完全支持Multi-AZ的功能。你可以轻松的在任意AZ上复活,而且调度器调度你的pods到不同的节点上的时候对此是了解的。

这个领域中,这是一个了不起的改进,因为支持Multi-AZ 不仅应用于K8S master和它的组件。你的Master在单个的AZ上面也是运行的,如果AZ出了故障,你将会陷入一个不好的状态:集群全都会起作用,但是master却不会,这就意味着想配置这样的操作处理不了。

ConfigMaps & secrets 作为环境变量

K8S1.1有一个通过Secrets存储配置内置选项。但是仍然推荐使用Secrets来存储敏感数据,ConfigMap允许通过更加直接方便的方式来允许我们存储不敏感数据配置。

K8S1.2中一个很棒的调整就是,Secrets和ConfigMap不仅可以作为数据卷(K8S1.1中的唯一选择)使用,而且对于你的定义文件来说,还可以作为环境变量。比加载数据卷和在应用程序上读取文件更加方便,就是为了获取一个简单的配置项目。

Daemon-Sets

拥有一个K8S集群有时让我们忘记我们有集群中还有节点。我们创建容器,但是大多数时候我们甚至不知道他们跑在哪个节点上。

虽然也有那么几次当我们需要处理一些与节点相关的任务的时候是知道的。一个例子就是,一个应用程序从节点收集语句,然后传送他们到一些度量服务器。另一个例子就是,从所有运行在节点上的容器那里收集所有日志,然后发送到我们的登录系统。这些例子中,我们需要单个的容器在运行每个节点。

K8S1.1仅仅只是提供给我们静态pods来完成这个目的。为了定义一个静态pod,我们可能不得不在每个节点上的特定文件夹下用pod定义。这显然很不方便因为:

  1. 如果我们想要添加静态pods,我们就不得不警告在集群上运行的每个节点。

  2. 静态pods在本地被kubelet管理,所以我们无法查询API,也无法对他们进行任何别的操作。

K8S1.2介绍了 Daemon-Sets,它会提供给我们一个更加方便的方式在每个节点上运行一个pod。Daemon-Sets里面的pods是可视的,就好像系统里的其他pod一样。你可以删除一个Daemon-Set,然后通过API创建你想要的Daemon-Sets。不需要改变节点上的文件了。

集群大小和性能

集群大小对于一个公司来说是一个很重要的问题,它有着决定核心基础设施的权利。我们此刻永远也不会知道我们会在一年后规模变得多大,但是我们需要百分之百确定的是,我们现在选择的工具以后不会限制我们。

官方新发布的1.2版本每个集群支持1000个节点,同时支持30000个pod同时运行。

然而这些数字可能是好的也可能是坏的(取决于你的主观意愿),查看团队运行到了什么进程是鼓舞人心的,1.2相比1.1发布版已经有了一个X10的缩放改善。

期待在1.3上看到一个更高的数字。

Jobs

Jobs允许你运行pods,以及成功完成一定数量的pods。在K8S1.1中,我们可以创建裸pods(没有Replication-Controller),但是这些pods根本不能保证完成。例如,运行有pod的节点在执行过程中重启,pod就不会在另一个节点被重启。通过验证我们完成的job,上述的情况确认不会发生。

虽然这不是一个改变世界的功能,但是绝对是一个有用的功能!

项目进程

除了上文描述的功能和改进,你很容易觉察到1.1版本后的巨大进步。每个issue就是几个小时的问题,而且由拥有者优先化。等待良久的功能即将实现。越来越多的贡献者正在加入这个大派对,通过提交代码帮助改善这个项目,扩大以及讨论这些issue。这大概就是我最喜欢使用的OSS项目之一了。

 

来自: https://segmentfault.com/a/1190000005020508

 

http://www.open-open.com/lib/view/open1461806367305.html

分享到:
评论

相关推荐

    5-11 kubernetes容器编排技术原理和案例应用.pdf

    Kubernetes容器编排技术原理和案例应用 Kubernetes容器编排技术原理和案例应用是当前容器编排技术的主流解决方案之一。Kubernetes是一个自动部署、扩展和管理容器化应用的开源系统。Kubernetes提供了一个高效、可靠...

    RHCE9认证之Kubernetes容器编排工具学习笔记

    RHCE9 认证之 Kubernetes 容器编排工具学习笔记 Kubernetes 是 Google 公司开源的容器编排工具,提供了自动部署、扩展、管理和维护容器的功能。Kubernetes 的核心概念包括 Pod、ReplicaSet、Deployment、Service 和...

    驾驭容器化浪潮:Linux中Kubernetes容器编排实战指南

    Linux是一种开源的、基于Unix的操作系统内核,由林纳斯·托瓦兹(Linus Torvalds)在1991年首次发布。它遵循自由软件和开源开发的原则,任何人都可以自由地使用、修改和分发Linux内核。Linux内核是操作系统的核心...

    k8s:Kubernetes容器编排的配置

    8秒Kubernetes容器编排的配置。 通过kubectl apply -f应用于运行中的k3s集群。 有关安装k3的信息,请参见 k3s。 这些通常将是以下类型的Helm图表资源定义: apiVersion: helm.cattle.io/v1kind: HelmChartHelm图表的...

    基于kubernetes容器编排的ctfd平台动态题目靶场插件,支持Web题目以及pwn题部署..zip

    靶场,是指为信息安全人员提供实战演练、渗透测试和攻防对抗等训练环境的虚拟或实体场地。在不同的领域中,靶场扮演着重要的角色,尤其是在网络安全领域,靶场成为培养和提高安全专业人员技能的重要平台。...

    kubernetes容器编排

    Container Orchestration Ecosystem ...Deploy Kubernetes Cluster POD Management Service Controller Multi-host Networking Replication Controller/Deployment Persistent Storage Kubernetes Security

    Docker与Kubernetes:容器编排与管理.rar

    容器编排的必要性 使用Kubernetes编排Docker容器 实战案例 部署简单的Web应用 使用Kubernetes实现蓝绿部署 高级特性与优化 Docker网络与存储 Kubernetes服务与Ingress 性能优化与资源管理 Docker基础 Docker简介 ...

    4-11-搭建Kubernetes容器集群管理系统-随堂笔记.pdf.pdf

    随着云计算和容器技术的兴起,Kubernetes已经成为容器编排领域的领导者,被广泛应用于各种云平台和企业IT环境。 Kubernetes系统的核心组件包括: 1. Master节点:这是Kubernetes集群的控制平面,负责整个集群的...

    docker视频教程零基础实战Kubernetes Swarm容器编排k8s CICD部署

    docker视频教程零基础实战Kubernetes Swarm容器编排k8s CICD部署

    kubernetes 容器 云平台 实践

    ### Kubernetes容器云平台实践知识点 #### Kubernetes背景与重要性 Kubernetes是一种开源的容器编排平台,用以自动化部署、扩展和管理容器化应用程序。它在2014年从Google发起,并于2015年成为云原生计算基金会...

    企业容器平台架构及容器技术实践.docx

    美团容器平台的基本架构是基于OpenStack的调度系统和Kubernetes容器编排系统的。 三、容器遇到的问题 在容器技术的实践中,美团遇到了很多问题,如容器的隔离、稳定性、性能和安全性等。为了解决这些问题,美团...

    devops with kubernetes原版无水印

    本书名为《DevOps with Kubernetes》,是一本专注于介绍如何将DevOps实践与Kubernetes容器编排系统结合起来,以加速软件交付过程的技术书籍。这本书主要面向DevOps从业者,旨在帮助他们理解和掌握在Kubernetes环境下...

    2021年云原生行业关于微服务研究报告

    2. 容器技术的发展:自2008年谷歌引入cgroups容器技术后,Docker社区在2013年出现,随后Kubernetes容器编排项目在2014年发布,推动了容器生态的全面升级。 3. 容器与虚拟化技术:容器技术是虚拟化技术的新发展,它...

    容器编排系统Kubernetes-Mesos.zip

    Kubernetes 是一套开源容器编排系统,负责管理各类利用Docker容器构建而成且跨越多台主机的应用程序。尽管最初该项目由谷歌公司所建立,不过其目前已经转由云原生计算基金会负责推动。Mesosphere 自其诞生以来一直...

    腾讯云容器服务基于kubernetes的应用编排实践-final

    腾讯云容器服务基于kubernetes的应用编排实践-final腾讯云容器服务基于kubernetes的应用编排实践-final

    Kubernetes容器集群管理系统搭建指南:从零到集群的全面部署

    本指南详细介绍了如何搭建一个Kubernetes容器集群管理系统,帮助开发者和运维人员构建一个高效、稳定的容器编排环境。Kubernetes作为当今最流行的容器管理平台,广泛应用于云原生应用程序的部署和管理。通过本手册,...

    构建微服务云原生应用_云原生架构和 Kubernetes 容器云部署.zip

    接下来,我们讨论 Kubernetes,这是一个开源的容器编排系统,用于自动化容器化的应用部署、扩展和管理。Kubernetes 提供了以下核心功能: 1. 集群管理:将多台服务器组织成一个集群,为容器提供共享资源。 2. 容器...

    构建微服务云原生应用_云原生架构和 Kubernetes 容器云部署.pdf

    Kubernetes 是一个容器编排系统,提供了自动部署、扩展、管理和维护容器化应用程序的功能。Kubernetes 的架构主要包括: * Master Node:负责管理整个集群的节点 * Worker Node:负责运行容器的节点 * kubelet:...

    基于分布式缓存加速容器化深度学习的优化方法.docx

    为了更好地支持这一趋势,云计算领域,特别是云原生技术,如Docker容器技术及Kubernetes容器编排技术,成为了现代软件开发、交付和运维的标准工具。 #### 二、面临的挑战与机遇 1. **深度学习训练的高计算需求**:...

    Kubernetes容器集群管理 完整清晰版 书籍

    Kubernetes因其强大的功能和稳定的性能,已经成为容器编排领域的领导者。 Kubernetes的核心功能包括自动化容器部署、容器缩放、负载均衡、服务发现、自动回滚、容器健康检查、资源监控和日志管理等。这些功能共同...

Global site tag (gtag.js) - Google Analytics