乱人伦 国语对白海角社区,五月激情丁香婷婷综合中文字幕,欧美伊人婷婷久久五月综合,亚洲精品无amm毛片,亚洲男人第一无码AV网站,国产日韩欧美丝袜一区二区,亚洲一区精品在线观看

开发和运维对K8S中的应用都做了什么?-916彩票手机投注平台

开发和运维对K8S中的应用都做了什么?

2026-01-16 19:51:08投稿人:皇博體育官網(wǎng)(麗水)有限公司圍觀523163 評論

開發(fā)和運維對K8S中的應(yīng)用都做了什么?

在應(yīng)用的整個生命周期里,開發(fā)和運維都和它密不可分  。一個塑造它 ,一個保養(yǎng)它。

如果應(yīng)用需要部署到K8S中  ,開發(fā)和運維在其中都做了什么呢?

開發(fā)側(cè)

從開發(fā)側(cè)來說,我們的應(yīng)用應(yīng)該具備以下能力:

  • 具有健康檢測接口

  • 具有優(yōu)雅退出能力

  • 具有metrics接口

  • 能夠接入鏈路追蹤系統(tǒng)

  • 日志輸出標(biāo)準(zhǔn)統(tǒng)一

定義健康檢測接口

健康檢測接口用于檢測應(yīng)用的健康狀態(tài),在K8S中,使用Readiness和Liveness分別來探測應(yīng)用是否就緒和是否存活,如果未就緒或者未存活 ,K8S會采取相應(yīng)的措施來確保應(yīng)用可用。

如果我們應(yīng)用未定義好相應(yīng)的健康檢測接口,K8S就無法判斷應(yīng)用是否正??捎?,整個應(yīng)用對我們來說就是黑匣子,也就談不上應(yīng)用穩(wěn)定性了 。

定義一個簡單的健康檢測接口如下:

package router

import (
"github.com/gin-gonic/gin"
v1 "go-hello-world/app/http/controllers/v1"
)

funcSetupRouter(router *gin.Engine) {
ruc := new(v1.RootController)
router.GET("/", ruc.Root)

huc := new(v1.HealthController)
router.GET("/health", huc.HealthCheck)
}
package v1

import (
"github.com/gin-gonic/gin"
"go-hello-world/app/http/controllers"
"go-hello-world/pkg/response"
"net/http"
)

type HealthController struct {
controllers.BaseController
}

func(h *HealthController)HealthCheck(c *gin.Context) {
response.WriteResponse(c, http.StatusOK, nil, gin.H{
"result": "健康檢測頁面",
"status": "OK",
})
}

如上我們定義了health接口 ,當(dāng)應(yīng)用啟動后 ,只需要探測這個接口,如果返回OK ,表示應(yīng)用是正常的 。

當(dāng)然 ,上面的接口是非常簡單的  ,在實際情況下 ,應(yīng)用本身也許還依賴起來應(yīng)用