使用 C# 开发 Kubernetes 组件,获取集群资源信息

使用 .NET Core 开发 Kubernetes 基础组件(中篇) 陈计节老师开讲使用 .NET Core 开发 Kubernetes 基础组件 阅读详情

Python微信订餐小程序课程视频

https://edu.youkuaiyun.com/course/detail/36074

Python实战量化交易理财系统

https://edu.youkuaiyun.com/course/detail/35475

写什么呢

前段时间使用 C# 写了个项目,使用 Kubernetes API Server,获取信息以及监控 Kubernetes 资源,然后结合 Neting 做 API 网关。

体验地址 http://neting.whuanle.cn:30080/

账号 admin,密码 admin123

image-20220124202659239

本篇文章主要介绍,如何通过 C# 开发基于 Kuberetes 的应用,实现获取 Kubernets 中各种资源的信息,以及实现 Conroller 的前提知识。而在下一篇中则会讲解如何实现 Conroller 和 Kubernetes Operator。

Kubernetes API Server

kube-apiserver 是 k8s 主要进程之一,apiserver 组件公开了 Kubernetes API (HTTP API),apiserver 是 Kubernetes 控制面的前端,我们可以用 Go、C# 等编程语言写代码,远程调用 Kubernetes,控制集群的运行。apiserver 暴露的 endiont 端口是 6443。

为了控制集群的运行,Kubernetes 官方提供了一个名为 kubectl 的二进制命令行工具,正是 apiserver 提供了接口服务,kubectl 解析用户输入的指令后,向 apiserver 发起 HTTP 请求,再将结果反馈给用户。

kubectl

kubectl 是 Kubernetes 自带的一个非常强大的控制集群的工具,通过命令行操作去管理整个集群。

Kubernetes 有很多可视化面板,例如 Dashboard,其背后也是调用 apiserver 的 API,相当于前端调后端。

总之,我们使用的各种管理集群的工具,其后端都是 apiserver,通过 apiserver,我们还可以定制各种各样的管理集群的工具,例如网格管理工具 istio。腾讯云、阿里云等云平台都提供了在线的 kubernetes 服务,还有控制台可视化操作,也是利用了 apiserver。

你可以参考笔者写的 Kubernetes 电子书,了解更多:https://k8s.whuanle.cn/1.basic/5.k8s.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OBijsiOr-1643062798178)(images/master.png)]

简而言之, Kubernetes API Server 是第三方操作 Kubernetes 的入口。

暴露 Kubernetes API Server

首先查看 kube-system 中运行的 Kubernetes 组件,有个 kube-apiserver-master 正在运行。

root@master:~# kubectl get pods -o wide -n kube-system
NAME                             READY   STATUS    RESTARTS         AGE   IP          NODE     NOMINATED NODE   READINESS GATES
... ...
kube-apiserver-master            1/1     Running   2 (76d ago)      81d   10.0.0.4    master    
... ...

虽然这些组件很重要,但是只会有一个实例,并且以 Pod 形式运行,而不是 Deployment,这些组件只能放在 master 节点运行。

然后查看 admin.conf 文件,可以通过 /etc/kubernetes/admin.conf 或 $HOME/.kube/config 路径查看到。

image-20220124204238519

admin.conf 文件是访问 Kubernetes API Server 的凭证,通过这个文件,我们可以使用编程访问 Kubernetes 的 API 接口。

但是 admin.conf 是很重要的文件,如果是开发环境开发集群,那就随便造,如果是生产环境,请勿使用,可通过角色绑定等方式限制 API 访问授权。

然后把 admin.conf 或 config 文件下载到本地。

你可以使用 kubectl edit pods kube-apiserver-master -n kube-system 命令,查看 Kubernetes API Server 的一些配置信息。

由于 Kubernetes API Server 默认是通过集群内访问的,如果需要远程访问,则需要暴露到集群外(与是否都在内网无关,与是否在集群内有关)。

将 API Server 暴露到集群外:

kubectl expose pod  kube-apiserver-master --type=NodePort --port=6443 -n kube-system

查看节点随机分配的端口:

root@master:~# kubectl get svc -n kube-system
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
kube-apiserver-master   NodePort    10.101.230.138    6443:32263/TCP 25s

32263 端口是 Kubernetes 自动分配,每个人的都不一样。

然后通过 IP:32263 即可测试访问。

image-20220124205410165

如果你的集群安装了 CoreDNS,那么通过其他节点的 IP,也可以访问到这个服务。

然后将下载的 admin.conf 或者 config 文件(请改名为 admin.conf),修改里面的 server 属性,因为我们此时是通过远程访问的。

连接到 API Server

新建一个 MyKubernetes 控制台项目,然后将 admin.conf 文件复制放到项目中,随项目生成输出。

