这些流行的K8S工具,你都用上了吗

关注【云原生百宝箱】公众号,获取更多云原生消息

本文介绍了一些流行的 Kubernetes 工具和常见的集群组件。例如 Helm 作为 Kubernetes 应用的包管理器,以及本地开发所需的 Kubernetes 发行版。另外提及了一些常见的集群组件,如集群自动缩放器、证书管理器、外部 DNS,以及一些简化与 Kubernetes 交互的工具,如命令行工具、端口转发工具和集成开发环境。

图片

流行的 Kubernetes 工具

Helm

Helm[1]是 Kubernetes 应用程序的包管理器,为分发提供模板和版本控制功能。了解 Helm 很重要,因为它是迄今为止 Kubernetes 最受欢迎的包管理器,并且其他部署工具通常为其提供强大的集成。

对于开发人员来说,你很可能会通过以下两种方式之一与 Helm 交互:

  1. 1. 你需要通过创建自己的 Helm Chart来打包应用程序以进行部署。

  2. 2. 你将使用现有的 Helm Chart来部署其他服务或依赖项(例如数据库、缓存、消息队列)以进行集成或端到端测试。

有关如何在应用程序中使用 Helm 的具体信息可能因你的组织而异。有些团队可能有 CLI 工具来帮助引导 Helm Chart。其他人可能有一个“标准”模板供你使用和覆盖某些值。其他团队可能还有功能更齐全的仪表板或门户来指导你完成体验。

但归根结底,Helm 只是 Kubernetes 清单(例如,部署、状态集、服务等)的包装器。只要你能够区分 Kubernetes 原生概念与 Helm 或相关工具提供的模板引擎,你就能够快速了解正在发生的事情。

要深入了解 Helm,请查看Helm 101 for Developers[2]。

其他流行的工具:kustomize[3]、cdk8s[4]

用于本地开发的 Kubernetes 发行版

除非你在为具备远程开发环境的大型组织工作,否则你可能会遇到一些用于本地开发的 Kubernetes 发行版。这个领域有很多选项,包括Docker Desktop[5]、minikube[6]、kind[7]、k3s[8]等等。即使你仍在本地使用 Docker 或 Docker Compose 进行开发和测试,你也可能会看到这些选项在 CI 中运行。

关于这些不同的 Kubernetes 发行版,需要了解的重要一点是,由于它们主要设计为在本地运行(即更受约束的非产品环境)或在 CI 中进行测试,因此 Kubernetes 功能的行为可能略有不同。例如,可以实施一些解决方法来支持Ingress或负载均衡器功能。

通用集群组件

接下来,我们有一个常见集群组件的列表,希望这些组件已安装在你的集群上。与你的基础设施团队合作安装这些(或类似组件),让你的生活更轻松!

  • • 集群自动缩放器:虽然 Kubernetes 具有 Pod 自动缩放功能,但你需要安装单独的集群自动缩放器来缩放底层节点。一些托管 Kubernetes 提供商(例如 GKE)将其打包到他们的产品中。对于其他人,你需要为节点甚至 Pod安装和配置Kubernetes Autoscaler [9]。如果你在 EKS 上运行,请查看Karpenter[10]。

  • • Cert-manager 和 external-dns:对于需要外部访问的 Web 应用程序,更耗时且琐碎的任务之一是配置 DNS 以指向你的服务,以及配置 TLS 证书以加密你的端点。虽然这一切都可以通过 Terraform 或 SDK 在 Kubernetes 外部进行控制,但你也可以使用cert-manager[11]和external-dns[12]通过向 Kubernetes 服务添加注释来自动化此过程。

  • • 密钥管理:在 Kubernetes 上运行应用程序的另一个实际问题是获取应用程序要使用的密钥。虽然 Kubernetes 提供了对密钥管理的本机支持,但默认情况下它只是存储为 Base64 编码的明文。你可以将集群配置为静态加密它们,但它不提供密钥管理解决方案(如Vault[13]或云提供商的产品)的复杂控制和审核机制。无需从某些启动或 init 容器中的服务获取这些密钥,而是使用Secrets Store CSI Driver[14]等工具来自动执行此操作。

  • • 备份和迁移:最后,如果你正在运行具有持久卷的有状态应用程序,则需要定期备份数据以进行灾难恢复或更安全的迁移。velero[15]就是实现这一自动化的最佳选择。如需深入了解,你可以阅读有关Kubernetes 灾难恢复[16]的指南。

其他

最后,我们将以一系列必备工具来结束与 Kubernetes 的交互:

  • • 命令行工具:kube-ps1[17]用于 kubectl 提示,kubectx[18]用于在集群和命名空间之间切换。

  • • 端口转发:kube-forwarder[19]可轻松管理端口转发的端点。

  • • IDE:OpenLens[20]提供良好的控制台体验来管理 Kubernetes 集群并与之交互。

