operator-sdk
weight: 109 title: Operator SDK date: ‘2022-05-21T00:00:00+08:00’ type: book
Operator SDK 由
使用kubectl
来操作
下面我们将安装和试用一下
安装Operator SDK
$ mkdir -p $GOPATH/src/github.com/operator-framework
$ cd $GOPATH/src/github.com/operator-framework/operator-sdk
$ dep ensure
Create kubernetes-operator-sdk-tutorial/cmd/kubernetes-operator-sdk-tutorial/main.go
Create kubernetes-operator-sdk-tutorial/config/config.yaml
Create kubernetes-operator-sdk-tutorial/deploy/rbac.yaml
Create kubernetes-operator-sdk-tutorial/deploy/cr.yaml
Create kubernetes-operator-sdk-tutorial/pkg/apis/jimmysong/v1alpha1/doc.go
Create kubernetes-operator-sdk-tutorial/pkg/apis/jimmysong/v1alpha1/register.go
Create kubernetes-operator-sdk-tutorial/pkg/apis/jimmysong/v1alpha1/types.go
Create kubernetes-operator-sdk-tutorial/pkg/stub/handler.go
Create kubernetes-operator-sdk-tutorial/tmp/build/build.sh
Create kubernetes-operator-sdk-tutorial/tmp/build/docker_build.sh
Create kubernetes-operator-sdk-tutorial/tmp/build/Dockerfile
Create kubernetes-operator-sdk-tutorial/tmp/codegen/boilerplate.go.txt
Create kubernetes-operator-sdk-tutorial/tmp/codegen/update-generated.sh
Create kubernetes-operator-sdk-tutorial/Gopkg.toml
Create kubernetes-operator-sdk-tutorial/Gopkg.lock
Run dep ensure ...
Root project is "github.com/rootsongjc/kubernetes-operator-sdk-tutorial"
3 transitively valid internal packages
12 external packages imported from 4 projects
(0) ✓ select (root)
(1) ? attempt k8s.io/api with 1 pkgs; at least 1 versions to try
(1) try k8s.io/api@kubernetes-1.9.3
(1) ✓ select k8s.io/api@kubernetes-1.9.3 w/1 pkgs
(2) ? attempt k8s.io/apimachinery with 4 pkgs; at least 1 versions to try
(2) try k8s.io/apimachinery@kubernetes-1.9.3
(2) ✓ select k8s.io/apimachinery@kubernetes-1.9.3 w/22 pkgs
...
$ go install github.com/operator-framework/operator-sdk/commands/operator-sdk
该过程需要几分钟,请耐心等待。确认 $GOPATH/bin/operator-sdk
文件位于您的 $PATH
目录下。
创建项目
$ cd $GOPATH/src/github.com/<your-github-repo>/
$ operator-sdk new <operator-project-name> --api-version=<your-api-group>/<version> --kind=<custom-resource-kind>
$ cd <operator-project-name>
- operator-project-name:创建的项目的名称
- your-api-group:
Kubernetes 自定义API 的组名,一般用域名如jimmysong.io
- version:
Kubernetes 自定义资源的API 版本 - custom-resource-kind:
CRD 的名称
operator-sdk new kubernetes-operator-sdk-tutorial --api-version=jimmysong.io/v1alpha1 --kind=operator-sdk