开发 k8s 管理平台 - k8sailor 03. 使用 client-go sdk 链接集群

简介: 开发 k8s 管理平台 - k8sailor 03. 使用 client-go sdk 链接集群

开发 k8s 管理平台 - k8sailor 03. 使用 client-go sdk 链接集群

原文地址: https://tangx.in/posts/books/k8sailor/chapter01/03-connect-cluster/
tag: https://github.com/tangx/k8sailor/tree/feat/02-connect-cluster

使用 sdk 链接 k3s cluster 并获取 deployment 信息

cd cmd/k8sailor && go run .

 * my-nginx-1 (1 replicas)
 * my-nginx-2 (2 replicas)

下载 client-go sdk

之前在安装 k3s 集群的时候,版本是 v0.21.4。 因此。 这里选择 client-go sdk 的版本也是 v0.21.4

如果还有其他环境, 可以使用 go mod edit 命令锁定 client-go 的版本

go get k8s.io/client-go@v0.21.4

go mod edit -replace=k8s.io/client-go=k8s.io/client-go@v0.21.4

连接集群并获取 deployment

https://github.com/kubernetes/client-go/blob/master/examples/create-update-delete-deployment/main.go

连接到 cluster 的鉴权方式有多种, 后面可以根据 cobra 传递的参数值, 选择不同的鉴权方式。
这里直接参考官方 demo 使用配置文件方式鉴权。

修改一下 kubeconfig 配置来源地址。


// 从 cobra 配置中获取地址
kubeconfig := &global.Flags.Config

// 其他一样
config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)
if err != nil {
    panic(err)
}
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
    panic(err)
}


/* clientset 测试开始, 打印 default namespace 下的所有 deployment */
depClient := clientset.AppsV1().Deployments(apiv1.NamespaceDefault)
list, err := depClient.List(context.TODO(), metav1.ListOptions{})
if err != nil {
    panic(err)
}
for _, d := range list.Items {
    fmt.Printf(" * %s (%d replicas)\n", d.Name, *d.Spec.Replicas)
}
/* clienset 测试结束 */

运行

在 cmd/root.go 中调用 k8s cluster 的连接函数

var rootCmd = &cobra.Command{
    // .. 省略
    Run: func(cmd *cobra.Command, args []string) {
        // 连接 k3s
        k8s.Connent()
    },
}

运行结果如开篇所示。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
1087 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
人工智能 自然语言处理 开发工具
HarmonyOS NEXT~鸿蒙开发能力:HarmonyOS SDK AI 全解析
本文深入解析HarmonyOS SDK中的AI功能集,涵盖分布式AI引擎、核心组件(NLP、计算机视觉等)及智能决策能力。通过代码示例与开发实践指南,帮助开发者掌握环境配置、性能调优及多场景应用(智能家居、移动办公等)。同时探讨性能优化策略与未来演进方向,助力构建高效分布式智能应用。
1565 9
|
前端开发 JavaScript 开发工具
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
1225 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
SQL 监控 Go
新一代 Cron-Job分布式调度平台,v1.0.8版本发布,支持Go执行器SDK!
现代化的Cron-Job分布式任务调度平台,支持Go语言执行器SDK,多项核心优势优于其他调度平台。
441 8
|
存储 开发工具 开发者
揭秘 Microsoft.Docker.SDK:让容器开发更轻松的强大工具揭秘
随着云计算和容器技术的快速发展,`Docker` 已经成为容器化技术的事实标准。`Microsoft` 作为 `Docker` 的主要支持者和参与者,推出了 `Microsoft.Docker.SDK`,旨在帮助开发者更轻松地进行容器开发。本文将深入揭秘 Microsoft.Docker.SDK 的功能、使用方法以及它在容器开发中的应用。
516 13
|
Kubernetes 监控 应用服务中间件
用 Go 搭建 Kubernetes Operators
在程序设计领域,面向对象设计和面向对象语言是大家最为熟悉和强大的工具,而面向对象除了其强大的核心特性之外,还有人们通过实践总结出来的一系列设计模式,可以用来解决实际应用设计中的一些复杂问题。   云原生应用运行的环境都是复杂的分布式环境,在这种情况下,一些有用的设计模式可以起到四两拨千斤的作用,而K8s社区推出的容器设计模式,则是结合了K8s集群的微服务模型提出的一系列可重用的解决典型分布式系统问题的模式。
1997 0
|
Kubernetes 网络协议 Go
用 Go 搭建 Kubernetes Operators
1、容器间通信: 同一个Pod的容器共享同一个网络命名空间,它们之间的访问可以用localhost地址 + 容器端口就可以访问。 2、同一Node中Pod间通信: 同一Node中Pod的默认路由都是docker0的地址,由于它们关联在同一个docker0网桥上,地址网段相同,所有它们之间应当是能直接通信的。
1414 0
|
监控 Kubernetes Go
用 Go 搭建 Kubernetes Operators
简介 Istio 是一个由 IBM、Google 以及 Lyft 联合推出的开源软件,以无痛方式为运行在 Kubernetes 上的微服务提供流量管理,访问策略管理以及监控等功能。这一软件目前仅在 Kubernetes 上运行,今后可能会扩展到其他平台。
1777 0
|
Kubernetes Cloud Native API
用 Go 搭建 Kubernetes Operators
随着容器越来越流行,k8s也成为很多公司标配,Kubernetes 让当前主流的基础架构有一套易用的 API 。利用好 Kubernetes ,我们可以实现更高的、更通用的基础架构自动化管理。基于此, CoreOS 实现了一套能“自动驾驶”的 Kubernetes 。
2378 0
|
12月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
907 1

热门文章

最新文章