operator framework搭建operator开发环境
简介
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开发环境相关推荐
- 在CentOS 6.2上搭建vim开发环境
在CentOS 6.2上搭建vim开发环境 最后更新日期:2013-07-05 1.首先使用Ubuntu(所在ip为192.168.16.230)翻墙登陆http://www.vim.org/,下载其 ...
- mac搭建python开发环境_Mac中基于Homebrew搭建python开发环境
转移到mac上了.这里是在lion中搭建python开发环境的简单记录.这份记录不是一份step by step.而是事后写的记录,可能有记忆遗漏.如果有错误,请指正. 1.安装homebrew的准备 ...
- 【Tools】Visual Studio 2019搭建Qt开发环境
00. 目录 文章目录 00. 目录 01. 概述 02. Visual Studio 2019安装 03. Qt6安装 04. qt-vsaddin插件下载 05. qt-vsaddin插件安装 0 ...
- 初探webpack之从零搭建Vue开发环境
初探webpack之搭建Vue开发环境 平时我们可以用vue-cli很方便地搭建Vue的开发环境,vue-cli确实是个好东西,让我们不需要关心webpack等一些繁杂的配置,然后直接开始写业务代码, ...
- mac搭建python开发环境_Mac打造python2 python3开发环境
最新版的MacOS Sierra默认带的python环境仍然为2.7.10,本文将介绍使用Brew安装python3.5并做简单的配置,打造python2,python3共存的开发环境 直接尝试bre ...
- 【java开发】快速搭建java开发环境(离线开发、在线开发)
文章目录 1.简介 2.下载和安装jdk 2.2 下载jdk 2.2 配置环境变量 2.3 常见命令 3.jdk开发 3.1 测试代码(hello world) 3.2 测试代码(animal, do ...
- Mac系统搭建hyperf开发环境
记录一下Mac系统搭建hyperf开发环境 1. 首先确认php版本要大于7.4 $ php -v PHP 7.4.21 (cli) (built: Sep 30 2021 13:37:02) ( N ...
- emacs 搭建racket开发环境
emacs 搭建racket开发环境 emacs下搭建开发racket的环境,笔者之前用过下面两种模式:geiser和racket-mode.相对而言,后一种方式要显得简单.本文主要介绍后一种方式环境 ...
- Windows7/10上快速搭建Tesseract-OCR开发环境操作步骤
之前在https://blog.csdn.net/fengbingchun/article/details/51628957 中描述过如何在Windows上搭建Tesseract-OCR开发环境,那时 ...
最新文章
- SHELL-命令解释程序
- 德勒报告:2018年全球生命科学发展趋势
- thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)
- springboot activiti 配置项详解
- 数据结构栈的知识_数据知识栈
- 198. house robber 题解
- 《图解HTTP》读书笔记(二:各种协议与HTTP协议之间的关系)
- 牛客网华为机试题java,华为机试题
- 牛客网Python笔试技巧、单行多行输入方法以及代码调试技巧
- vss服务器状态失败_修复VSS 6.0错误的方法
- ARM开发软件ADS教程
- 加壳与脱壳知识点(持续更新)
- docker搭建FastDFS及遇到的问题解决
- openssl下载与安装
- fullCalendar获取某一天的日程(event)
- 基于javaweb、springboot2.1旅游管理系统01
- 如何正确使用SIM卡呢?
- Cesium 修改鼠标操作习惯
- Android MediaPlayer本地视频播放器
- 比JMeter还轻量的压力测试工具是谁?Siege