golang

Kubectl源码阅读

…

如果不知道怎么用client-go,那就看看kubectl的代码吧,kubectl除了是一个比较优秀的命令行工具之外,还提供了比较好的代码实现,通过看kubectl的代码我们可以抄到很多有用的代码片段。

k8s client-go快速入门教程及源代码阅读之Informer

…

只要读k8s源代码一定会读informer的代码的,因为informer相当优秀,大多数分布式项目(比如OpenStack)在解决组件间通信的问题时都会选择如kafka,rabbitmaq之类的消息队列,但是k8s不走寻常路,选择了自己解决,解决的方案是informer。

k8s client-go快速入门教程及源代码阅读之RESTMapper

…

虽然k8s的发现客户端可以实时的获取k8s集群的所有资源,但是并不是直接面向用户的接口,因为解析这些资源组版本是一个乏味和无趣的过程,所以在此基础上client-go提供了RESTMapper来帮助用户映射和发现要找的资源。

k8s client-go快速入门教程及源代码阅读之发现客户端

…

之前介绍了client-go的静态客户端,动态客户端,本文主要讲解一下发现客户端的源代码,发现客户端用于发现k8s集群现有的资源,包括但不限于内置资源,可以获取当时k8s集群中的所有资源,通过发现客户端我们可以确定当前器群存在哪些资源及其对应的版本。

golang net/http源代码阅读

…

golang的net/http包同时支持客户端和服务端,而本文主要分析客户端的代码,通过查看源代码可以更好的理解net/http的使用,也能好好的学习一下golang官方的代码风格。

k8s client-go快速入门教程及源代码阅读之RESTClient

…

之前无论是讲解静态客户端还是动态客户端都可以略过了client-go底层的RESTClient的构造过程,这篇文章主要分析RESTClient的构造和请求过程,k8s的API都遵循RESTFul规范,所以客户端自然可以以对应的约定形式构造,所以叫做RESTClient。

k8s client-go快速入门教程及源代码阅读之静态客户端

…

client-go的客户端可以分为两类,一类称为静态客户端,另一类称为动态客户端,前者的好处在接口已经固定,在写代码的时候有很好的提示,坏处是无法访问非k8s内置资源,后者的好处是够灵活,但是需要使用者知道GVK/GVR等前置知识。两者各有好处,需要根据自己需要选择。

Golang net/http 客户端快速入门

…

golang内置了非常多优秀的库,net/http是其中之一,net/http不只是一个http客户端,它还实现了服务端,鉴于它非常贴心的设计,基于net/http做一个web server是一件非常容易的事情,但是本文主要聚焦于http客户端相关的功能。

golang命令行cobra 快速入门教程

…

cobra也许是go语言现有最好的命令行框架了,在各大项目中皆有使用,比如最出名的kubernetes, 所以要写一个稍微复杂的命令行工具,使用cobra还是不错的,cobra内置了非常多有用的功能,包括但不限于,自动生成帮助文档, 生成命令行代码的脚手架工具, 智能提示等等。