亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法在 Kubernetes 中連接后greSQL

無法在 Kubernetes 中連接后greSQL

Go
縹緲止盈 2022-09-19 10:18:56
我正在使用庫伯內特斯。我有兩個豆莢。在一個容器中,它正在運行一臺服務器。這是嘗試在另一個容器中連接PostgreSQL服務的代碼部分。import (    "context"    "github.com/jackc/pgx/v4/pgxpool"    "github.com/rs/zerolog/log")databaseURL := "postgres://admin:[email protected]:40072/my_db"pg, err := pgxpool.Connect(context.Background(), databaseURL)if err != nil {    log.Error().Err(err).Msg("conn.Close")    return nil}目前,上面的代碼給出了錯誤{“級別”:“錯誤”,“錯誤”:“無法連接到:撥號錯誤(撥打 tcp 10.43.140.140:40072:連接:連接被拒絕)”,“時間”:1627849943,“消息”:“conn.關閉“}host=my-database-service.hm user=admin database=my_db但是,在我ssh進入服務器容器后,我可以通過 成功連接PostgreSQL容器。psql/usr/src/app # psql --host=my-database-service.hm --port=40072 --dbname=my_db --username=admin --passwordPassword: psql (13.3)Type "help" for help.my_db=# 我試圖重新啟動我的服務器容器,以確保它在PostgreSQL數據庫準備就緒后運行,但仍然得到同樣的錯誤。任何進一步調試的建議都會有所幫助。謝謝!更新我實際上是在使用林克德??赡芘chttps://linkerd.io/2.10/features/protocol-detection/我嘗試將 PostgreSQL 更改為默認端口 5432,但仍有問題。如果找到解決方案,將更新。
查看完整描述

1 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

經過一些實驗,我可以確認我的問題與Linkerd無關。


我認為我的 PostgreSQL 容器端口/目標端口仍在使用默認的 5432。它通過端口40072在網絡內部的TosterIP公開,這就是為什么我不需要在Linkerd中將端口標記為不透明。


事實證明,添加后,os.Exit(1)


pg, err := pgxpool.Connect(context.Background(), databaseURL)

if err != nil {

    log.Error().Err(err).Msg("conn.Close")

    os.Exit(1) // <- this helps

}

我的 Kubernetes 將幫助重新啟動服務器 pod,當它最初失敗等待 PostgreSQL 準備就緒。


重新啟動幾次后,服務器容器現在可以很好地連接 PostgreSQL。


我認為如果我提前手動重新啟動更多次,也可能有所幫助。但絕對不可靠,像這樣讓庫伯內特斯幫助重啟。


查看完整回答
反對 回復 2022-09-19
  • 1 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號