image-20220124211315915

然后在 Nuget 中搜索 KubernetesClient

Sealos 实战指南:从零部署高可用 Kubernetes 集群与云原生应用 容器化部署是现代化应用交付的核心技术,其核心原理是通过将应用及其依赖打包成标准镜像,实现环境一致性与快速部署。Kubernetes 作为容器编排的事实标准,提供了自动化部署、扩缩容和运维能力,其技术价值在于大幅提升了资源利用率和应用可移植性。在私有云、混合云及边缘计算等场景中,快速搭建稳定可靠的 K8s 环境成为刚需。本文聚焦于 Sealos 这一开源工具,它通过“集群镜像”概念,将操作系统、Kubernetes 内核及常用云原生应用(如 MySQL、Redis、监控栈)一体化打包,实现一键部署。针对生产环 阅读详情

相关推荐

AI辅助快速部署Kubernetes集群实践指南

Kubernetes作为容器编排领域的核心工具,其集群部署涉及证书配置、网络插件选择等复杂环节。通过结合AI工具链(如ChatGPT-4、GitHub Copilot)与自动化脚本,可以显著降低部署门槛。这种方案特别适合需要快速搭建测试环境的中小团队,以及刚接触K8S的开发者。实践中,AI不仅能生成基础部署脚本,还能实时校验命令正确性,有效规避常见的YAML格式错误。从技术实现来看,该方案通过kubeadm初始化控制平面、Flannel网络插件部署等关键步骤,最终将传统3节点集群部署时间从4小时压缩到40分

weixin_30475039的博客 440

C#云原生开发:5大核心技术如何实现50%性能飞跃与10倍开发效率?

C#云原生开发:性能与效率的双重突破 C#凭借ASP.NET Core、Blazor WebAssembly、AOT编译等核心技术,在云原生领域实现性能比Java快50%、开发效率提升10倍的突破。通过5大技术(WebAssembly集成、Razor组件化、OpenAPI文档、容器化部署、AOT优化)和3大实战场景(电商促销、金融风控、工业监控),C#展现出高并发、低延迟、跨平台等优势。对比传统Java/JavaScript方案,C#在内存管理、响应速度及开发效率上具有显著优势,未来结合AI代码生成与自适应

java专栏 965

CentOS7下基于kubeadm快速搭建高可用K8s集群实战指南

本文详细介绍了在CentOS7环境下使用kubeadm快速搭建高可用Kubernetes集群的完整流程。从环境准备、系统配置到容器运行时安装,再到多Master节点的高可用部署和Worker节点加入,提供了实战操作命令和常见问题解决方案。特别针对k8s集群的稳定性优化和网络配置给出了专业建议,帮助用户快速构建生产级Kubernetes环境。

weixin_30399821的博客 449

C#跨平台能力揭秘:3大核心技巧+2个实战案例,为何90%开发者还在用Windows?

我曾为一个订单处理系统的性能瓶颈熬了3个通宵,直到发现“.NET 8虚拟线程 + Kubernetes自动扩缩容”的奥秘才柳暗花明。没有银弹。C#跨平台能力的价值在于你如何用它——是用于精准控制还是继续暴力点击,取决于你的初心。你有没有遇到过C#在Linux部署中的“卡顿”难题?或者有什么跨平台优化的奇思妙想?评论区聊聊,说不定能帮到别人!

java专栏 1623

从零到一:基于Jenkins、Harbor、SonarQube与K8s的DevOps实战流水线搭建

本文详细介绍了如何从零开始搭建基于Jenkins、Harbor、SonarQube与Kubernetes(K8s)的DevOps实战流水线。通过自动化构建、代码质量检查、镜像管理和K8s部署,实现高效、可靠的CI/CD流程,显著提升发布效率和系统稳定性。文章包含环境准备、组件配置、流水线设计及常见问题解决方案,适合DevOps工程师和开发团队参考实践。

weixin_30784501的博客 530

Kubernetes_12_部署Metrics Server 获取集群指标数据

Metrics Server 简介 介绍 Metrics Server 前首先介绍下 Heapster,该工具是用于 Kubernetes 集群监控和性能分析工具,可以收集节点上的指标数据,例如,节点的 CPU、Memory、Network 和 Disk 的 Metric 数据。不过在 Kubernetes V1.11 版本后将被逐渐废弃。而 Metrics Server 正是 Heapster 的代替者。 Metrics Server 是 Kubernetes 集群核心监控数据的聚合器,可以通过 Metr

296

C#服务化容器资源控制终极指南:从Docker到K8s的深度实战

