[kubebuilder] install

zzery·2022년 4월 17일

일지(2022~2024)

목록 보기
4/25

오퍼레이터 개발툴은 여러가지가 있는데

  • Operator SDK
  • KubeBuilder
  • kudo

kudo는 성격이 달라 제외하고, 위의 2개의 차이는 아래와 같음.

SDK가 좀 더 범용적 범위의 기능을 포함한 툴로 보인다.

그래서 SDK를 쓰고 kubebuilder랑 호환되는지 테스트해본다.

Operator SDK 설치

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

# 또는 이렇게git checkout tags/v1.19.1 -b v1.19.1
❯ make install

# $GOPATH/bin/
❯ go env | grep GOPATH
❯ sudo cp ./operator-sdk /usr/bin/operator-sdk
❯ operator-sdk version
operator-sdk version: "v1.19.1", commit: "079d8852ce5b42aa5306a1e33f7ca725ec48d0e3", kubernetes version: "v1.23", go version: "go1.18", GOOS: "linux", GOARCH: "amd64"

프로젝트 생성

mkdir demo-operator && cd demo-operator

❯ operator-sdk init demo-operator --repo github.com/solidcellamoon/demo-operator
Writing kustomize manifests for you to edit...
Writing scaffold for you to edit...
Get controller runtime:
$ go get sigs.k8s.io/controller-runtime@v0.11.0
Update dependencies:
$ go mod tidy
Next: define a resource with:
$ operator-sdk create api

버전 호환 문제로 막힘

sdk cli 설치

go언어 버전 바꾸기

rm -rf /usr/local/go && tar -C /usr/local -xzf {tar파일명}

kubebuilder 설치

SDK 설치에 시간이 많이 걸려서 kubebuilder로 변경.

사용 언어에 맞춰서 받아야 함. 이번엔 1.16으로.

wget https://github.com/kubernetes-sigs/kubebuilder/releases/download/v3.2.0/kubebuilder_linux_amd64
❯ chmod +x kubebuilder && mv kubebuilder /usr/local/bin/
❯ kubebuilder version
Version: main.version{KubeBuilderVersion:"3.2.0", KubernetesVendor:"1.22.1", GitCommit:"b7a730c84495122a14a0faff95e9e9615fffbfc5", BuildDate:"2021-10-29T18:32:16Z", GoOs:"linux", GoArch:"amd64"}

init, create까지는 똑같다.

그리고 에러는...
gcc 설치 안해서 에러난거였다.

go 버전 관리는 gvm으로 해주면 편하다.

나같은 경우는 평소는 1.18인데, kubebuilder를 쓸 때는 1.16으로 설정해주면 되겠다.

profile
이 블로그의 모든 글은 수제로 짜여져 있습니다...

1개의 댓글

comment-user-thumbnail
2022년 4월 17일
답글 달기