在上一篇文章中,我们分享了本主题的第一部分内容:.NET Core 和 Kubernetes 简介,大家可以在《陈计节-使用 .NET Core 开发 Kubernetes 基础组件(上篇)》进行查看,今天的文章是本主题的第二篇文章。
第二部分:使用 .NET Core 与 Kubernetes 交互
在第一部分提到过,我们把 Kubernetes 视为客户端应用的一个形式如何去开发它。今天的主题,我们接下来会探讨第一部分提到的三种方式(k-os 客户端应用、webhook、CRD&CRD Controller),如何去跟集群打交道。
交互是我们的第一类。日常在使用集群时,我们通常是一个人类用户来跟集训打交道、进行交互。所以接下来我们说用 .NET Core 来交互,你可以理解为就是说把这个 .NET Core 来模拟我们日常做的各种操作,就好比你要 create 一个 port 用来部署业务,你要去监控这个 Pod 里面的日志,那么这些我们都是可以通过 .Net 来实现的。
我们用 .NET Core 来实现跟集群交互的一个重要目的,是希望这个程序能够为我们提供一种自动化的运行能力,它可以为我们做一些自动化的运维,甚至是做一些这种像提供 SaaS 服务或者 PaaS 服务。我们可以用 .NET 来做一个云厂商,或是我自己要提供云服务的时候,我可不可以跟集群打交道,这些场景都是非常合适的。
示例代码下载地址
接下来的内容就涉及到了代码演示,因此我们提前准备了一个代码库,大家可以通过链接 使用 CSHARP 开发 KUBERNETES 原生基础设施,开发辅助,Asp.net源码|- 51Aspx.com 下载。
这个项目总共包含 4 个文件示例,分别是:
1.kncs.CmdExecuter:展示如何在 C# 中读取、生成并编辑 YAML,最终传入 kubectl 命令行,动态地在 Kubernetes 集群中创建 Pod 。
2.kncs.ClientCs:展示如何以 C# 编程的方式与 Kubernetes 集群交互,读取和监视 Pod 资源的状态。
3.kncs.Webhook:展示如何用 C# 实现 Kubernetes Webhook,实现对 Pod 镜像的检查,并实现类似 Istio 中的容器自动注入的功能。
4.kncs.CrdController:展示如何实现自定义资源类型 CRD:为 Kubernetes 集群安装新的 CSharpApp 资源类型。
第一个演示 kncs.CmdExecuter
<