跳转到正文
型号与参数核对
联系业务人员

Kubernetes为什么如此受欢迎?

在撰写本文时,Kubernetes已有大约6年的历史。在过去的两年中,其受欢迎程度持续上升,成为最受欢迎的平台之一。今年,它成为第三大最受欢迎的平台。如果您还没有听说过Kubernetes,那么它是一个可以运行和协调容器工作负载的平台。容器最初是Linux内核进程隔离结构,包括2007年的cgroup和2002年的命名空间。自2008年LXC推出以来,容器就变得越来越重要,并且Google还开发了自己的内部“在容器中运行所有内容”。机制叫做博格。快进到2013年,当Docker发布时,它完全普及了容器。 Mesos是当时协调容器的主要工具,但并未得到广泛采用。 Kubernetes于2015年发布,并迅速成为容器编排的事实上的标准。为了了解Kubernetes的受欢迎程度,让我们考虑一些问题。开发人员最后一次商定部署生产应用程序的方式是什么时候?您知道有多少开发人员开箱即用地运行工具吗?有多少云运营工程师不了解当今的应用程序如何工作?答案将在本文中探讨。基础架构就是YAML从Puppet和Chef的世界的角度来看,Kubernetes的一个重大变化是从作为代码的基础架构转变为作为YAML的基础架构。 Kubernetes中的所有资源,包括Pod,配置,部署,数据量等,都可以由YAML文件简单地表示。例如:apiVersion:v1种类:Pod元数据:名称:网站标签:应用程序:Web规范:容器:名称:前端图像:nginx端口:-containerPort:80通过这种格式,不需要使用DevOps或SRE Python,用诸如Ruby或JavaScript之类的编程语言编写代码可以更轻松,更全面地表达其工作量。使用基础结构作为数据的其他好处包括:GitOps或Git操作版本控制。这样,您可以将所有Kubernetes YAML文件保存在Git存储库下,这样您就可以准确知道何时进行了更改,进行了哪些更改以及进行了哪些更改。这使整个组织更加透明,避免了成员在哪里需要找到他们所需要的东西的模棱两可,并提高了效率。同时,通过合并合并请求,更容易自动对Kubernetes资源进行更改。可扩展性。将资源定义为YAML使得集群运营商很容易更改Kubernetes资源中的一个或两个数字以更改缩放行为。 Kubernetes具有Pod级自动缩放控制器,可帮助您确定特定部署所需的最小和最大Pod数量,以便能够处理低流量和高流量时间。例如,如果您正在运行的部署可能由于流量的突然增加而需要更多容量,则可以将maxReplicas从10更改为20:apiVersion:autoscaling / v2beta2种类:Horizo​​ntalPodAutoscaler元数据:名称:myapp命名空间:默认规范:scaleTargetRef :apiVersion:apps / v1种类:部署名称:myapp-deployment minReplicas:1 maxReplicas:20指标:-类型:资源资源:名称:cpu目标:类型:Utilization averageUtilization:50安全和控制。 YAML是验证Kubernetes中部署了什么以及如何部署的一种好方法。例如,就安全性而言,主要关注的问题之一是工作负载是否以非root用户身份运行。我们可以使用诸如conftest(一种YAML / JSON验证器)和Open Policy Agent(一种策略验证器)之类的工具来检查您的工作负载的SecurityContext是否允许容器以root身份运行。为此,用户可以使用简单的OPA rego策略,例如:package main deny [msg] {input.kind =“ Deployment”不是input.spec.template.spec.securityContext.runAsNonRoot = true msg =“容器不能以root身份运行”}云提供商集成。技术行业的主要趋势之一是在公共云提供商中运行工作负载。借助云提供商组件,Kubernetes允许每个集群与其正在运行的云提供商进行集成。例如,如果用户在AWS的Kubernetes中运行某个应用程序,并且希望该应用程序可以通过服务进行访问,则云提供商可以帮助自动创建LoadBalancer服务,该服务将自动配置Amazon Elastic Load Balancer来转发流量。应用程序窗格。