go專案打包交給k8s發布並管理步驟

2021-09-26 08:10:44 字數 1830 閱讀 1659

1.利用goland將專案打包成二進位制檔案:

在專案根目錄建立build.bat檔案,目的是為了打包成二進位制檔案:

@echo off

echo build platform %1

set goos=%1

go build -a -tags netgo main.go

####目錄說明

```$xslt

├── build.bat window編譯指令碼/build.bat linux

├── conf 工程配置檔案

├── controller 控制器

├── jet 存放sql模板

├── model 模型

├── router 路由配置

├── script 指令碼

│ ├── docker docker-compose 配置檔案

│ ├── k8s ks配置檔案

│ └── sql 資料庫配置檔案

├── service 業務**

├── test 測試**

└── util 工具**

2.建立dockfile檔案將二進位制檔案打成映象並推到允許外部訪問的docker所在伺服器(一般是開啟2375埠號)

from alpine

add main /root/main

run chmod o+x /root/main

run apk add --no-cache tzdata

env tz asia/shanghai

workdir /root

entrypoint ["/root/main"]

expose 8080:8080

3.進入允許外部訪問docker的伺服器將images打標籤推送k8s管理的私倉上

docker images

docker tag aff784e5f69f reg:5000/go-management:0.1.4

docker push reg:5000/go-management:0.1.4

4.進入k8s的master節點進行部署該應用pods

cd /home/k8s

1001 ls

1002 cd dev

1003 ls

1004 cd go-management/

1005 ls

1006 vim go-deploy.yaml

1008 kubectl get pods -n guanghe

1009 kubectl describe pod guanghe-go-management-784dcdc588-spqs8 -n guanghe

1010 ls'

1011 ls

1012 vim go-deploy.yaml

1014 kubectl get pods -n guanghe

1015 cd ..

1016 ls

1017 cd tes

1018 cd test/

1019 ls

1020 cd go-management/

1021 ls

1022 vim go-deployment.yaml

1024 kubectl get pods -n guanghe-test

1025 kubectl get pods -n guanghe-test

1026 kubectl get svc -n guanghe-test

k8s灰度更新 k8s實現灰度發布

灰度發布在實際生產部署中是經常被使用的方式,常規的方法是手動從前端lb 負載均衡 上將後端伺服器摘掉,然後,停服務,最後上傳 完成軟連線更新。在使用ci cd工具時,這個過程變得自動化了,我們只需要通過jenkins這個功能強大的開源持續整合和部署工具,就可以聯合gitlab 或 gogs 來實現自...

k8s搭建WebUI Dashborad管理介面

k8s的webui管理介面可以更好更直觀更便捷的讓我們去管理我們的k8s集群。1 vim kubernetes dashboard.yaml此時會建立很多資源,其中service是訪問時的 訪問service就可以訪問到dashboard的webui,但是預設生成的service訪問型別是clust...

小白學k8s 4 使用k8s發布go應用

使用ingress 部署ingress 配置ingress 策略 新增本機的host 參考搭建了一套k8s,嘗試發布乙個go應用 映象打包 之前已經打包過乙個go的映象了,這次就直接跳過了,打包記錄 編寫yaml檔案 kind deployment metadata spec replicas 2 ...