首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kubernetes开发环境

Kubernetes开发环境
EN

Stack Overflow用户
提问于 2016-11-29 15:08:26
回答 2查看 959关注 0票数 0

日安

我们有一个由6个虚拟机组成的开发环境。目前,我们使用的是Vagrant和Ansible与VirtualBox。正如您可以想象的那样,托管这个环境是维护的噩梦,特别是随着软件/OS版本的改变。更不用说开发人员机器的资源负载了。

我们已经开始将一些虚拟机迁移到docker。但这本身就带来了有关编曲、正确配置、沟通等方面的问题,这让我找到了库伯内特斯。

会不会有人提供一些理由来说明库伯奈特是否会成为这份工作的合适工具?是管理和编排“开发”码头容器的工具。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-30 11:00:54

正如wsl前面提到的,这是一个相当复杂的话题。但我现在也这么做了。因此,让我为你总结一些事情:

使用Kubernetes (k8s),您将编排您的SaaS应用程序。在最好的情况下,它是一个云本机应用程序。云本机应用程序的属性/需求是由云本地计算基金会(CNCF)制定的,该基金会基本上是围绕k8s形成的,是在Google将其捐赠给Linux基金会之后形成的。因此,云本机应用程序的属性/需求是:容器打包、动态管理和面向微服务(cncf.io/about/charter)。如果您的应用程序是基于微服务的,并且每个服务都有一个单独的容器,那么您将主要受益于k8s。

有了基于微服务的应用程序,每个服务都可以独立开发.例如,开发人员只需要遵循12因子方法(12factor.net) (使用env而不是硬编码的IP地址,等等)。

在下一步中,开发人员为服务构建容器,并将其推入容器注册表。对于本地开发环境,您可能还需要在集群中运行容器注册中心,这样开发人员就可以在本地推送和测试他的代码。

然后,您可以定义您的k8s复制-控制器,服务,PetSets等与端口,端口映射,env,容器图像.并在集群中创建并运行它。

k8s文档推荐用于本地(kubernetes.io/docs/getting-started-guides/minikube/).运行k8s的Minikube有了Minikube,你就有了DNS、NodePorts、ConfigMaps和Secrets仪表板等功能。但是,我在博客“查找合适的本地Kubernetes开发环境”( CoreOS https://deis.com/blog/2016/local-kubernetes-development-environment/)中提到,我的开发环境选择了多节点的Vagrant集群的Kubernetes,它更接近于my的生产环境(12因子: 10 - Dev/prod奇偶)。在中,您可以获得如下特性:

  • 法兰绒网络
  • 使用etcd的服务发现
  • 具有SkyDNS的一组容器的DNS名称
  • 内部负载平衡

如果你想知道,在这个Github github.com/coreos/coreos-kubernetes/tree/master/multi-node (流浪者和通用文件夹)中,所有的东西都是如何工作的。

因此,您必须扪心自问,您或您的开发人员是否真的需要在本地运行一个完整的“云环境”。在许多情况下,开发人员可以独立地开发服务(基于微服务和容器)。

但是,有时需要将多个或所有服务作为开发环境运行在本地计算机上。

票数 0
EN

Stack Overflow用户

发布于 2016-11-29 22:28:39

这是一个相当复杂的主题,如果使用k8s作为本地开发环境是值得考虑的很多事情。特别是当我想让我的本地开发人员环境非常接近在Kubernetes上运行的生产环境时,我就使用了它。这有助于避免许多配置错误。

在我看来,Kubernetes(k8s)将为您提供开发环境所需的一切。

它为您提供了很大的灵活性,并且它本身进行了许多配置。很少有例子:

  • 将新版本部署到本地kubernetes堆栈的简单方法

在复制控制器中为每个应用程序模块(请记住它们需要是无状态模块)准备k8s复制控制器文件,您可以指定停靠器映像,仅此而已。使用这种方法,您可以将新的坞映像推送到本地docker_registry,然后使用kubectl控制应用程序的生命周期。

  • 扩展应用程序模块的简单方法

例如:

代码语言:javascript
运行
复制
kubectl scale rc your_application_service --replicas=3

通过这种方式,k8s将检查您为您的服务运行了多少个荚,如果它认识到该数量较小,那么它将创建新的副本值以满足副本的数量。

这是个没完没了的话题,还有很多其他的事情浮现在我的脑海中,但我建议你试一试。

有一个https://github.com/kubernetes/kubernetes/blob/master/docs/devel/developer-guides/vagrant.md项目,用于在流浪者中运行k8s集群。

当然,您必须记住,如果您有许多服务,那么所有这些服务都必须被推送到本地存储库并由k8s运行。这将需要一些时间,但如果您使用一些自定义脚本自动化本地部署,您不会后悔的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40869208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档