k8s CRD(一)quick start

k8s CRD(一)quick start

1.安裝CRD所需環境

1、去找一個k8s集羣
2、找一臺master節點(可以用kuberctl命令的即可),安裝golang,配置好Gopath

2.開始安裝

訪問kubebuilder指導手冊

os=$(go env GOOS)
arch=$(go env GOARCH)
curl -L https://go.kubebuilder.io/dl/2.3.0/${os}/${arch} | tar -xz -C /tmp/ #下載包並放到/tmp下
sudo mv /tmp/kubebuilder_2.3.0_${os}_${arch} /usr/local/kubebuilder #拷貝到/usr/local/kubebuilder下
export PATH=$PATH:/usr/local/kubebuilder/bin ##最好放在/etc/profile。然後source /etc/profile

這邊可能下載不下來包,你可以訪問這個網址https://go.kubebuilder.io/dl/2.3.0。自己下載就行

上面完成後,試一下kubebuilder --help會出現指導就算安裝完成
接下來創建一個簡單的CRD

mkdir $GOPATH/src/example
cd $GOPATH/src/example
export GO111MODULE=on 
export GOPROXY=https://goproxy.io
kubebuilder init --domain my.domain ##這邊會拉取很多包
kubebuilder create api --group webapp --version v1 --kind Guestbook
要是遇到:/bin/sh: kustomize: command not found
那就:go get github.com/kubernetes-sigs/kustomize
make install
make run

要是上述步驟沒抱什麼其他錯的話,那就說明你的CRD controller已經部署在集羣了,運行以下命令查看:

kubectl get crd
會看到如下:
guestbooks.webapp.my.domain            2020-03-10T04:23:03Z

可以在源碼目錄下看到config文件下有個sample文件夾,裏面有例子:

kubectl apply -f config/samples/
然後
kubectl get guestbook
返回
NAME               AGE
guestbook-sample   29s

那就完成了一個簡單的CRD demo了

3.構建CRD鏡像並部署進k8s

構建鏡像並推送至你的鏡像倉庫

make docker-build docker-push IMG=<some-registry>/<project-name>:tag

指定鏡像將controller部署進你的集羣

make deploy IMG=<some-registry>/<project-name>:tag

4.卸載CRD

make uninstall
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章