首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

谷歌开发者布道师谈企业中采用Kubernetes的最佳实践

谷歌开发者布道师Ray Tsang在2019 SpringOne平台大会上谈到了开发者在组织中采用Kubernetes时可以使用的工具和最佳实践。

对于应用程序开发人员来说,容器化和采用容器平台(如Kubernetes)已经成为一个挑战。构建容器镜像涉及到Dockerfile,从长远来看,创建和维护它们非常麻烦,而且容易出错。此外,IDE工具对开发和维护基于容器的应用程序的支持一直很差,这通常会减慢整个软件开发周期。

Spring Cloud Kubernetes项目提供了用于访问Kubernetes本地服务的公共接口。该项目的主要目标是为运行在Kubernetes上的Spring Cloud和Spring Boot应用程序提供辅助。

Tsang谈到了TestContainers,一个Java库,支持使用通用数据库、Selenium Web浏览器或其他可以通过Docker容器运行的服务器进行JUnit单元测试。TestContainers让数据访问测试、应用程序集成测试和UI测试变得更加容易。你可以在本地测试大多数基于容器的应用程序组件。

他还谈到了通过了解Java应用程序内存使用情况来避免发生OOM的重要性。Cloud Foundry Java Build Pack Memory Calculator可以用来计算整体的JVM内存配置,确保应用程序在不超过容器内存限制的情况下运行良好,并且不会被回收。

Tsang还提到了之前的一个有关容器最佳实践的演讲,他在演讲中讨论了如何建立和管理容器的最佳实践。比如,不用root用户身份运行容器,并解释了如何确保镜像不会占用太多空间,以及如何避免容器耗尽空间。大多数镜像是以root用户身份运行的,开发人员应该更改这个设置,限制容器的权限。

其他工具包括JibSkaffold,用于快速构建镜像和缩短开发周期。

Jib为没有Docker守护进程的Java应用程序构建优化的Docker和Open Container Initiative (OCI)镜像。它会自动创建Dockerfile,即使没有在本地安装Docker也可以运行。Jib可以作为Maven和Gradle的插件使用,也可以作为Java库使用。

Skaffold是一个命令行工具,用于Kubernetes应用程序的持续开发。它可被用在应用程序的构建、推送和部署的所有工作流步骤中。Skaffold还提供了用于CI/CD管道的构建块和自定义能力。

Tsang还讨论了配置运行在Kubernetes内部的Java应用程序的最佳实践,比如健康检查、零停机部署、外部化配置和日志记录。

原文链接

Ray Tsang on Tools and Best Practices for Kubernetes Adoption

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/6tpm9tsMrQhdc46HmEGM
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券