总结

Kubernetes 生态系统非常庞大,每天都会添加新的工具和项目。你可以通过谷歌搜索awesome-kubernetes[21]来了解正在完成的所有工作。

然而,对于大多数人来说,你与 Kubernetes 的交互将根据你的基础设施团队的设置进行一定程度的策划。对于某些人来说,它可能更接近带有一些辅助工具的最低限度的 Kubernetes 集群。对于其他人来说,它可能被抽象到组织的框架或工具后面。无论哪种情况,只要你了解 Kubernetes 基本概念,你就可以区分是在通用 Kubernetes wiki 还是从工具存储库中寻找答案。

引用链接

[1] Helm: https://helm.sh/
[2] Helm 101 for Developers: https://levelup.gitconnected.com/helm-101-for-developers-1c28e734937e
[3] kustomize: https://kustomize.io/
[4] cdk8s: https://cdk8s.io/
[5] Docker Desktop: https://docs.docker.com/desktop/kubernetes/
[6] minikube: https://minikube.sigs.k8s.io/docs/start/
[7] kind: https://kind.sigs.k8s.io/
[8] k3s: https://k3s.io/
[9] Kubernetes Autoscaler : https://github.com/kubernetes/autoscaler
[10] Karpenter: https://itnext.io/karpenter-open-source-high-performance-kubernetes-cluster-autoscaler-d56e3ab06aae
[11] cert-manager: https://cert-manager.io/
[12] external-dns: https://github.com/kubernetes-sigs/external-dns
[13] Vault: https://www.vaultproject.io/
[14] Secrets Store CSI Driver: https://secrets-store-csi-driver.sigs.k8s.io/introduction.html
[15] velero: https://velero.io/
[16] Kubernetes 灾难恢复: https://blog.devgenius.io/disaster-recovery-on-kubernetes-98c5c78382bb
[17] kube-ps1: https://github.com/jonmosco/kube-ps1
[18] kubectx: https://github.com/ahmetb/kubectx
[19] kube-forwarder: https://github.com/pixel-point/kube-forwarder
[20] OpenLens: https://github.com/lensapp/lens
[21] awesome-kubernetes: https://ramitsurana.github.io/awesome-kubernetes/projects/projects/


推荐阅读

  • 叮,你收到一份来自CNCF的云原生景观简介

  • 要魔改Kubernetes,我们可以从哪里扩展

  • 问题排查太烦心,试试GPT的超能力

  • Copa:无需重建镜像,直接修补容器漏洞

  • 玩转K8s网络:16张图带你从小白到专家

  • 1000节点集群,5秒搭建好

  • 流量何处来又往何处去,这次一目了然

  • Kubernetes CNI 插件选型和应用场景探讨

  • 块/文件/对象存储难统一管理,试试这个集大成者

  • GPU越来越难买,如何提高利用率

  • 监控外部服务太复杂?ServiceMonitor 和 PrometheusRule有妙招

  • 容器快了,却不安全了,Rootless 安排上

  • 还在Jenkins点点,快来体验Tekton的灵活自动化

  • 懒人福音:LazyDocker轻松驾驭容器,操作高效省心

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/599265.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试|一篇文章带你深入理解SQL约束

深入理解SQL约束:保障数据完整性和一致性的重要工具 SQL约束是在关系型数据库中用于保障数据完整性和一致性的重要工具。本文将深入探讨SQL约束的概念、类型以及应用,以帮助读者更好地理解和使用SQL约束来确保数据库中的数据质量。 SQL约束 约束&…

“巴渝工匠杯”2022年重庆市职业院校技能大赛(高职组)云计算样题

“巴渝工匠杯”2022年重庆市职业院校技能大赛(高职组)云计算样题 需要软件包环境可私信博主 【赛程名称】云计算赛项第一场次-私有云 某企业拟使用OpenStack搭建一个企业云平台,以实现资源池化弹性管理、企业应用集中管理、统一安全认证和授…

2024年【北京市安全员-A证】考试试卷及北京市安全员-A证试题及解析

题库来源:安全生产模拟考试一点通公众号小程序 北京市安全员-A证考试试卷根据新北京市安全员-A证考试大纲要求,安全生产模拟考试一点通将北京市安全员-A证模拟考试试题进行汇编,组成一套北京市安全员-A证全真模拟考试试题,学员可…

python-查漏补缺笔记-更新中

包导入时__init__.py中命令的执行顺序和sys.modules变化 ref: https://edu.csdn.net/skill/practice/python-3-6/164 在有父包和子包的情况下,父包中的“ __ init__.py”语句会在子包的“ __ init__.py”语句之前执行,然后按下列顺序执行导入子包和模块…

计算机毕业设计选题分享-spring boot疾病查询网站01548(赠送源码数据库)JAVA、PHP,node.js,C++、python,大屏数据可视化等