微服务资源配额与QoS分级实践指南 本文针对C#容器化服务的资源管理痛点,提出完整的资源隔离与弹性伸缩解决方案。传统部署常面临内存溢出、CPU争抢等问题,而容器化资源管理的核心目标在于实现QoS分级、弹性伸缩和故障隔离。 通过优化Dockerfile设置基础资源限制,结合运行时参数进行CPU/内存控制,并利用Docker Compose实现多服务资源隔离。在Kubernetes层面,通过ResourceQuota管理命名空间资源,部署时区分Pod级资源请求与限制,并设置LimitRange强制约束容器资源范

墨夶的博客 630

44、在Google Kubernetes Engine上搭建Kubernetes集群

本文详细介绍了在Google Kubernetes Engine(GKE)上搭建Kubernetes集群的完整流程,涵盖GCP与GKE背景、本地环境准备、集群创建、工作负载部署、节点管理、监控方案及安全权限配置。通过实际操作命令和最佳实践建议,帮助用户快速掌握GKE集群的搭建与管理方法,并提供可视化监控和安全策略以保障生产环境稳定运行。

vim8coder的博客 131

为什么你的容器在“打架”?C#集群调度的10个致命漏洞与救星方案!

本文探讨了容器调度在电商大促期间面临的挑战,并提供了从问题分析到解决方案的完整指南。首先,文章指出了容器调度的常见问题,如资源抢占和资源分布不均,并提出了通过Kubernetes API和资源配额进行整改的方案。接着,文章详细介绍了如何从零开始使用C#和Kubernetes API搭建集群调度系统,包括连接集群、创建资源配额、部署监控Agent、实现自动扩缩容以及设置Pod亲和性等策略。通过这些实战技巧,读者可以逐步实现从手动调度到智能调度的转变,确保系统在高负载下的稳定运行。

java专栏 903

【C#工业上位机高级应用】12. K3s集群部署C# SCADA系统:工业边缘计算从0到1实战

基于K3s的C# SCADA边缘计算系统部署实战 摘要 本文针对工业SCADA系统在多厂区场景下的带宽瓶颈、单点故障等问题,提出基于轻量级Kubernetes发行版K3s的边缘计算解决方案。通过容器化C# SCADA应用,实现分布式数据采集与处理,显著降低网络负载并提高系统可靠性。文章详细介绍了从单节点部署到多厂区高可用集群的完整实施流程,包括架构设计、容器化原理、核心算法及生产环境优化方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 613

C#集群调度:用代码指挥千万容器的星际舰队

小心!你的调度器可能比黑洞更危险——毕竟,一个错误的决策可能让整个星系崩溃!

墨夶的博客 403

C#部署自动化:容器技术的量子跃迁,用Docker和K8s让CI/CD快如闪电

当C#遇上容器化部署,诞生的不仅是代码,而是一个能自我进化、动态伸缩的’智能云原生引擎’。Docker多阶段构建:减少镜像体积与漏洞Kubernetes弹性伸缩:基于负载的自动扩缩容GitHub Actions流水线:从代码到生产的原子化部署安全与监控:签名、扫描、追踪三位一体AI驱动优化:预测资源需求与自愈系统。

墨夶的博客 1289

【基于C# + HALCON的工业视系统开发实战】十、高可用工业视觉系统:.NET Core + Halcon容器化部署与智能运维

摘要:工业视觉系统的稳定运行直接决定产线效率,传统部署方式存在环境依赖复杂、故障恢复慢、许可证管理繁琐等问题。本文基于C# .NET Core 6与HALCON 24.11,构建高可用部署与运维体系:通过Docker容器化实现跨平台部署(Linux/Windows),Kubernetes集群保障弹性扩展,远程诊断平台实现实时监控与参数调试,智能许可证管理确保99.9%可用性。实测数据显示,单设备部署时间从2小时缩短至10分钟,故障自动恢复时间8秒,GPU利用率稳定在85%±5%。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2050

【C#核心技术进阶:第五部分 跨平台与云原生】从镜像构建到智能扩缩容

摘要:本文聚焦C#应用在云原生场景下的容器化与Kubernetes(K8s)集成技术,深入探讨最小化Alpine镜像构建技巧、Vertical Pod Autoscaler(VPA)配置优化以及使用KEDA(Kubernetes Event - Driven Autoscaler)实现事件驱动自动扩缩容。结合电商秒杀、物联网网关等工业级案例,通过详细的实操流程和完整代码,帮助C#开发者掌握容器化部署与K8s集群管理的核心技术,提升应用的资源利用率和弹性伸缩能力。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1544

七境·C#全栈开发资源包

