• kubernetes-operator


    root@ubuntu:~/kubernetes-operator# source ~/kata/go_source 
    root@ubuntu:~/kubernetes-operator# make images
    mkdir -p output
    GO111MODULE=on GOPROXY=https://mirrors.aliyun.com/goproxy/ GOOS=linux GOARCH=amd64 go build -ldflags "" -o output/ansibleinit cmd/installer/ssh/ansibleinit.go  
    go: finding module for package k8s.io/client-go/rest
    go: downloading github.com/spf13/viper v1.4.0
    go: downloading k8s.io/apimachinery v0.0.0-20190717022731-0bb8574e0887
    go: downloading github.com/fsnotify/fsnotify v1.4.7
    go: downloading github.com/hashicorp/hcl v1.0.0
    go: downloading github.com/mitchellh/mapstructure v1.1.2
    go: downloading github.com/pelletier/go-toml v1.2.0
    go: downloading github.com/spf13/jwalterweatherman v1.0.0
    go: downloading github.com/magiconair/properties v1.8.0
    go: downloading github.com/spf13/cast v1.3.0
    go: downloading golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f
    go: downloading github.com/spf13/afero v1.1.2
    go: downloading k8s.io/klog v0.3.1
    go: downloading github.com/gogo/protobuf v1.2.1
    go: downloading github.com/json-iterator/go v1.1.6
    go: downloading gopkg.in/yaml.v2 v2.2.2
    go: downloading golang.org/x/net v0.0.0-20190613194153-d28f0bde5980
    cmd/installer/ssh/ansibleinit.go:39:2: module k8s.io/client-go@latest found (v1.5.2), but does not contain package k8s.io/client-go/rest
    Makefile:24: recipe for target 'images' failed
    make: *** [images] Error 1
    root@ubuntu:~/kubernetes-operator# ls
    ansible  build  cmd  configs  deploy  doc  go.mod  go.sum  images  LICENSE  main.go  Makefile  output  pkg  README.md  scripts  test
    root@ubuntu:~/kubernetes-operator# grep client-go go.mod
    root@ubuntu:~/kubernetes-operator# grep client-go go.sum 
    k8s.io/client-go v1.5.2 h1:JOxmv4FxrCIOS54kAABbN8/hA9jqGpns+Zc6soNgd8U=
    root@ubuntu:~/kubernetes-operator# make images
    mkdir -p output
    GO111MODULE=on GOPROXY=https://mirrors.aliyun.com/goproxy/ GOOS=linux GOARCH=amd64 go build -ldflags "" -o output/ansibleinit cmd/installer/ssh/ansibleinit.go  
    go: finding module for package k8s.io/client-go/rest
    cmd/installer/ssh/ansibleinit.go:39:2: module k8s.io/client-go@latest found (v1.5.2), but does not contain package k8s.io/client-go/rest
    Makefile:24: recipe for target 'images' failed
    make: *** [images] Error 1
    root@ubuntu:~/kubernetes-operator# go get k8s.io/client-go/rest
    go get k8s.io/client-go/rest: module k8s.io/client-go@upgrade found (v1.5.2), but does not contain package k8s.io/client-go/rest

    更改Makefile,不需要go proxy

    images: 
            mkdir -p output
            GO111MODULE=on  GOOS=$(PLATFORM) GOARCH=arm64 go build -ldflags "$(LDFLAGS)" -o output/ansibleinit $(AnsibleinitPath)
            
            #GO111MODULE=on GOPROXY=https://mirrors.aliyun.com/goproxy/ GOOS=$(PLATFORM) GOARCH=arm64 go build -ldflags "$(LDFLAGS)" -o output/ansibleinit $(AnsibleinitPath)
            docker build --no-cache -f build/ansible/Dockerfile -t ansibleinit .
            
            GO111MODULE=on GOPROXY=https://mirrors.aliyun.com/goproxy/ GOOS=$(PLATFORM) GOARCH=arm64 go build -ldflags "$(LDFLAGS)" -o output/kubernetes-operator $(OperatorPath)
            docker build --no-cache -f build/kube-operator/Dockerfile -t kubernetes-operator .
            @rm -rf output

    更改client版本

    root@ubuntu:~/kubernetes-operator# go mod edit -require="k8s.io/client-go@kubernetes-1.16.1"
    root@ubuntu:~/kubernetes-operator# make images
    mkdir -p output
    GO111MODULE=on  GOOS=linux GOARCH=arm64 go build -ldflags "" -o output/ansibleinit cmd/installer/ssh/ansibleinit.go  
    go: downloading github.com/spf13/viper v1.4.0
    go: downloading k8s.io/apimachinery v0.0.0-20190913080033-27d36303b655
    go: downloading k8s.io/client-go v0.0.0-20191003000419-f68efa97b39e
    go: downloading github.com/pkg/errors v0.8.1
    go: downloading github.com/pelletier/go-toml v1.2.0
    go: downloading github.com/fsnotify/fsnotify v1.4.7
    go: downloading github.com/hashicorp/hcl v1.0.0
    go: downloading github.com/magiconair/properties v1.8.0
    go: downloading github.com/spf13/afero v1.2.2
    go: downloading github.com/mitchellh/mapstructure v1.1.2
    go: downloading golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e
    go: downloading github.com/spf13/cast v1.3.0
    go: downloading golang.org/x/text v0.3.6
    go: downloading github.com/spf13/jwalterweatherman v1.0.0
    go: downloading github.com/spf13/pflag v1.0.5
    go: downloading gopkg.in/yaml.v2 v2.4.0
    go: downloading k8s.io/klog v0.4.0
    go: downloading github.com/gogo/protobuf v1.3.2
    go: downloading github.com/modern-go/reflect2 v1.0.1
    go: downloading github.com/json-iterator/go v1.1.7
    go: downloading sigs.k8s.io/yaml v1.1.0
    go: downloading github.com/google/gofuzz v1.2.0
    go: downloading gopkg.in/inf.v0 v0.9.1
    go: downloading golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d
    go: downloading github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
    go: downloading github.com/davecgh/go-spew v1.1.1
    go: downloading golang.org/x/time v0.0.0-20191024005414-555d28b269f0
    go: downloading k8s.io/utils v0.0.0-20190801114015-581e00157fb1
    go: downloading golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a
    go: downloading golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97
    go: downloading golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b
    #GO111MODULE=on GOPROXY=https://mirrors.aliyun.com/goproxy/ GOOS=linux GOARCH=arm64 go build -ldflags "" -o output/ansibleinit cmd/installer/ssh/ansibleinit.go  
    docker build --no-cache -f build/ansible/Dockerfile -t ansibleinit .
    Sending build context to Docker daemon  61.98MB
    Step 1/10 : FROM golang:1.12-alpine
    1.12-alpine: Pulling from library/golang
    8fa90b21c985: Already exists 
    fa3b0fa9a238: Pulling fs layer 
    583d88f01427: Pulling fs layer 
    269d86263214: Pulling fs layer
    docker build --no-cache -f build/kube-operator/Dockerfile -t kubernetes-operator .
    Sending build context to Docker daemon  62.11MB
    Error response from daemon: Dockerfile parse error line 4: unknown instruction: MKDIR
    Makefile:24: recipe for target 'images' failed
    make: *** [images] Error 1
    root@ubuntu:~/kubernetes-operator# 

    有mkdir命令

    root@ubuntu:~/kubernetes-operator# docker run -it  -name golang golang:1.12-alpine
    unknown shorthand flag: 'n' in -name
    See 'docker run --help'.
    root@ubuntu:~/kubernetes-operator# docker run -it  --name golang  golang:1.12-alpine
    /go # mkdir go
    /go # ls
    bin  go   src
    /go # go version
    go version go1.12.17 linux/arm64
    /go # exit
    root@ubuntu:~/kubernetes-operator# 

    加上

    RUN mkdir -p /home/kubernetes-operator/logs && 
        mkdir /home/kubernetes-operator/configs
    
    ADD ./output/kubernetes-operator /home/kubernetes-operator
    ADD ./build/operator/control.sh /home/kubernetes-operator 
        && chmod +x /home/kubernetes-operator/control.sh
    
    ADD ./configs/kube-operator /home/kubernetes-operator/configs
    
    WORKDIR /home/kubernetes-operator
    ENTRYPOINT ["control.sh","start"]
    Step 4/7 : ADD ./build/kube-operator/control.sh /home/kubernetes-operator     && chmod +x /home/kubernetes-operator/control.sh
    ADD failed: stat /var/lib/docker/tmp/docker-builder503436960/home/kubernetes-operator: no such file or directory
    Makefile:24: recipe for target 'images' failed

    更改dockerfile

    FROM golang:1.12-alpine
    
    RUN mkdir -p /home/kubernetes-operator/logs && 
        mkdir /home/kubernetes-operator/configs
    
    ADD ./output/kubernetes-operator /home/kubernetes-operator
    ADD ./build/kube-operator/control.sh /home/kubernetes-operator 
    RUN chmod +x /home/kubernetes-operator/control.sh
    
    ADD ./configs/kube-operator /home/kubernetes-operator/configs
    
    WORKDIR /home/kubernetes-operator
    ENTRYPOINT ["control.sh","start"]
    root@ubuntu:~/kubernetes-operator# kubectl create -f  deploy/
    namespace/ecs-system created
    customresourcedefinition.apiextensions.k8s.io/kubernetesclusters.ecs.yun.com created
    deployment.apps/kubernetes-operator created
    clusterrole.rbac.authorization.k8s.io/kubernetes-operator created
    clusterrolebinding.rbac.authorization.k8s.io/kubernetes-operator created
    serviceaccount/kubernetes-operator created
    root@ubuntu:~/kubernetes-operator# kubectl get crd
    NAME                                                  CREATED AT
    bgpconfigurations.crd.projectcalico.org               2021-08-04T02:31:11Z
    bgppeers.crd.projectcalico.org                        2021-08-04T02:31:11Z
    blockaffinities.crd.projectcalico.org                 2021-08-04T02:31:11Z
    clusterinformations.crd.projectcalico.org             2021-08-04T02:31:11Z
    felixconfigurations.crd.projectcalico.org             2021-08-04T02:31:11Z
    foos.samplecontroller.k8s.io                          2021-07-09T10:35:32Z
    globalnetworkpolicies.crd.projectcalico.org           2021-08-04T02:31:11Z
    globalnetworksets.crd.projectcalico.org               2021-08-04T02:31:11Z
    hostendpoints.crd.projectcalico.org                   2021-08-04T02:31:11Z
    ipamblocks.crd.projectcalico.org                      2021-08-04T02:31:11Z
    ipamconfigs.crd.projectcalico.org                     2021-08-04T02:31:11Z
    ipamhandles.crd.projectcalico.org                     2021-08-04T02:31:11Z
    ippools.crd.projectcalico.org                         2021-08-04T02:31:11Z
    kubecontrollersconfigurations.crd.projectcalico.org   2021-08-04T02:31:11Z
    kubernetesclusters.ecs.yun.com                        2021-08-10T06:50:23Z
    networkpolicies.crd.projectcalico.org                 2021-08-04T02:31:11Z
    networksets.crd.projectcalico.org                     2021-08-04T02:31:11Z
    podgroups.scheduling.incubator.k8s.io                 2021-07-05T06:53:38Z
    podgroups.scheduling.sigs.dev                         2021-07-05T06:53:38Z
    queues.scheduling.incubator.k8s.io                    2021-07-05T06:53:38Z
    queues.scheduling.sigs.dev                            2021-07-05T06:53:38Z
    virtualmachines.cloudnative.tw                        2021-07-08T07:00:28Z
    root@ubuntu:~/kubernetes-operator# kubectl get crd | grep kubernetesclusters
    kubernetesclusters.ecs.yun.com                        2021-08-10T06:50:23Z
    root@ubuntu:~/kubernetes-operator# 
    root@ubuntu:~/kubernetes-operator# kubectl get pods --all-namespaces
    NAMESPACE       NAME                                        READY   STATUS             RESTARTS   AGE
    default         apache-app-84f76964b5-fgsc7                 1/1     Running            0          13h
    default         apache-app-84f76964b5-kt5cx                 1/1     Running            0          4d19h
    default         apache-app-84f76964b5-mmmsc                 1/1     Terminating        0          4d19h
    default         busybox                                     1/1     Terminating        274        12d
    default         example-foo-54dc4db9fc-42jz6                1/1     Terminating        0          10d
    default         example-foo-54dc4db9fc-fmsqn                1/1     Running            0          13h
    default         nginx-app-56b5bb67cc-mkfct                  1/1     Running            0          13h
    default         nginx-app-56b5bb67cc-s9jtk                  1/1     Running            0          4d19h
    default         nginx-app-56b5bb67cc-vkblw                  1/1     Terminating        0          4d19h
    default         web2-7cdf5dffb-26xrn                        1/1     Running            0          6d3h
    default         web3-c9654466d-xwb5j                        1/1     Running            0          6d3h
    ecs-system      kubernetes-operator-597c68d6f4-csznd        0/1     InvalidImageName   0          21s
    ecs-system      kubernetes-operator-597c68d6f4-jr2m8        0/1     InvalidImageName   0          21s
    ecs-system      kubernetes-operator-597c68d6f4-mphvh        0/1     InvalidImageName   0          21s

    需要更改deploy 镜像

    root@ubuntu:~/kubernetes-operator/deploy# cat kube-operator.yaml 
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: kubernetes-operator
      namespace: ecs-system
    spec:
      replicas: 3
      selector:
        matchLabels:
          name: kubernetes-operator
      template:
        metadata:
          labels:
            name: kubernetes-operator
        spec:
          serviceAccountName: kubernetes-operator
          containers:
            - name: kubernetes-operator
              # Replace this with the built image name
              image: REPLACE_IMAGE
              imagePullPolicy: Always
              env:
                - name: WATCH_NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: POD_NAME
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.name
                - name: OPERATOR_NAME
                  value: "kubernetes-operator"
    root@ubuntu:~/kubernetes-operator# go mod edit -require="k8s.io/client-go@kubernetes-1.16.1"
    root@ubuntu:~/kubernetes-operator# go clean --modcache
    root@ubuntu:~/kubernetes-operator# make images
    mkdir -p output
    GO111MODULE=on GOPROXY=https://mirrors.aliyun.com/goproxy/ GOOS=linux GOARCH=arm64 go build -ldflags "" -o output/ansibleinit cmd/installer/ssh/ansibleinit.go  

    一、下载go-client包

    1 $ go get -u -v k8s.io/client-go/... 因 

    为了确认下载的确在进行,加上了-u和-v,可以看见具体下载的过程。 下载完成后,

    对照官方GitHub中go-client和执行下面的操作: 

    cd $GOPATH/src/k8s.io/client-go $ git checkout v9.0.0 #这里要根据版本对照表,找出和自己的Kubernetes集群对应的版本

  • 相关阅读:
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571 按顺序等距排列平行直线
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571GS标记子实体
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571获取和修改摘要信息
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571长事务
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571按表走呵呵!(延时死循环)
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571修改多段线的凸度
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571临时反应器的简单应用
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571自创实体类从AcDbCurve派生,实现一些类方法并动态绘制
    2021年1月1日 AutoCAD.Net/C#.Net QQ群:193522571多段线动态切割闭合区域
    动态块
  • 原文地址:https://www.cnblogs.com/dream397/p/15123104.html
Copyright © 2020-2023  润新知