spring boot疾病查询网站 摘 要 随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的疾病查询网站,会使疾病查询工作系统化、规范化,也会提高医院形象&#xff0c…

SpringBoot集成沙箱支付

前言 支付宝沙箱支付(Alipay Sandbox Payment)是支付宝提供的一个模拟支付环境,用于开发和测试支付宝支付功能的开发者工具。在真实的支付宝环境中进行支付开发和测试可能涉及真实资金和真实用户账户,而沙箱环境则提供了一个安全…

es6中import * as导入方式

es6中import * as导入方式 一、问题和解决方法二、简介import * as三、ES6 模块化语法导入导出1.导入2.导出 一、问题和解决方法 问题报错: export ‘default’ (imported as ‘XLSX’) was not found in ‘xlsx’ (possible exports: CFB, SSF, parse_xlscfb, parse_zip, read…

深入了解Swagger注解:@ApiModel和@ApiModelProperty实用指南

在现代软件开发中,提供清晰全面的 API 文档 至关重要。ApiModel 和 ApiModelProperty 这样的代码注解在此方面表现出色,通过增强模型及其属性的元数据来丰富文档内容。它们的主要功能是为这些元素命名和描述,使生成的 API 文档更加明确。 Api…

STC进阶开发(四)SPI协议、矩阵键盘、EEPROM

前言 这一期我们简单介绍一下SPI协议,然后我们学习一下矩阵键盘,了解EEPROM是干什么用的,话不多说,开整! SPI协议 SPI(Serial Peripheral Interface)是一种同步串行通信协议,用于在…

rtsp解析视频流

这里先说一下 播放rtsp 视频流,尽量让后端转换一下其他格式的流进行播放。因为rtsp的流需要flash支持,现在很多浏览器不支持flash。 先说一下这里我没有用video-player插件,因为它需要用flash ,在一个是我下载flash后,还是无法播放…

Pytorch的GPU版本安装,在安装anaconda的前提下安装pytorch

本文基于conda安装GPU版本的PyTorch 一、CUDA 1.下载CUDA 点击下载 找到对应的版本进行下载 (1)打开命令提示符查看自己的版本,输入 nvidia-smi 根据自己的版本进行下载 (2)点击适合自己的版本进行下载 &#…

【MLOps】使用Ray缩放AI

Ray正在人工智能工程领域崭露头角,对扩展LLM和RL至关重要 Spark在数据工程中几乎是必不可少的。Ray正在人工智能工程领域崭露头角。 雷是伦敦大学学院Spark的继任者。Spark和Ray有很多相似之处,例如用于计算的统一引擎。但Spark主要专注于大规模数据分析…

【Python机器学习】k近邻——模型复杂度与泛化能力的关系

以某数据进行研究,先将数据集分为训练集和测试集,然后用不同的邻居数对训练集合测试集的新能进行评估: from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.neighbors imp…

go执行静态二进制文件和执行动态库文件

目的和需求:部分go的核心文件不开源,例如验证,主程序核心逻辑等等 第一个想法,把子程序代码打包成静态文件,然后主程序执行 子程序 package mainimport ("fmt""github.com/gogf/gf/v2/os/gfile"…

ReCAPTCHA 解决方案的自动识别和解决方法

ReCAPTCHA,作为广泛使用的安全措施,旨在区分人类和自动化机器人。然而,技术的进步导致了自动识别和解决 ReCAPTCHA 挑战的方法的发展。在本文中,我们将探讨自动 ReCAPTCHA 识别和解决技术的概念,以及创新解决方案 Caps…

Yapi部署指南:在 Linux 上 Yapi 教程

YApi YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单…

题目:最大数组和(蓝桥OJ 3260)

问题描述: 解题思路: 官方: 总结:使用模拟。排序数组,枚举删除最大个数并推出其删除最小个数 ,即可枚举出每一种可能的区间和,依次比较找最大区间和(使用前缀和求区间和O(1)…

MySQL数据管理(一)

一、列类型 列类型指规定数据库中该列存放的数据类型 列类型分类 数值类型字符串类型日期和时间型数值类型 数值类型 字符串类型 日期和时间类型 MySQL允许“不严格”语法,任何标点符号都可以作为日期部分之间的间隔符,如“24-01-03”、“24.01.03”…

SSM建材商城网站----计算机毕业设计

项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 管理员角色包含以下功能: 管理员登录,管理员管理,注册用户管理,新闻公告管理,建材类型管理,配货点管理,建材商品管理,建材订单管理,建材评价管理等功能。 用…

VCoder:大语言模型的眼睛

简介 VCoder的一个视觉编码器,能够帮助MLLM更好地理解和分析图像内容。提高模型在识别图像中的对象、理解图像场景方面的能力。它可以帮助模型显示图片中不同物体的轮廓或深度图(显示物体距离相机的远近)。还能更准确的理解图片中的物体是什…