天天看點

kubebuilder(4)部署&測試

作者:IT技術圈

将crd部署到k8s

make install

日志:

kustomize build config/crd | kubectl apply -f -customresourcedefinition.apiextensions.k8s.io/demoes.tutorial.demo.com created

檢視下

[root@paas-m-k8s-master-1 demo-operator]# kubectl api-resources | grep demo

demoes tutorial.demo.com true Demo

确實有了,不錯哦。

編譯運作controller

make run

保持視窗開啟

。。。日志如下

go run ./main.go

I0314 14:37:11.802311 20314 request.go:665] Waited for 1.037997549s due to client-side throttling, not priority and fairness, request: GET:https://apiserver.cluster.local:6443/apis/rbac.istio.io/v1alpha1?timeout=32s

2024-03-14T14:37:13.055+0800 INFO controller-runtime.metrics metrics server is starting to listen {"addr": ":8080"}

2024-03-14T14:37:13.055+0800 INFO setup starting manager

2024-03-14T14:37:13.055+0800 INFO starting metrics server {"path": "/metrics"}

2024-03-14T14:37:13.055+0800 INFO controller.demo Starting EventSource {"reconciler group": "tutorial.demo.com", "reconciler kind": "Demo", "source": "kind source: /, Kind="}

2024-03-14T14:37:13.055+0800 INFO controller.demo Starting Controller {"reconciler group": "tutorial.demo.com", "reconciler kind": "Demo"}

2024-03-14T14:37:13.258+0800 INFO controller.demo Starting workers {"reconciler group": "tutorial.demo.com", "reconciler kind": "Demo", "worker count": 1}

建立一個crd執行個體

在samples目錄下有一個預設的資源描述檔案tutorial_v1_demo.yaml

我們可以使用進行部署測試

apiVersion: tutorial.demo.com/v1

kind: Demo

metadata:

namespace: demo

name: demo-sample

spec:

# TODO(user): Add fields here

image: nginx:1.22

svcName: demo-ng

replicas: 3

現在還沒有我們自定義的demo crd執行個體,demo nameSpace下也沒有任何pod

# kubectl -n demo get demo

No resources found in default namespace.

# kubectl -n demo get pod

No resources found in demo namespace.

我們apply一下這個demo crd

# kubectl apply -f config/samples/tutorial_v1_demo.yaml

檢視自定義資源

# kubectl get demo -n demo

NAME AGE

demo-sample 12s

controller的日志

kubebuilder(4)部署&測試

檢視資源

# kubectl -n demo get pod

NAME READY STATUS RESTARTS AGE

demo-ng-6df8f7c68f-4mg9n 1/1 Running 0 4m33s

demo-ng-6df8f7c68f-699bv 1/1 Running 0 4m33s

demo-ng-6df8f7c68f-n6zkc 1/1 Running 0 4m33s

看到3個pod都建立出來了

驗證通過patch修改podNum,來增減pod的數量

kubectl -n demo patch demo demo-sample --type merge --patch '{"spec": {"replicas": 5}}'

kubebuilder(4)部署&測試

自動加到了5個

減一下

kubectl -n demo patch demo demo-sample --type merge --patch '{"spec": {"replicas": 2}}'

kubebuilder(4)部署&測試

controller中也會看到對應的日志

kubebuilder(4)部署&測試