如何使用Kubernetes C#客户端库?

如何使用Kubernetes C#客户端库?

译文
作者:布加迪编译 2020-03-19 08:00:00

云计算 使用Kubernetes并非总是易事。本文帮你充分利用官方的.NET Kubernetes客户端和.NET或.NET Core来构建自己的Kubernetes工具。

【51CTO.com快译】使用Kubernetes并非总是易事。管理集群和pod耗费精力,虽然云托管的Kubernetes实例(比如Azure的AKS)可以替你处理许多繁重的任务,但如果你在本地或自己的虚拟基础架构上运行Kubernetes,就没法使用它们。

[[319140]]

这时Kubernetes API有了用武之地,因为它是Kubernetes在组件与外部控制器之间进行联系的手段。你可以使用kubectl命令行工具与API进行联系,也可以通过熟悉的REST(代表性状态传输)调用来使用它。该API可帮助你管理工作负载、配置集群并管理应用程序和集群的行为。

像这种充分利用REST的API是有用的工具,但如果你构建自己的控制器,它们需要大量的开发。你可以借助其中一个官方的Kubernetes API客户端(现在包括.NET库),避免相关的开发开销。除了官方客户端外,还有非官方客户端:如果官方版与你想要使用的方式不太相符,非官方版含有两种替代的.NET实现。

.NET Kubernetes API客户端库简介

官方.NET客户端库在GitHub上就有,由包括微软人员在内的一群开源开发人员管理。最新版本是1.6.21,正在开发中。可以从GitHub下载代码并自行编译,也可以通过NuGet将该库作为一个名为KubernetesClient的软件包添加到应用程序。安装完毕后,使用加载客户端的语句将库添加到代码中。该库同时支持.NET和.NET Core,因此你可以用它编写跨平台应用程序以及纯Windows代码。

安装后,你可以开始使用该库为Kubernetes构建自己的工具,比如分布式应用程序中响应事件的特定事件处理程序。可从监听Kubernetes命名空间上的事件入手。你可以使用C#现有的异步编程功能、设置等待以监视事件并将处理程序连接到结果来执行此操作。 Kubernetes提供了自定义资源,可用于监视你自己的事件,并管理自定义Kubernetes基础架构。

在Kubernetes端,先为代码将使用的控制器构建适当的自定义资源定义。这将需要一个API版本以及资源所需的许多适当的元数据。这些元素映射到C# Kubernetes API中的对象,可以从对象中读取。最后,你可以在资源的spec字段和status字段中添加自己的数据,自定义资源类进行管理。

一旦你有了这些元素,可以使用我们想要查看的资源的自定义资源定义将它们包装在Kubernetes API客户端实例中,从而构建一个控制器。一旦你有了事件处理程序的结果,就可以在Kubernetes管理应用程序的其余部分中使用它们,比如说编写日志或修改Kubernetes实例。如果你的Kubernetes代码将消息写入到自定义资源的状态字段,这样的处理程序就可以根据需要生成新的pod。

创建Kubernetes客户端

创建客户端意味着为实例加载Kubernetes配置数据。你可以从默认的本地kubeconfig、某个特定文件或目前集群执行此操作。一旦有了作为配置对象的配置数据,你可以使用已加载的配置创建客户端。

这为你提供了可以与Kubernetes API调用一起使用的客户端对象。库的GitHub存储库中有一组实用的示例代码。值得复制和运行示例,因为它们可以帮助你了解如何使用.NET Kubernetes客户端、如何理解语法以及如何使用API​​以处理创建、读取、更新和删除等操作。

一个有用的示例是一个25行的小程序,该程序列出了pod中的命名空间。如果你构建用于控制Kubernetes实例的应用程序,列出所有目前的命名空间很重要,因为这些命名空间让你可以将API定位于Kubernetes基础架构的特定部分。

处理Kubernetes API文档

为了充分利用.NET API库,最好花点时间阅读Kubernetes API的文档。虽然库中有足够的资源让你入门,但是你需要深入研究官方文档以获得构建自己的控制器所需的详细信息。查看其他一些API库实现的文档有所帮助。将Java或Go调用转换成C#并不难,你可以看看别人如何使用这些API。

另一个选择是使用kubectl文档来查看如何在代码中使用关键的kubectl动词。在处理更复杂的任务之前,最好先使用API​​之类的工具来构建可自动执行常见操作的应用程序。在编写任何新代码之前,你应该检查现有的Kubernetes扩展是否已经实现了你所考虑的功能,比如KEDA(基于Kubernetes的事件驱动型自动扩展)。

用你自己的代码自动执行Kubernetes操作

管理Kubernetes可能很复杂,因此很高兴看到一组官方库可以帮助你构建自己的工具以使用Kubernetes API。由于活跃的社区和非官方客户端的相互交流,.NET API团队很显然在竭力提供一种实用的框架用于构建可与Kubernetes协同运行的代码,无论在.NET Framework上还是在.NET Core上。

如果我们要构建在云原生平台上运行的分布式应用程序所需要的新一代操作工具,这类工具必不可少。通过使用熟悉的语言,尤其是可访问其他平台库的语言,我们就能构建连接Azure Pipelines、GitHub和Kubernetes等平台的工具,使我们目前手动完成的大量工作实现自动化。

原文标题:How to use the Kubernetes C# client library,作者:Simon Bisson

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/228667.html<

(0)
管理的头像管理
上一篇2025-04-18 10:05
下一篇 2025-04-18 10:06

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注