Operator基础:2: Operator SDK安装_淼叔的博客-程序员ITS301

技术标签: kubernetes  # 深入浅出kubernetes  sdk  operator  

在这里插入图片描述

在前一篇文章中介绍了Operator Framework,提到了Operator SDK是用来搭建脚手架的重要工具,这篇文章就Operator SDK进行继续展开。

Operator Framework

关于Operator和Operator Framework的介绍,可参看:

基本信息

Operator SDK的基本信息如下所示:

项目 说明
官方网站 https://sdk.operatorframework.io/
开源/闭源 开源
License类别 Apache License 2.0
代码管理地址 https://github.com/operator-framework/operator-sdk
开发语言 Go
支持平台 由于使用Go,可以支持多种操作系统诸如Linux/MacOSX等
当前版本 1.2.0 (2020/11/12)

三种开发方式

通过使用SDK-CLI,可以使用如下三种方式进行CRD相关的扩展开发,

  • go
  • Ansible
  • Helm
    三者相关所能实现的能力如下所示,使用Helm一般只能实现安装和无缝升级等功能。
    在这里插入图片描述

安装方式

方式1: 使用brew安装(MacOS)

在MacOS下,可以直接使用brew进行安装

执行命令:brew install operator-sdk

方式2: 二进制文件(github)

使用github的release下提供的支持各种OS的相应二进制文件,然后进行权限设定即可。

  • 下载文件
# Set the release version variable
$ RELEASE_VERSION=v1.2.0
# Linux
$ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu
$ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/ansible-operator-${RELEASE_VERSION}-x86_64-linux-gnu
$ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/helm-operator-${RELEASE_VERSION}-x86_64-linux-gnu
# macOS
$ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin
$ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/ansible-operator-${RELEASE_VERSION}-x86_64-apple-darwin
$ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/helm-operator-${RELEASE_VERSION}-x86_64-apple-darwin
  • 安装设定
# Linux
$ chmod +x operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu && sudo mkdir -p /usr/local/bin/ && sudo cp operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu /usr/local/bin/operator-sdk && rm operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu
$ chmod +x ansible-operator-${RELEASE_VERSION}-x86_64-linux-gnu && sudo mkdir -p /usr/local/bin/ && sudo cp ansible-operator-${RELEASE_VERSION}-x86_64-linux-gnu /usr/local/bin/ansible-operator && rm ansible-operator-${RELEASE_VERSION}-x86_64-linux-gnu
$ chmod +x helm-operator-${RELEASE_VERSION}-x86_64-linux-gnu && sudo mkdir -p /usr/local/bin/ && sudo cp helm-operator-${RELEASE_VERSION}-x86_64-linux-gnu /usr/local/bin/helm-operator && rm helm-operator-${RELEASE_VERSION}-x86_64-linux-gnu
# macOS
$ chmod +x operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin && sudo mkdir -p /usr/local/bin/ && sudo cp operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin /usr/local/bin/operator-sdk && rm operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin
$ chmod +x ansible-operator-${RELEASE_VERSION}-x86_64-apple-darwin && sudo mkdir -p /usr/local/bin/ && sudo cp ansible-operator-${RELEASE_VERSION}-x86_64-apple-darwin /usr/local/bin/ansible-operator && rm ansible-operator-${RELEASE_VERSION}-x86_64-apple-darwin
$ chmod +x helm-operator-${RELEASE_VERSION}-x86_64-apple-darwin && sudo mkdir -p /usr/local/bin/ && sudo cp helm-operator-${RELEASE_VERSION}-x86_64-apple-darwin /usr/local/bin/helm-operator && rm helm-operator-${RELEASE_VERSION}-x86_64-apple-darwin

方式3: 源码安装

$ git clone https://github.com/operator-framework/operator-sdk
$ cd operator-sdk
$ git checkout master
$ make install

安装示例

这里以方式2为例,在MacOS上安装operator-sdk为例,执行如下命令和日志如下所示

liumiaocn:~ liumiao$ RELEASE_VERSION=v1.2.0
liumiaocn:~ liumiao$ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   665  100   665    0     0    360      0  0:00:01  0:00:01 --:--:--   360
100 62.2M  100 62.2M    0     0  4001k      0  0:00:15  0:00:15 --:--:-- 7140k
liumiaocn:~ liumiao$ chmod +x operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin && sudo mkdir -p /usr/local/bin/ && sudo cp operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin /usr/local/bin/operator-sdk && rm operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin
Password:
liumiaocn:~ liumiao$ 

结果确认

liumiaocn:~ liumiao$ which operator-sdk
/usr/local/bin/operator-sdk
liumiaocn:~ liumiao$ operator-sdk version
operator-sdk version: "v1.2.0", commit: "215fc50b2d4acc7d92b36828f42d7d1ae212015c", kubernetes version: "v1.18.8", go version: "go1.15.3", GOOS: "darwin", GOARCH: "amd64"
liumiaocn:~ liumiao$ 

