Kubernetes CRD sample-controller的編譯和測試

系統版本

[root@reg sample-controller]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)

golang版本

[root@reg ~]# go version 
go version go1.10.1 linux/amd64

GOPATH

[root@reg sample-controller]# go env | grep GOPATH
GOPATH="/root/qinzhao/"

在GOPATH/src/k8s.io/目錄下clone項目代碼

go get k8s.io/apimachinery //下載依賴
[root@reg k8s.io]# git clone https://github.com/kubernetes/sample-controller.git //clone代碼
Cloning into 'sample-controller'...
remote: Enumerating objects: 56, done.
remote: Counting objects: 100% (56/56), done.
remote: Compressing objects: 100% (50/50), done.
Receiving objects: 100% (15278/15278), 8.23 MiB | 240.00 KiB/s, done.
remote: Total 15278 (delta 10), reused 36 (delta 6), pack-reused 15222
Resolving deltas: 100% (10052/10052), done.
[root@reg k8s.io]# ls -l 
total 12
drwxr-xr-x  8 root root 4096 Dec 24 13:38 apimachinery
drwxr-xr-x  6 root root 4096 Oct 28  2017 kube-openapi
drwxr-xr-x 10 root root 4096 Dec 24 13:42 sample-controller
[root@reg k8s.io]# cd sample-controller/
[root@reg sample-controller]# ls -l 
total 92
drwxr-xr-x 3 root root  4096 Dec 24 13:42 artifacts
-rw-r--r-- 1 root root   148 Dec 24 13:42 code-of-conduct.md
-rw-r--r-- 1 root root   740 Dec 24 13:42 CONTRIBUTING.md
-rw-r--r-- 1 root root 16100 Dec 24 13:42 controller.go
-rw-r--r-- 1 root root  9349 Dec 24 13:42 controller_test.go
drwxr-xr-x 3 root root  4096 Dec 24 13:42 docs
drwxr-xr-x 2 root root  4096 Dec 24 13:42 Godeps
drwxr-xr-x 2 root root  4096 Dec 24 13:42 hack
-rw-r--r-- 1 root root 11358 Dec 24 13:42 LICENSE
-rw-r--r-- 1 root root  2735 Dec 24 13:42 main.go
-rw-r--r-- 1 root root   108 Dec 24 13:42 OWNERS
drwxr-xr-x 5 root root  4096 Dec 24 13:42 pkg
-rw-r--r-- 1 root root  5803 Dec 24 13:42 README.md
-rw-r--r-- 1 root root   621 Dec 24 13:42 SECURITY_CONTACTS
drwxr-xr-x 7 root root  4096 Dec 24 13:42 vendor
[root@reg sample-controller]# pwd
/root/qinzhao/src/k8s.io/sample-controller

生成client-go的代碼

[root@reg sample-controller]# pwd
/root/qinzhao/src/k8s.io/sample-controller
[root@reg sample-controller]# ./hack/update-codegen.sh 
Generating deepcopy funcs
Generating clientset for samplecontroller:v1alpha1 at k8s.io/sample-controller/pkg/client/clientset
Generating listers for samplecontroller:v1alpha1 at k8s.io/sample-controller/pkg/client/listers
Generating informers for samplecontroller:v1alpha1 at k8s.io/sample-controller/pkg/client/informers

編譯sample-controller

[root@reg sample-controller]# go build -v -o  samplecontroller
k8s.io/sample-controller/vendor/k8s.io/apimachinery/pkg/selection
k8s.io/sample-controller/vendor/k8s.io/client-go/util/integer
k8s.io/sample-controller/vendor/k8s.io/client-go/util/buffer
k8s.io/sample-controller/vendor/github.com/hashicorp/golang-lru/simplelru
k8s.io/sample-controller/vendor/github.com/golang/groupcache/lru
k8s.io/sample-controller/vendor/github.com/gogo/protobuf/sortkeys
k8s.io/sample-controller/vendor/github.com/gogo/protobuf/proto
k8s.io/sample-controller/vendor/gopkg.in/inf.v0
k8s.io/sample-controller/vendor/github.com/google/gofuzz
k8s.io/sample-controller/vendor/k8s.io/apimachinery/third_party/forked/golang/reflect
k8s.io/sample-controller/vendor/k8s.io/apimachinery/pkg/fields
k8s.io/sample-controller/vendor/k8s.io/apimachinery/pkg/util/sets
k8s.io/sample-controller/vendor/k8s.io/apimachinery/pkg/conversion
k8s.io/sample-controller/vendor/k8s.io/apimachinery/pkg/util/errors
...

編譯完成之後,會生成名爲samplecontroller的二進制文件

-rwxr-xr-x  1 root root 38424399 Dec 24 14:54 samplecontroller

創建crd

➜  sample-controller git:(master) ✗ kubectl create -f artifacts/examples/crd.yaml
customresourcedefinition.apiextensions.k8s.io/foos.samplecontroller.k8s.io created

查看CRD

➜   kubectl get crd 
NAME                                    CREATED AT

foos.samplecontroller.k8s.io            2018-12-24T06:18:42Z

部署CRD

kubectl create -f artifacts/examples/example-foo.yaml
 ~  kubectl get deployment 
NAME             DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
example-foo      1         1         1            1           43m
~ kubectl get pods | grep example-foo
example-foo-6cbc69bf5d-mf8lf     1/1       Running            0          47m

搞定

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