随笔分类 - K8S二次开发
摘要:一、kubebuilder作用 提供脚手架工具初始化 CRDs 工程,自动生成 boilerplate 代码和配置 提供代码库封装底层的 K8s go-client 二、kubebuilder整体流程 用户自定义crd,将自定义的crd注册到scheme中,这样通过GVK能找到对应的go的struc
阅读全文
摘要:一、indexer使用案例 package main import ( "fmt" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/tools/cache" ) func
阅读全文
摘要:一、GVK与GVR 在Kubernetes体系中,资源是最重要的概念。Kubernetes使用Group、Version、Resource、Kind来描述 Group即资源组,在kubernetes中有两种Group:有组名资源组和无组名资源组(也叫核心资源组Core Groups)。如deploy
阅读全文
摘要:一、informer介绍 Kubernetes基于声明式API的设计理念,所谓声明式API,即告诉Kubernetes Controller资源对象的期望状态,这样为Kubernetes在事件通知后,动作执行前这段过程里提供了更多的容错空间与扩展空间。这就需要Kubernetes Controlle
阅读全文
摘要:一、前言:如何操作自定义资源 client-go为每种K8S内置资源提供对应的clientset和informer。那么如果我们要监听和操作自定义资源对象,应该如何做呢?这里我们有两种方式: 方式一:使用client-go提供的dynamicClient来操作自定义资源对象,当然也可以使用RESTC
阅读全文
摘要:1、获取key的方法 cache.MetaNamespaceKeyFunc(obj) func MetaNamespaceKeyFunc(obj interface{}) (string, error) { if key, ok := obj.(ExplicitKey); ok { return s
阅读全文
摘要:一、K8S四种client简单介绍 client-go支持RESTClient、ClientSet、DynamicClient、DiscoveryClient四种客户端与Kubernetes Api Server进行交互 RESTClient客户端 restclient客户端为其他客户端的父类 RE
阅读全文
摘要:一、Kubernetets API总览 REST API 是 Kubernetes 的基础架构。组件之间的所有操作和通信,以及外部用户命令都是 API Server 处理的 REST API 调用。因此,Kubernetes 平台中的所有资源被视为 API 对象,并且在 API 中都有对应的定义项。
阅读全文
摘要:一、详解各模块 . ├── discovery # 定义DsicoveryClient客户端。作用是用于发现k8s所支持GVR(Group, Version, Resources)。 ├── dynamic # 定义DynamicClient客户端。可以用于访问k8s Resources(如: Po
阅读全文