云原生周刊:2024 扩展 K8s 集群指南 | 2024.1.2
开源项目推荐
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 堆大小。
扩展您的 Kubernetes 工具箱:CRD 的力量
这篇文章介绍了如何通过自定义资源定义(CRDs)和自定义控制器扩展 Kubernetes 的功能。它强调了在 Kubernetes 生态系统中将所有内容都作为 Kubernetes 原生对象进行管理的趋势。作者讨论了 CRDs 的概念和用法,并提供了一个示例演示如何创建一个自定义资源和相应的操作器。文章还强调了在开发 CRDs 之前要考虑已有解决方案的可用性以及是否真正需要自定义资源。最后,文章提供了创建自定义资源定义和操作器的实际步骤和代码示例。
云原生动态
OpenFeature 成为 CNCF 孵化项目
CNCF 技术监督委员会 (TOC) 已投票同意 OpenFeature 作为 CNCF 孵化项目。
OpenFeature 是一个开放规范,为功能标记提供与供应商无关、社区驱动的 API,与各种功能标记管理工具兼容。功能标志是软件开发中的一项技术,允许团队启用、禁用或更改产品或服务中某些功能或代码路径的行为,而无需修改源代码。
通过 OpenFeature 实现的功能标记标准化将工具和供应商统一在一个通用接口后面,有助于避免供应商在代码级别的锁定,并提供一个用于构建可在社区中共享的扩展和集成的框架。
Griffin 2.0:Instacart 改进其机器学习平台
Instacart 基于使用原始 Griffin 机器学习平台的经验创建了下一代平台。该公司希望改善用户体验并帮助管理所有机器学习工作负载。改进后的平台利用了 MLOps 的最新发展,并为当前和未来的应用程序引入了新功能。
Griffin 平台的第二个版本用公开 REST API 的面向服务的架构取代了基于 CLI 和 Git 的工具。Web UI 使用这些 API 为 ML 工程师提供无缝体验,而 Griffin SDK 则可以将其他工具与 Griffin 集成,例如 BentoLM、Instacart 的内部 ML 笔记本云开发环境。
ARMO 将 VEX 引入 Kubernetes 安全态势管理平台
ARMO 增加了对漏洞利用交换 (VEX) 格式的支持,用于共享有关 Kubescape 的漏洞信息,Kubescape 是 Kubernetes 的开源安全态势管理项目。
VEX 格式是为美国商务部下属机构国家电信和信息管理局 (NTIA) 领导的软件组件透明度多利益相关方流程而创建的。NTIA 和网络安全与基础设施安全局 (CISA) 随后与 NTIA 和 Chainguard 合作创建了 OpenVEX,这是一个规范和一组工具,用于以机器可读的格式报告漏洞。Kubescape 社区与 Linux 基金会合作,为 Kubernetes 环境创建 OpenVEX 实例。
本文由博客一文多发平台 OpenWrite 发布!