如果出现无法载图的情况,请检查与github的连通性
各个团队,开发、运维、测试等团队,需要从代码仓库拉取代码,编译代码,比方说java代码,需要编译,mvn编译,生成一个jar或者war结尾的文件;go代码,go build编译,会生成一个二进制文件; python代码不需要编译,如app.py,python app.py
linux安装go环境
在官网下载go的二进制包go1.22.0.linux-amd64.tar.gz
1 2 3 4 5 6
| wget https://studygolang.com/dl/golang/go1.22.0.linux-amd64.tar.gz tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin source ~/.bashrc
|
编译go代码
go代码例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| cat main.go package main
import "github.com/gin-gonic/gin"
func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "welcome to study!!!", }) }) r.Run(":8888") }
|
编译
1 2 3 4 5 6 7 8 9 10 11 12 13
| go mod init test
go env -w GOPROXY=https://goproxy.cn,direct
go mod tidy
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o k8s-demo main.go 输出二进制文件k8s-demo,GOOS(系统)=linux GOARCH(cpu架构)=amd64,-o指定名字
|
容器
Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| FROM alpine WORKDIR /data/app/ ADD k8s-demo . CMD ["/bin/sh","-c","./k8s-demo"] EXPOSE 8888
docker build -t=k8s.demo:v1 . docker save k8s.demo:v1 -o k8sdemo.tar.gz
scp k8sdemo.tar.gz ws-k8s-node1:~ scp k8sdemo.tar.gz ws-k8s-node2:~ scp k8sdemo.tar.gz ws-k8s-node3:~ ctr -n=k8s.io image import k8sdemo.tar.gz ...
|
其实也可以传到harbor里,让k8s拉,但是懒了直接scp得了
k8s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| cat k8s.yaml kind: Deployment apiVersion: apps/v1 metadata: name: go-deployment spec: replicas: 1 selector: matchLabels: release: stable template: metadata: labels: release: stable spec: containers: - name: go image: k8s.demo:v1 imagePullPolicy: Never
cat k8s_svc.yaml apiVersion: v1 kind: Service metadata: name: go-service spec: selector: release: stable type: NodePort ports: - name: http port: 8888 targetPort: 8888 protocol: "TCP" - name: https port: 443 targetPort: 443 protocol: "TCP"
kubectl apply -f . deployment.apps/go-deployment created service/go-service created
kubectl get pods NAME READY STATUS RESTARTS AGE go-deployment-6cd4b76477-lq8ff 1/1 Running 0 2m11s
kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE go-service NodePort 10.111.142.58 <none> 8888:30949/TCP,443:31126/TCP 2m16s
|
