• 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
  • 相关阅读:
    程序员的私人外包专家
    目录
    Autumoon Code Library 2008 Beta版 重新发布
    为您的开发团队找个好管家
    .NET编程利器:Reflector for .NET
    3. Extension Methods(扩展方法)
    1. C# 3.0简介
    4. Lambda Expressions (Lambda表达式)与Expressions Tree(表达式树)
    7. Query Expressions(查询表达式)
    6. Anonymous Types(匿名类型)
  • 原文地址:https://www.cnblogs.com/wuchangblog/p/14239411.html
Copyright © 2020-2023  润新知