简介

operator framework 是一个为云原生开发者提供开发operator的组件框架的开源项目,它目前包含三个组件:

Operator SDK。集成controller-runtime,提供了:编写运维逻辑的高阶API,快速构建Operator项目及代码生成的脚手架工具,覆盖常见Operator用例的扩展。Operator SDK是Operator Framework中最核心的工程。

Operator Lifecycle Manager:K8S集群内所有Operator(及其关联服务)的生命周期管理( installation, updates, and management )

Operator Metering (joining in the coming months):提供对operator本身的监控以提供一些定制化服务。

搭建开发环境主要用到operator SDK,下面主要介绍其安装和使用。

operator SDK 安装

  • Mac OS

    brew install operator-sdk
    
  • 其他方式

    参见官方安装指南

operator SDK搭建开发环境

以官方的app-operator为例:

# 创建项目目录
mkdir -p $GOPATH/test/operator/
cd $GOPATH/test/operator/# GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
export GO111MODULE=on# 创建operator项目
operator-sdk new app-operator --repo github.com/example-inc/app-operator
cd app-operator# 拓展kubernetes api
operator-sdk add api --api-version=app.example.com/v1alpha1 --kind=AppService# 构建对应的controller基础代码
operator-sdk add controller --api-version=app.example.com/v1alpha1 --kind=AppService# 可在对应的API文件中定义自己的需要的属性以及在对应的controller文件中构建自己的代码逻辑,完成之后按后续步骤构建镜像# 构建镜像并推送到自己的镜像仓库
operator-sdk build kingdragon/app-operator:v1
docker push kingdragon/app-operator:v1# 下为官方更改yaml文件里的镜像的shell命令
# 不熟悉shell命令,熟悉kubernetes yaml语法可自行到对应文件更改相关配置亦可
# Update the operator manifest to use the built image name (if you are performing these steps on OSX, see note below)
$ sed -i 's|REPLACE_IMAGE|kingdragon/app-operator:v1|g' deploy/operator.yaml
# On OSX use:
$ sed -i "" 's|REPLACE_IMAGE|kingdragon/app-operator:v1|g' deploy/operator.yaml# 下为部署,根据自己的kubernetes集群环境自行部署。
# Setup Service Account
$ kubectl create -f deploy/service_account.yaml
# Setup RBAC
$ kubectl create -f deploy/role.yaml
$ kubectl create -f deploy/role_binding.yaml
# Setup the CRD
$ kubectl create -f deploy/crds/app.example.com_appservices_crd.yaml
# Deploy the app-operator
$ kubectl create -f deploy/operator.yaml# Create an AppService CR
# The default controller will watch for AppService objects and create a pod for each CR
$ kubectl create -f deploy/crds/app.example.com_v1alpha1_appservice_cr.yaml# Verify that a pod is created
$ kubectl get pod -l app=example-appservice
NAME                     READY     STATUS    RESTARTS   AGE
example-appservice-pod   1/1       Running   0          1m# Test the new Resource Type
$ kubectl describe appservice example-appservice
Name:         example-appservice
Namespace:    myproject
Labels:       <none>
Annotations:  <none>
API Version:  app.example.com/v1alpha1
Kind:         AppService
Metadata:Cluster Name:        Creation Timestamp:  2018-12-17T21:18:43ZGeneration:          1Resource Version:    248412Self Link:           /apis/app.example.com/v1alpha1/namespaces/myproject/appservices/example-appserviceUID:                 554f301f-0241-11e9-b551-080027c7d133
Spec:Size:  3# Cleanup
$ kubectl delete -f deploy/crds/app.example.com_v1alpha1_appservice_cr.yaml
$ kubectl delete -f deploy/operator.yaml
$ kubectl delete -f deploy/role.yaml
$ kubectl delete -f deploy/role_binding.yaml
$ kubectl delete -f deploy/service_account.yaml
$ kubectl delete -f deploy/crds/app.example.com_appservices_crd.yaml

