operator实战
开发k8s 的operator
来自万古的忧伤
努力,勿让自己继续活在后悔中
展开
-
Go-operator
我这里k8s源码是拉的1.16的1.15开始启用go mod模式代码就在staging里面 如果是之前的版本那么在vendor中原创 2020-07-26 12:31:29 · 381 阅读 · 0 评论 -
Operator字段校验
官方提供的字段校验https://book.kubebuilder.io/reference/markers/crd-validation.html根据官方的字段校验我们可以提供然后需要执行make generatemake installmake runkubectl describe crd redis.myapp.qushuaibo.com可以通过这个来实现对字段的一些输入校验apiVersion: myapp.qushuaibo.com/v1kind: Redism原创 2022-03-22 10:26:46 · 134 阅读 · 0 评论 -
Operator-demo
目录结构 api里面为我们基础结构体controller里面为我们的主体逻辑pkg里面为deploy和svc的一些创建函数github地址https://github.com/strive-after/operator-demo我们来看效果make install 我们部署crdmake run 我们启动controller基础环境#1.yamlapiVersion: ship.example.org/v1beta1kind: Frigatemetadata: name: f.原创 2020-08-31 22:08:07 · 643 阅读 · 0 评论 -
kubebuilder
官网https://book.kubebuilder.io/中文文档https://cloudnative.to/kubebuilder/参考https://www.operator.org.cn/operatorsdk-jian-jie学习链接operator实战一 简介二 安装linux && macos=$(go env GOOS)arch=$(go env GOARCH)# 下载 kubebuilder 并解压到 tmp 目录中curl -L https://g原创 2020-08-22 18:28:06 · 5467 阅读 · 0 评论 -
Operator-sdk
参考https://www.operator.org.cn/operatorsdk-jian-jie一、简介1.概述该项目是Operator Framework的一个组件,这是一个开源工具包,以有效,自动化和可扩展的方式管理Kubernetes原生应用程序,称为Operators。更多介绍内容,请阅读博客。Operators 可以在Kubernetes之上轻松地管理复杂有状态的应用程序。然而,由于诸如使用低级API,编写样板以及缺乏模块导致重复性工作等挑战,导致目前编写Operator可能很困难。原创 2020-08-22 11:25:01 · 2953 阅读 · 1 评论 -
Go之Operator(补充informers)
type SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactorytype sharedInformerFactory struct { client kubernetes.Interface namespace string tweakListOptions internalinterfaces.TweakListOptionsFunc lock .原创 2020-08-03 23:46:08 · 439 阅读 · 0 评论 -
Go之Operator(补充cache)
cache实现方式mapheaplrustoretype Store interface {//给缓存中添加数据 Add(obj interface{}) error //更新数据 Update(obj interface{}) error //删除 Delete(obj interface{}) error //获取所有 List() []interface{} //获取所有key ListKeys() []string //通过一个对象获取 Get(obj inte原创 2020-08-02 18:45:10 · 458 阅读 · 0 评论 -
Go之Operator(四)
学习链接operator实战更新中未完关于k8s常用lib库项目介绍client-goclient-go项目概览4种client的类型以及区别可以看这里clientclient-go子项目主要是golang语言链接k8s服务端的客户端库,以及k8s中各种内部存储的实现的封装.相对比较核心的是dynameic和tools的cache(1)dynameicpath :\kubernetes\staging\src\k8s.io\client-go\deprecated-dynamic原创 2020-07-26 14:59:40 · 1053 阅读 · 0 评论 -
Go之Operator(补充tools)
学习链接operator实战持续更新中未完toolspath :kubernetes\staging\src\k8s.io\client-go\tools- authauth这里封装了一些认证的信息type Info struct { User string Password string CAFile string CertFile string KeyFile string BearerToken string Insecure原创 2020-07-26 14:58:32 · 383 阅读 · 0 评论 -
Go之Operator(三)
学习链接operator实战关于k8s常用lib库项目介绍apimachineryapimachinery项目概览apimachinery子项目主要是k8s服务端和客户段项目都共同依赖的一些公共方法,struct,工具的定义. 主要是服务于kubernetes,client-go,apiserver这三个项目.api目录(1)apitesting这里主要是帮我们做了一些默认字段的填充,就比如你创建的时候有些字段没设置,这里就会设置默认的(2)equality用来做转换的一些东西原创 2020-07-25 19:20:03 · 440 阅读 · 0 评论 -
Go之Operator(二)
学习链接operator实战关于k8s常用lib库项目介绍apiapimachinery1.api项目概览api子项目主要是k8s中各个主要项目中通用的一些api的struct的定义.git clone https://github.com/kubernetes/kubernetes.gitgit checkout -b remotes/origin/release-1.15.0 v1.15.0 #修改至当前版本(1)admission简单介绍type 主要是定义结构体的属性re原创 2020-07-25 17:53:02 · 655 阅读 · 0 评论 -
Go之Operator(一)
学习链接operator实战k8s开发人应该掌握的技能k8s基础api的规范和基本概念,以及一些常用的基础工具和库k8s子库api,apimachinery,client-go等基础库的熟悉k8s扩展api相关的开发框架聊聊k8s的API模型的定义对应API模型的操作资源模型的分类关于Labels,Selectors和Annotations的简单介绍关于controller的简单介绍1. 资源模型组成scheme(TypeMeta) 包含group version原创 2020-07-25 15:58:41 · 1392 阅读 · 0 评论