关于client-go
-
client-go是kubernetes官方提供的go语言的客户端库,go应用使用该库可以访问kubernetes的API Server,这样我们就能通过编程来对kubernetes资源进行增删改查操作;
-
除了提供丰富的API用于操作kubernetes资源,client-go还为controller和operator提供了重要支持,如下图,client-go的informer机制可以将controller关注的资源变化及时带给此controller,使controller能够及时响应变化:
- GitHub仓库:https://github.com/kubernetes/client-go
关于《client-go实战》系列
《client-go实战》系列是欣宸推出的实战主题原创,旨在与大家一起动手体验client-go的相关技术,从简单的实践开始,逐步深入了解client-go的强大功能,为后续的operator学习打下扎实的基础;
重要前提
- 开始client-go实战之前要对以下知识点有所了解:
-
kubernetes基本原理和操作;
-
kubernetes的Group、Version、Resource等概念,推荐阅读《Kubernetes的Group、Version、Resource学习小记》
本篇概览
作为整个系列的开篇,除了对client-go做介绍,还要为后面的实战做好如下准备工作:
-
列出要用到的硬件;
-
列出要用到的软件及其版本;
-
同步kubernetes配置文件,使得开发环境可以远程访问kubernetes;
环境信息
- 如下图所示,本次实战一共用到两台电脑:
-
Linux电脑:操作系统是CentOS 7.9,已安装1.20.0版本的kubernetes
-
MacBook Pro:操作系统是macOS Big Sur(11.1),编码工作在此电脑上进行
-
MacBook Pro上安装的go版本为1.15.7
-
您可以按照个人习惯选择IDE,我这里用的是GoLand-2020.2版本
确定要用的client-go版本
client-go官方提供了多个版本,并且给出了和kubernetes版本的匹配列表,如下所示:
| | Kubernetes 1.15 | Kubernetes 1.16 | Kubernetes 1.17 | Kubernetes 1.18 | Kubernetes 1.19 | Kubernetes 1.20 |
| — | — | — | — | — | — | — |
| kubernetes-1.15.0
| ✓ | ± | ± | ± | ± | ± |
| kubernetes-1.16.0
| ± | ✓ | ± | ± | ± | ± |
| kubernetes-1.17.0
/v0.17.0
| ± | ± | ✓ | ± | ± | ± |
| kubernetes-1.18.0
/v0.18.0
| ± | ± | ± | ✓ | ± | ± |
| kubernetes-1.19.0
/v0.19.0
| ± | ± | ± | ± | ✓ | ± |
| kubernetes-1.20.0
/v0.20.0
| ± | ± | ± | ± | ± | ✓ |
| HEAD
| ± | ± | ± | ± | ± | ± |
这里解释一下表格中的✓
、+
、-
的含义:
✓
表示精确匹配,如下图红框,表示v0.20.0版本可以精确匹配1.20.0版本的kubernetes:
-
+
表示有的新特性是client-go支持的,但是此kubernetes版本却不支持; -
-
表示有的新特性是kubernetes支持的,但是此client-go版本却不支持; -
我这里kubernetes版本为1.20.0,因此选用client-go的0.20.0版本最合适;
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!