开源项目推荐
Jib
Jib 无需 Docker 守护进程,也无需深入掌握 Docker 最佳实践,即可为您的 Java 应用程序构建优化的 Docker 和 OCI 映像。它可作为 Maven 和 Gradle 的插件以及 Java 库使用。
Docketeer
Docketeer 提供了一个简单的界面来管理 Docker 资源并可视化主机和容器指标数据以及 Kubernetes 集群数据。Docketeer 是一个容器化应用程序,可以轻松地与应用程序集群一起部署。
Helmify
Helmify 是一个 CLI 工具,用于从 Kubernetes 配置文件生成 Helm charts。它可以将支持的 Kubernetes 对象转换为 Helm chart,并提供了多种使用方式和选项。
DARK
DARK 是一个在 Kubernetes 中将 Grafana 仪表板作为资源定义和部署的工具。它允许用户通过 YAML 文件完整描述和部署 Grafana 仪表板,与监控的服务一起部署。除了仪表板,DARK 还可以管理数据源、API 密钥和警报管理器配置。
文章推荐
横向扩展 Kubernetes 集群 – 2024 年版
这篇文章是关于在 2024 年扩展 Kubernetes 集群的指南。作者首先介绍了文章的背景和目的,即为准备 CKA 考试而部署 Kubernetes 集群。然后,作者详细说明了如何将控制平面节点和工作节点扩展到三个,并强调了保证集群高可用性的重要性。在此过程中,作者涵盖了安装和配置 HAProxy 作为控制平面节点的负载均衡器的步骤,并提供了相应的代码示例。此外,作者还解释了在添加新的控制平面节点之前需要进行的预备工作,例如安装容器运行时、配置系统驱动程序等。最后,作者提供了验证集群状态和节点连接性的方法,并指导如何通过 kubeadm 命令将新的控制平面节点加入集群。整篇文章提供了清晰的步骤和指导,旨在帮助读者扩展和管理他们的 Kubernetes 集群。
在 Docker 容器内设置 Java 堆大小
这篇文章介绍了在 Docker 容器中设置 Java 堆大小的方法。作者指出在生产环境中,将 Java 应用程序运行在容器中可能会遇到一些问题。文章详细解释了 Java 堆大小设置的重要性,并讨论了 JVM 使用的虚拟内存远远超出 Java 堆的范围,包括垃圾收集器、类加载器、JIT 编译器等子系统所需的内存,以及操作系统和本地库所占用的内存。作者指出,在容器中运行 Java 时,如果使用堆内存作为内存消耗的指标,存在着 JVM 应用程序超出 Kubernetes 要求内存限制而被容器终止并重新启动的风险。文章进一步讨论了两种可能导致 OOM 异常的情况,并提供了设置 JVM 参数来避免这些情况发生的建议。最后,作者强调了监控 OOM 发生的重要性,并提供了一些建议来避免 OOM 异常的发生。整篇文章提供了实用的技巧和建议,帮助读者在 Docker 容器中设置合适的 Java 堆大小。