其他

BTW,Operator SDK开头的图的颜色的原因是因为这个。
在这里插入图片描述

参考内容

https://sdk.operatorframework.io/
https://github.com/operator-framework/operator-sdk

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liumiaocn/article/details/110054672

智能推荐

c++ idea 插件_idea快速开发插件_weixin_39914975的博客-程序员ITS301

插件:1、Background Image Plus这款插件并不能直接提高你的开发效率,但是可以让你面对的IDE不再单调,当把背景设置成你自己心仪的的图片,是不是会感觉很赏心悦目,编码效率会不会因此间接的提高?!2、Mybatis Log PluginMybatis现在是java中操作数据库的首选,在开发的时候,我们都会把Mybatis的脚本直接输出在console中,但是默认的情况下,输出的脚本...

statfs:查询文件系统相关的信息。_路漫漫其远,吾求索的博客-程序员ITS301_statfs头文件

1,头文件:#include <sys/vfs.h>#include <sys/statfs.h>2,函数声明: int statfs(const char *path, struct statfs *buf); int fstatfs(int fd, struct statfs *buf);3,函数参数:path: 需要查询信息的文件系统的文件路径名。fd: 需要查询信息的文件系统的文件描述词。buf:以下结构体的指针变量,用于储存文件系统相关的

soundjs的简单示例_bboyjoe的博客-程序员ITS301

html代码 soundJs的应用 播放js代码:var displayStatus;displayStatus=document.getElementById("status");src="3.mp4";createjs.Sound.alternateExtensions=["mp4"];createjs.Sound.a

MyBatis-Plus--分页时的排序--方法/教程/实例_IT利刃出鞘的博客-程序员ITS301_mybatisplus排序

说明本文用示例介绍MyBtisPlus分页时排序的方法。分页时排序的方法后端OrderItems排序后端Wrapper排序前端指定排序

Android 7.0 实现从图库选择图片的功能_邹奇的博客-程序员ITS301_android选择图片

背景从手机图库选择一张图片并裁剪是我原来自己实现过的功能,但是当我在我自己的开发的个人项目再次实现这个功能的时候,发现该功能失效了。通过看日志分析,发现原因是:当Android版本高的时候,有些方法不适用或者是有些权限需要动态申请了。所以现在重新在自己的小米手机上(Android 7.0)实现该功能,下面来一起看一下我的实现过程。添加依赖项目中我用到了一些第三方的库,方便代码的实现...

Android中跨进程通信RemoteCallbackList的使用_白水景东的博客-程序员ITS301_android remotecallbacklist

在做FWK时,经常用到RemoteCallbackList,是线程与线程之间交流的的重要工具,他的主要作用就是把多个callback保存到列表里,在合适的时机同时回调,也可以防止重复的调用相同的任务,只保证你需要的一个结果回调。还有一个值得注意的就是,通过aidl,我们可以实现client(后称客户端)和server(服务端)的双向通信,有时候server和client处于不同的进程当中,如果client意外退出,server再向client发送消息的话,就有可能导致server端也退出,这个时候安卓提

随便推点

android 8.1 下拉栏Systemui的修改_「已注销」的博客-程序员ITS301

1.下拉开关的创建(哪些显示哪些不显示):在vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/tileimpl/QSFactoryImpl.java中进行开关的创建;不显示直接屏蔽就好 public QSTile createTile(String tileSpec) { ...

Java写的一个计算器(用堆栈实现复杂运算)_小天Smile的博客-程序员ITS301

运算效果核心类package cn.xt.calculator;import java.util.Stack;public class Calculator { private Stack<Character> charStack = new Stack<Character>(); private Stack<Double&...

安卓解决Error inflating class android.support.v7.widget.RecyclerView_向向向的博客-程序员ITS301

使用RecyclerView时出现Error: inflating class android.support.v7.widget.RecyclerView解决方法:打开 build.gradle找到代码如下:dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementat...

2016计算机二级java_2016年计算机二级《JAVA》考试练习题_凉个秋的博客-程序员ITS301

2016年计算机二级《JAVA》考试练习题Java语言程序设计是计算机二级考试科目之一,为了帮助考生们更好、更有准备地参加考试,下面是百分网小编为大家搜索整理的关于二级《JAVA》考试练习题,欢迎参考练习,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!1、单击窗口内的按钮时,产生的事件是(  )。A.MouseEventB.WindowEventC.ActionEventD...

【海思爬坑记】Hi3516_Hi3519A_Hi3559A视频编解码get venc stream time out错误处理_blog.pytool.com的博客-程序员ITS301

【海思爬坑记】Hi3516_Hi3519A_Hi3559A视频编解码get venc stream time out错误处理结论: 一般出现这个错误一定是配置的问题,可以通过cat /proc/umap/venc 查看视频流是否正常。比如 在SAMPLE_COMM_IVE_StartViVpssVencVo() 函数中 if (HI_TRUE == pstSwitch->bVe...