Kubernetes开发环境以减少开发时间



我是DevOps和Kubernetes的新手,正在设置本地开发环境。为了进行无栏的部署,我想保持开发环境与部署环境尽可能相似。因此,为此,我将Minikube用于单节点群集,这解决了我的很多问题,但据我所知,现在,开发人员需要进行关注以查看更改:

  1. 本地写一个代码,
  2. 创建一个容器映像,然后将其推到容器寄存器
  3. 将Kubernetes配置应用于更新的容器图像

但是,这种方法的主要问题是较高的开发时间,您能否提出一些更好的方法,我可以看到实时的变化?

官方的Kubernetes博客列出了几个 CI/CD DEV工具用于构建基于Kubernetes的应用程序:https://kubernetes.io/blog/blog/2018/05/05/01/01//

但是,正如其他人提到的那样,通过CI/CD的开发方法,开发周期可能会变慢得多。因此,我和一个同事开始了Devspace CLI。它使您可以在Kubernetes内部创建一个DevSpace,可让您直接终端访问和实时文件同步。这意味着您可以将其与任何IDE一起使用,甚至可以使用热重新加载工具,例如nodejs。

github上的devspace cli:https://github.com/covexo/devspace

<<div>

我害怕我很害怕是如果您想在Kubernetes中拥有适当的CI/CD环境,则实际上是强制性的。由于容器的短暂性质,因此在容器中执行热个子的固定件是强烈灰心的,因为它们随时可能消失。

有诸如Helm或Kubecfg之类的工具可以帮助您第三步

将Kubernetes配置应用于更新的容器图像

他们允许版本控制和部署升级。您仍然需要学习如何使用,但它们具有无数的优势。

想到的另一个选择(没有Kubernetes)是将开发容器与Docker一起使用。在这种容器中,您的代码在卷中,因此更容易测试更改。在最坏的情况下,您只需要重新启动容器。

开发容器的示例(由Bitnami)(https://bitnami.com/containers):

  • https://github.com/bitnami/bitnami-docker-express
  • https://github.com/bitnami/bitnami/bitnami-docker-laravel
  • https://github.com/bitnami/bitnami/bitnami-docker-rails
  • https://github.com/bitnami/bitnami-docker-symfony
  • https://github.com/bitnami/bitnami-docker-codeigniter
  • https://github.com/bitnami/bitnami-docker-java-play
  • https://github.com/bitnami/bitnami-docker-swift
  • https://github.com/bitnami/bitnami-docker-tomcat
  • https://github.com/bitnami/bitnami/bitnami-docker-python
  • https://github.com/bitnami/bitnami-docker-node

我认为,在组件开发过程中使用docker/kubernetes是错误的方法,完全是因为这种缓慢的开发周期。我只会像以前那样开发(例如,在IDE或本地应用程序服务器中运行组件),并且仅构建图像并在我准备好部署的东西后就在生产环境中开始对其进行测试。我仅使用本地Docker容器或我们的Kubernetes开发环境,用于当前开发组件所依赖的运行组件:这可能是数据库,其他微服务,或其他任何内容。ans">

在Jenkins X Project上,我们是使用DevPods进行快速开发的忠实拥护者 - 这基本上意味着您在与CI/CD完全相同的Kubernetes群集内部编译/测试/运行代码完全相同的工具(Maven,Git,Kubectl,Helm等)。

这使您可以使用您选择的桌面IDE,而所有开发人员都可以使用完全相同的操作系统,容器和图像用于开发工具。

我确实喜欢Minikube,但是开发人员经常遇到试图使其运行的问题(通常与Docker或虚拟化问题有关)。再加上许多开发人员笔记本电脑不足以在Minikube内部运行大量服务,并且它的行为与您的真实群集的行为总是不同的 - 此外,开发人员的工具和操作系统通常与CI/CD和CLUSTER中的运行情况非常不同。

这是如何通过DevPods实时开发在Kubernetes上自动化您的CI/CD的演示,以展示所有工作方式

参与KubernetesDocker的时间并不长,但据我所知,我认为这是了解是否可能以及如何对您的应用程序进行扩展的第一步。

kubernetes不是创建Docker映像的工具,它只是通过Docker绘制预先构建的图像。

Udemy中有很多有用的课程,包括该课程。https://www.udemy.com/docker-and-kubernetes-the-complete-guide/

最新更新