本文档提供了一套完整的C#全栈开发学习资源包,包含1.2GB的源码、文档和电子书。内容按照"七境"学习路径划分,从基础语法到微服务部署,涵盖C#12新特性、ASP.NET Core、EF Core、Blazor/Vue3前端集成、微服务架构及Docker/K8s部署等核心技术。每个阶段配有学习导图、代码示例、实战项目和自测题,适合零基础学习者、转语言开发者及求职者使用。资源包结构清晰,包含10个核心模块,提供从理论到实践的完整学习闭环。

星心源·七境智慧体系创始人。以东方修心为核,AI为翼,构建2300+智能体、72历史人物技能卡、全息网络协议v3.1。专注传统文化谋略典籍的AI化重生与独立文明生态建设。不追浪潮,立山头。万华筒·自在境。 392

k8s.ecoysystem.apps:使用c#编写的kubernetes(k8s)生态系统应用程序,包括微服务(aspnetcore.webapi)和运行状况检查等。目标是通过将代码提交到存储库来自动完成完整的持续集成,交付和部署。 所以我会继续迭代..

k8s.ecoysystem.apps kubernetes(k8s)生态系统应用程序,用c#编写,包括微服务(aspnetcore.webapi)和运行状况检查等。目标是通过将代码提交到存储库来自动完成完整的持续集成,交付和部署。 所以我将继续被迭代...

使用cubeMX生成USB HID设备

本文主要介绍如何使用stm32开发板和cubeMX生成HID设备,供参考。

专注音频,高效工作,快乐生活! 971

论文阅读笔记---Deep HDR Video from Sequences with Alternating Exposures

Kalantari N K, Ramamoorthi R. Deep HDR Video from Sequences with Alternating Exposures[C]//Computer Graphics Forum. 2019, 38(2): 193-205. 摘要: 在本文中,提出了一种基于学习的方法来,我们使用两个顺序卷积神经网络(CNN)对整个HDR视频重建过程进...

qq_25283239的博客 1448

用STM32H7的FMC+AD7606搭建多通道数据采集系统:两种工作模式(查询与FIFO中断)的代码详解与性能对比

本文详细解析了基于STM32H7微控制器和AD7606 ADC芯片的多通道数据采集系统设计,重点对比了查询模式与FIFO中断模式的实现方法与性能差异。通过FMC总线实现高速并行数据采集,系统支持16bit同步采样,最高可达200Ksps/通道。文章提供了完整的代码实现和优化策略,帮助工程师在工业监测等实时性要求高的场景中构建可靠的数据采集方案。

weixin_30599769的博客 489

RK3588开发板RKNPU2环境部署实战:更新rknn_server与librknnrt.so详解

本文详细介绍了在RK3588开发板上更新rknn_server与librknnrt.so核心组件的完整实战流程。通过adb工具推送文件、设置权限并执行同步操作,确保RKNPU2环境部署成功,从而解决推理速度慢或初始化失败等问题,提升AI模型运行效率与稳定性。

weixin_29194817的博客 350

机器学习——先验概率、后验概率、全概率公式、贝叶斯公式

先验概率(prior probability)是指根据以往经验和分析得到的概率,如全概率公式,它往往作为"由因求果"问题中的"因"出现的概率。后验概率是指在得到“结果”的信息后重新修正的概率,是“执果寻因”问题中的"果"。贝叶斯公式就是当已知结果,问导致这个结果的第 i 原因的可能性是多少。

fortune_cookie的博客 1万+

sim800c插卡后指示灯还是一秒一闪无法接收发送短信,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1171

【AUTOSAR-E2E】-1.4-详述E2E Transformer解决方案

共13页精讲 目录 1“Data Transformation”介绍 1.1 基于SOME/IP Transformer 1.2 基于COM Based Transformer 2 ComXf(COM Based Transformer)介绍 2.1 ComXf(COM Based Transformer)功能规范 2.2 ComXf(COM Based Transformer)提供的服务 2.3 配置注意事项 3 E2EXf(E2E Transformer)介绍 3.1 E2EX...

「汽车电子助手」的博客 4701

深入解析高通SA8775芯片:性能、架构与研发创新趋势

SA8775芯片凭借其强大的CPU、GPU和AI加速能力,能够应对现代智能系统中的复杂计算任务。它不仅适合高性能计算、深度学习应用,也在汽车、智能设备等领域有广泛的应用前景。无论是在自动驾驶系统中,还是在车载信息娱乐和高级嵌入式系统中,SA8775都展现了其出色的计算能力和能效平衡,是现代智能系统的重要硬件基础。SA8775芯片作为高通的高性能处理平台,具有出色的计算和AI加速能力,但也存在一些值得关注的地方。

weixin_43199439的博客 9351

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 分布式:分布式系统下的唯一序列
下一篇: 通过Dapr实现一个简单的基于.net的微服务电商系统(十八)——服务保护之多级缓存
pythonxxoo
博客等级 码龄5年 337粉丝 670原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值