operator framework搭建operator开发环境相关推荐

  1. 在CentOS 6.2上搭建vim开发环境

    在CentOS 6.2上搭建vim开发环境 最后更新日期:2013-07-05 1.首先使用Ubuntu(所在ip为192.168.16.230)翻墙登陆http://www.vim.org/,下载其 ...

  2. mac搭建python开发环境_Mac中基于Homebrew搭建python开发环境

    转移到mac上了.这里是在lion中搭建python开发环境的简单记录.这份记录不是一份step by step.而是事后写的记录,可能有记忆遗漏.如果有错误,请指正. 1.安装homebrew的准备 ...

  3. 【Tools】Visual Studio 2019搭建Qt开发环境

    00. 目录 文章目录 00. 目录 01. 概述 02. Visual Studio 2019安装 03. Qt6安装 04. qt-vsaddin插件下载 05. qt-vsaddin插件安装 0 ...

  4. 初探webpack之从零搭建Vue开发环境

    初探webpack之搭建Vue开发环境 平时我们可以用vue-cli很方便地搭建Vue的开发环境,vue-cli确实是个好东西,让我们不需要关心webpack等一些繁杂的配置,然后直接开始写业务代码, ...

  5. mac搭建python开发环境_Mac打造python2 python3开发环境

    最新版的MacOS Sierra默认带的python环境仍然为2.7.10,本文将介绍使用Brew安装python3.5并做简单的配置,打造python2,python3共存的开发环境 直接尝试bre ...

  6. 【java开发】快速搭建java开发环境(离线开发、在线开发)

    文章目录 1.简介 2.下载和安装jdk 2.2 下载jdk 2.2 配置环境变量 2.3 常见命令 3.jdk开发 3.1 测试代码(hello world) 3.2 测试代码(animal, do ...

  7. Mac系统搭建hyperf开发环境

    记录一下Mac系统搭建hyperf开发环境 1. 首先确认php版本要大于7.4 $ php -v PHP 7.4.21 (cli) (built: Sep 30 2021 13:37:02) ( N ...

  8. emacs 搭建racket开发环境

    emacs 搭建racket开发环境 emacs下搭建开发racket的环境,笔者之前用过下面两种模式:geiser和racket-mode.相对而言,后一种方式要显得简单.本文主要介绍后一种方式环境 ...

  9. Windows7/10上快速搭建Tesseract-OCR开发环境操作步骤

    之前在https://blog.csdn.net/fengbingchun/article/details/51628957 中描述过如何在Windows上搭建Tesseract-OCR开发环境,那时 ...

最新文章

  1. SHELL-命令解释程序
  2. 德勒报告:2018年全球生命科学发展趋势
  3. thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)
  4. springboot activiti 配置项详解
  5. 数据结构栈的知识_数据知识栈
  6. 198. house robber 题解
  7. 《图解HTTP》读书笔记(二:各种协议与HTTP协议之间的关系)
  8. 牛客网华为机试题java,华为机试题
  9. 牛客网Python笔试技巧、单行多行输入方法以及代码调试技巧
  10. vss服务器状态失败_修复VSS 6.0错误的方法
  11. ARM开发软件ADS教程
  12. 加壳与脱壳知识点(持续更新)
  13. docker搭建FastDFS及遇到的问题解决
  14. openssl下载与安装
  15. fullCalendar获取某一天的日程(event)
  16. 基于javaweb、springboot2.1旅游管理系统01
  17. 如何正确使用SIM卡呢?
  18. Cesium 修改鼠标操作习惯
  19. Android MediaPlayer本地视频播放器
  20. 比JMeter还轻量的压力测试工具是谁?Siege

热门文章

  1. Windows下swig安装与配置
  2. string.h头文件的简单运用
  3. c语言怎么返回数组,c++从函数返回数组的方法代码
  4. 我学习编程的好的学习方法!
  5. 基于蜻蜓优化算法的配电网重构求解(Python代码实现)【IEEE123节点算例】
  6. 如何使用 Python 操作 .npy 文件?详细教程分享
  7. 《架构师》被孟岩表扬,心里高兴
  8. Spring教程——Spring Bean继承
  9. 【附源码】计算机毕业设计JAVA支部党建工作
  10. 毕业设计-基于MATLAB的含噪语音信号降噪处理系统