go mod init go-test#设置代理,是为了下载依赖包更快一些go env -w GOPROXY=https://goproxy.cn,direct#拉取依赖包go mod tidy#构建源码CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o go-k8sdemo main.go#直接运行程序./go-k8sdemo
编写dockerfile文件
vim Dockerfile FROM alpineADD go-k8sdemo /data/app/WORKDIR /data/app/CMD ["/bin/sh","-c","./go-k8sdemo"]
构建镜像
docker build -t go-test/go-k8sdemo:v1 .
打包镜像,传到harbor
docker save -o go-k8sdemo.tar.gz go-test/go-k8sdemo:v1scp go-k8sdemo.tar.gz node1:/root/#在xianchaonode1节点解压镜像docker load -i go-k8sdemo.tar.gz#上传到harbordocker login 172.16.183.74 #harbor虚机suspend重启之后需要重新install harbordocker tag go-test/go-k8sdemo:v1 172.16.183.74/go-test/go-k8sdemo:v1docker push 172.16.183.74/go-test/go-k8sdemo:v1
curl 172.16.183.76:30835#{"status":"success~welcome to study"}
发布go代码到k8s-示例2
准备源码和镜像
准备源码
mkdir go-gamecd go-game
tee main.go <<'EOF'package mainimport ( "fmt" "math/rand" "time")const maxGuesses = 10func main() { rand.Seed(time.Now().UnixNano()) number := rand.Intn(100) + 1 fmt.Println("I'm thinking of a number between 1 and 100.") fmt.Printf("You have %d guesses.\n", maxGuesses) for guesses := 1; guesses <= maxGuesses; guesses++ { fmt.Printf("Guess #%d: ", guesses) var guess int _, err := fmt.Scanln(&guess) if err != nil { fmt.Println("Invalid input. Please enter an integer.") continue } if guess < 1 || guess > 100 { fmt.Println("Invalid input. Please enter a number between 1 and 100.") continue } if guess < number { fmt.Println("Too low.") } else if guess > number { fmt.Println("Too high.") } else { fmt.Printf("Correct! You guessed the number in %d guesses.\n", guesses) return } } fmt.Printf("Sorry, you did not guess the number. It was %d.\n", number)}EOF
构建go源码
go mod init test#设置代理go env -w GOPROXY=https://goproxy.cn,directgo mod tidy#构建源码CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o k8s-demo main.go
制作镜像
tee dockerfile <<'EOF'FROM alpineWORKDIR /appCOPY k8s-demo /appCMD ["/bin/sh","-c","./k8s-demo"]EOF
docker build -t docker.io/library/k8sgame:v1 .docker save -o k8sgame.tar.gz docker.io/library/k8sgame:v1#上传到工作节点并解压