centos安装golang,dep,git,kubebuilder、operator-sdk

一、安装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 $GOPATH/src/example
2、cd  $GOPATH/src/example
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
go get github.com/kubernetes-sigs/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-operator
operator-sdk init --domain=example.com --repo=github.com/example-inc/memcached-operator

3、创建一个api和控制器

operator-sdk create api --group=cache --version=v1alpha1 --kind=Memcached
原文地址:https://www.cnblogs.com/wuchangblog/p/14239411.html