Kubernetes是一个开源项目,用于自动化容器的部署,扩展和管理。它已迅速成为运行生产工作负载的标准,周围的社区也很棒! 但是在Kubernetes中进行开发提出了一些挑战。典型的开发工作流程如下:编写代码,构建Docker映像,将其推送到注册表,重新部署,验证更改并重复。这种流程不仅速度缓慢,而且使我们无法从Go工具的标准功能中受益,例如快速增量构建,热重载器或调试器。 OkOkteto(https://github.com/okteto/okteto)创建就是为了解决这个问题。在此博客文章上,我们将向您展示Okteto如何改善Go开发人员在Kubernetes中的开发人员体验。在Kubernetes中直接开发应用程序时,您将能够充分利用诸如go build依赖项缓存,IDE调试器(VS Code,GoLand,Atom…)之类的工具。 步骤1:部署Go Sample App通过执行以下命令来获取Go Sample App的本地版本: $ git clone [https://github.com/okteto/go-getting-started](https://github.com/okteto/go-getting-started) 该k8s.yml文件包含用于部署Go Sample App的Kubernetes清单。通过执行以下命令运行应用程序: $ kubectl apply -f k8s.yml 这很酷!您键入了一个命令,您的应用程序的开发版本仅运行。 步骤2:安装Okteto CLI该Okteto CLI(https://github.com/okteto/okteto)是一个开源项目,可以让你直接在Kubernetes开发应用程序,同时充分利用当地知名的模具。我们将使用它来加快我们的开发周期,而不是使用基于构建docker映像和重新部署容器的典型开发工作流程。 通过运行以下命令来安装Okteto CLI: MacOS / Linux $ curl [https://get.okteto.com](https://get.okteto.com/) -sSfL | sh Windows $ wget [https://downloads.okteto.com/cli/okteto-Windows-x86_64](https://downloads.okteto.com/cli/okteto-Windows-x86_64) -OutFile c:\windows\system32\okteto.exe 步骤3:在Kubernetes中启动您的开发环境部署Go Sample Application后,运行以下命令: $ okteto up 该okteto up命令将启动Kubernetes开发环境,这意味着:
所有这些(以及更多)都可以通过okteto.yml 进行自定义。 要运行该应用程序,请在远程shell程序中执行: okteto> go run main.go 第一次运行该应用程序时,Go会下载您的依赖项并编译您的应用程序。等待此过程完成并通过在本地shell程序中运行以下命令来测试您的应用程序: $ curl localhost:8080 步骤4:直接在Kubernetes中进行开发main.go在您喜欢的本地IDE中打开文件,然后在第17行上将响应消息修改为来自集群的Hello world!。保存您的更改。 func helloServer(w http.ResponseWriter, r *http.Request) { Okteto将您的更改同步到Kubernetes中的开发环境。go run main.go通过按取消从远程Shell 执行ctrl + c。重新运行您的应用程序: okteto> go run main.go 从本地外壳调用您的应用程序以验证更改: $ curl localhost:8080 您的代码更改立即应用于Kubernetes。无需提交,构建或推送! 步骤5:直接在Kubernetes中进行调试Okteto使您可以直接从自己喜欢的IDE调试应用程序。让我们看一下它在VS Code中的工作原理,VS Code是Go开发中最受欢迎的IDE之一。 go run main.go通过按取消从远程Shell 执行ctrl + c。在调试模式下重新运行您的应用程序: okteto> dlv debug --headless --listen=:2345 --log --api-version=2 打开Debug扩展并运行Connect to okteto启动配置: { 在main.go第17行上添加一个断点。通过从本地Shell执行来调用您的应用程序: $ curl localhost:8080 执行将在您的断点处停止。然后,您可以检查请求,可用变量等。 结论Kubernetes有潜力成为一个强大的开发平台,提供可复制的,资源高效的和类似生产的开发环境。我们已经向您展示了如何使用Okteto创建开发工作流程,该工作流程还使您可以在直接在Kubernetes中直接开发应用程序时利用增量构建,热重载器或调试器等功能。 翻译自:https://medium.com/okteto/how-to-develop-go-applications-in-kubernetes-8d733391564c 推荐阅读:苹果7跟苹果8哪个好 (正文已结束) (编辑:喜羊羊) 免责声明及提醒:此文内容为本网所转载企业宣传资讯,该相关信息仅为宣传及传递更多信息之目的,不代表本网站观点,文章真实性请浏览者慎重核实!任何投资加盟均有风险,提醒广大民众投资需谨慎! |