1. 安装GO 1.21
1.1 下载并解压安装介质
wget https://studygolang.com/dl/golang/go1.21.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.2.linux-amd64.tar.gz
1.2 修改环境变量
通过vi .bashrc
来修改环境变量. 我们未使用阿里的GO加速源,因为发现在一些场景下goproxy.io的表现更好。
配置中的"young12"是我的用户名,在使用时请修改。
修改并保存后别忘记 source ~/.bashrc
export GOPATH=/home/young12/gopath
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:/$GOBIN
go env -w GOPROXY=https://goproxy.io,direct
1.3 验证安装结果
执行go version
检查安装结果,如下图:
2. 安装Operator SDK
Operator SDK 快速入门参考:https://sdk.operatorframework.io/docs/building-operators/golang/quickstart/
2.1 首先下载Operator SDK安装介质
这一小节的内容参见https://sdk.operatorframework.io/docs/building-operators/golang/quickstart/
go get -d github.com/operator-framework/operator-sdk
cd $GOPATH/src/github.com/operator-framework/operator-sdk
git checkout master
make tidy
make install
安装后检查下安装结果:
2.2 由于网络原因,需要部署一个本地镜像仓库
这一小节的内容参见https://blog.csdn.net/mcl914/article/details/129610584
打开
sudo vi /etc/host
编辑
127.0.0.1 localhost.com
然后
sudo vi /etc/docker/daemon.json
在Json中增加
"insecure-registries": ["127.0.0.1:5000"],
然后重启Docker使配置生效
sudo systemctl restart docker
详细情况请见参考内容
现在来生成Operator
这一小节的内容参见https://sdk.operatorframework.io/docs/building-operators/golang/quickstart/
部分名称类内容进行了替换。
mkdir myoperator
cd myoperator
go mod init localhost.com/m
operator-sdk init --plugins go/v3 --domain localhost.com --owner "young12"
operator-sdk create api --group cache --version v1alpha1 --kind Memcached --resource --controller
由于网络原因,需要修改DockerFile
:
# 在RUN go mod download之前添加下面这一行:
RUN go env -w GOPROXY=https://goproxy.cn,direct
RUN go mod download
# 然后把下面这一行
FROM gcr.io/distroless/static:nonroot
# 修改为:
FROM gcr.dockerproxy.com/distroless/static:nonroot
然后可以打包Operator并上传了:
make docker-build docker-push IMG="localhost.com:5000/memcached-operator:v0.0.1"
install OLM
https://sdk.operatorframework.io/docs/olm-integration/quickstart-bundle/