一、安装golang
1、下载安装包
下载地址:https://studygolang.com/dl 本次下载 go1.14.1.linux-amd64.tar.gz wget https://studygolang.com/dl/golang/go1.14.1.linux-amd64.tar.gz
2、解压到指定目录
tar -C /usr/local -xzf go1.14.1.linux-amd64.tar.gz 解压后在目录 /usr/local/go中
3、配置环境变量
设置GOPATH 目录 mkdir -p /home/gocode
vim /etc/profile
在最后一行加入 按i插入 export GOROOT=/usr/local/go #设置为go安装的路径 export GOPATH=/home/gocode #默认安装包的路径 export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
4、source /etc/profile
二、安装dep
1、linux
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
2、windows
go get -u github.com/golang/dep/cmd/dep
3、安装相应插件
yum -y install build-dep gcc
三、下载client-go
go get k8s.io/client-go/...
四、安装godep包管理工具
go get github.com/tools/godep
五、安装kubebuilder
1、安装kubebuilder os=$(go env GOOS) arch=$(go env GOARCH) curl -L https://go.kubebuilder.io/dl/2.3.1/${os}/${arch} | tar -xz -C /tmp/ sudo mv /tmp/kubebuilder_2.3.1_${os}_${arch} /usr/local/kubebuilder export PATH=$PATH:/usr/local/kubebuilder/bin kubuilder创建项目 1、mkdir /root/test && cd /root/test 2、go mod init test 3. 创建脚手架工程 kubebuilder init --domain edas.io 这一步创建了一个 Go module 工程,引入了必要的依赖,创建了一些模板文件。 4、创建API kubebuilder create api --group apps --version v1alpha1 --kind Application 5、安装 CRDs 到集群 make install 6、本地前台运行 controller make run 7、部署自定义资源的实例 kubectl apply -f config/samples/ 8、修改 Dockefile cp -a ~/.kube kube vi Dockerfile FROM golang:1.12.5 as builder WORKDIR /example COPY go.mod go.mod COPY go.sum go.sum RUN rm -rf $GOPATH/go.mod && export GOPROXY=https://goproxy.cn && go mod download COPY main.go main.go COPY api/ api/ COPY controllers/ controllers/ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -a -o manager main.go FROM gcr.azk8s.cn/distroless/static:nonroot WORKDIR / COPY kube /root/.kube COPY --from=builder /example/manager . #USER nonroot:nonroot ENTRYPOINT ["/manager"] 9、构建/推送镜像 make docker-build docker-push IMG=<some-registry>/<project-name>:tag 10、部署到集群 make deploy IMG=<some-registry>/<project-name>:tag
六、还需要装下kustomize 这可是个渲染yaml的神器,让helm颤抖。
go install sigs.k8s.io/kustomize/v3/cmd/kustomize
七、安装operator-sdk项目
1、安装operator-sdk
RELEASE_VERSION=v1.2.0 curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu chmod +x operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu && sudo mkdir -p /usr/local/bin/ && sudo cp operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu /usr/local/bin/operator-sdk && rm operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu
2、Create a project
mkdir memcached-operator cd memcached-operatoroperator-sdk init --domain=example.com --repo=github.com/example-inc/memcached-operator
3、创建一个api和控制器
operator-sdk create api --group=cache --version=v1alpha1 --kind=Memcached