国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

手摸手教你把Ingress Nginx集成進(jìn)Skywalking

這篇具有很好參考價(jià)值的文章主要介紹了手摸手教你把Ingress Nginx集成進(jìn)Skywalking。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

背景

在微服務(wù)大行其道的今天,如何觀測眾多微服務(wù)、快速理清服務(wù)間的依賴、如何對服務(wù)之間的調(diào)用性能進(jìn)行衡量,成了擺在大家面前的難題。對此,Skywalking應(yīng)運(yùn)而生,它是托管在 Apache 基金會下的開源項(xiàng)目,旨在幫助開發(fā)者監(jiān)控分布式程序的性能、了解各個(gè)服務(wù)的調(diào)用關(guān)系和運(yùn)行情況。

Skywalking支持多種語言和框架,包含Java、Golang、Python等,功能強(qiáng)大、界面友好等特點(diǎn)使其迅速成為業(yè)界最流行的APM軟件之一。然而在運(yùn)用Skywalking的過程中,我們常常更關(guān)注服務(wù)之間的調(diào)用鏈路、性能數(shù)據(jù),往往會忽略流量入口(網(wǎng)關(guān))到服務(wù)之間的Trace串聯(lián),導(dǎo)致我們經(jīng)常在網(wǎng)關(guān)層面觀測到一個(gè)錯(cuò)誤調(diào)用后,無法通過TraceID快速查看本次調(diào)用的鏈路,從而白白浪費(fèi)寶貴的排障時(shí)間。

本文重點(diǎn)介紹如何將 Ingress Nginx 集成進(jìn) Skywalking,將其作為 Skywalking 的一個(gè)節(jié)點(diǎn),并且在access log 中打印TraceID,從而在出現(xiàn)故障的時(shí)候,可以通過日志中的TraceID快速找到調(diào)用鏈路,達(dá)到快速故障定位的效果。

注:本文使用的 Kubernetes 版本是 1.24.15,Ingress Nginx controller 版本是 v1.8.1,Skywalking版本是9.2.0。

方案

在介紹方案之前,我們先了解一下相關(guān)的背景知識,用于更好的理解集成方案。

  1. Ingress Nginx Configmap:Ingress Nginx 的各種配置存放地,可以通過該Configmap配置logformat、所開啟的插件等。
  2. Skywalking Nginx Lua:Skywalking 官方提供的 Lua 版本 lib,提供了一系列的操作,自己可以在Nginx的配置文件中編寫Lua腳本,適時(shí)創(chuàng)建Span、結(jié)束Span,從而把 Nginx 當(dāng)作Skywalking中的一個(gè)服務(wù)節(jié)點(diǎn)集成進(jìn)Skywalking。
  3. Ingress Nginx 自定義插件:Lua腳本編寫的插件,用于對 Ingress Nginx 做編程,想要使用插件必須要將插件放到 Ingress Controller 容器的 /etc/nginx/lua/plugins/插件名稱 目錄中,且需要在 Ingress Controller 的configmap中開啟它。自定義插件支持以下幾個(gè)鉤子:
  • a. init_worker: 用于對Nginx Worker做一些初始化。
  • b. rewrite: 用于修改請求、更改標(biāo)頭、重定向、丟棄請求、進(jìn)行身份驗(yàn)證等。
  • c. header_filter: 當(dāng)接收到后端response header 時(shí)調(diào)用此函數(shù),通常用來記錄和修改后端的response header。
  • d. body_filter: 這是在收到后端response body 時(shí)調(diào)用的,一般用來記錄response body。
  • e. log: 當(dāng)請求處理完成并將響應(yīng)傳遞給客戶端時(shí),會調(diào)用此函數(shù)。
  1. sw8:SkyWalking 跨進(jìn)程傳播的Header Key,它的格式是 1-TRACEID-SEGMENTID-3-PARENT_SERVICE-PARENT_INSTANCE-PARENT_ENDPOINT-IPPORT(其中TraceID、SpanID等都通過base64進(jìn)行編碼),我們可以通過此Header解析出對應(yīng)的 TraceID。

了解了上述原理后,我們的方案就顯而易見了,就是將 Skywalking Nginx Lua 集成進(jìn) Ingress Nginx中,并編寫插件,在不同階段執(zhí)行相關(guān)操作:

  • a. 在 rewrite 階段生成新Span并解析出TraceID將其放在新Header中(方便access log 打印)
  • b. 在 body_filter 階段結(jié)束該Span
  • c. 在log階段提交對應(yīng)的數(shù)據(jù)到Skywalking服務(wù)端
  • d. 修改 Nginx log format,將存儲 TraceID 的Header 打印出來

步驟

1. 集成Skywalking Nginx Lua進(jìn)Ingress Nginx

Skywalking Nginx Lua 的核心是它的?lib?目錄,里邊包含了所有需要用到的函數(shù)操作,所以我們需要將該?lib?目錄的內(nèi)容放到 Ingress Nginx 的Pod 中,讓我們編寫的插件能夠調(diào)用到它。具體我們可以將?lib?目錄放到網(wǎng)盤中,然后通過 Volume 的形式掛載進(jìn)去,也可以將?lib?的內(nèi)容寫入configmap,然后掛載Volume到Pod中。本文選擇第二種方式,將?lib?的內(nèi)容放到 configmap 中,然后掛載進(jìn)去,雖說這種方式不夠優(yōu)雅,但好在不用依賴網(wǎng)盤。

我們先clone Skywalking Nginx Lua 這個(gè)庫,然后將 lib 下的所有.lua文件打平放到同一個(gè)目錄中

git clone https://github.com/apache/skywalking-nginx-lua.git
mkdir sk-lua-cm
cp skywalking-nginx-lua/lib/skywalking/*.lua sk-lua-cm/
cp skywalking-nginx-lua/lib/skywalking/dependencies/*.lua sk-lua-cm/
cp skywalking-nginx-lua/lib/resty/*.lua sk-lua-cm/

再通過 kubectl 命令將sk-lua-cm中的所有文件創(chuàng)建到一個(gè)configmap中,注意將 -n 后邊的參數(shù)換成你自己Ingress Nginx 所在的 namespace。

kubectl create cm skywalking-nginx-lua-agent --from-file=./sk-lua-cm/ -n ingress-nginx

2. 編寫Ingress Nginx 的插件

引入了 Skywalking 的 lib 后就可以編寫對應(yīng)的 Ingress Nginx 自定義插件了,代碼比較簡單,以下是代碼詳情(命名為main.lua)。

local _M = {}

function _M.init_worker()
  local metadata_buffer = ngx.shared.tracing_buffer
  require("skywalking.util").set_randomseed()
  local serviceName = os.getenv("SKY_SERVICE_NAME")
  if not serviceName then
    serviceName="ingress-nginx"
  end
  metadata_buffer:set('serviceName', serviceName)

  local serviceInstanceName = os.getenv("SKY_INSTANCE_NAME")
  if not serviceInstanceName then
    serviceName="ingress-nginx"
  end
  metadata_buffer:set('serviceInstanceName', serviceName)
  metadata_buffer:set('includeHostInEntrySpan', false)

  require("skywalking.client"):startBackendTimer(os.getenv("SKY_OAP_ADDR"))
  skywalking_tracer = require("skywalking.tracer")

end


function _M.rewrite()
  local upstreamName = ngx.var.proxy_upstream_name
  skywalking_tracer:start(upstreamName)
  if ngx.var.http_sw8 ~= "" then
    local sw8Str = ngx.var.http_sw8
    local sw8Item = require('skywalking.util').split(sw8Str, "-")
    if #sw8Item >= 2 then
      ngx.req.set_header("trace_id", ngx.decode_base64(sw8Item[2]))
    end
  end
end

function _M.body_filter()

  if ngx.arg[2] then
    skywalking_tracer:finish()
  end

end

function _M.log()
  skywalking_tracer:prepareForReport()
end

return _M

劃重點(diǎn):在上述代碼中獲取了幾個(gè)環(huán)境變量,需要記住,后邊需要用到。

  • i. SKY_SERVICE_NAME:Ingress Nginx 在 Skywalking 中的 Service 名稱
  • ii. SKY_INSTANCE_NAME:Ingress Nginx 實(shí)例在 Skywalking 中的實(shí)例名稱
  • iii. SKY_OAP_ADDR:Skywalking后端地址

編寫好插件代碼后就可以基于此創(chuàng)建configmap了,依然需要注意 -n 后邊的namespace,需要改成你實(shí)際Ingress Nginx所在的 namespace。

kubectl create cm skywalking-lua-plug --from-file=main.lua -n ingress-nginx

3. 掛載相關(guān) Lua 腳本進(jìn) Ingress Nginx Controller 的 Pod 中

修改 Ingress Nginx Controller 的 Deployment 配置,主要修改以下幾點(diǎn):

a. 環(huán)境變量

- name: SKY_OAP_ADDR
  value: http://skywalking-oap.skywalking.svc.cluster.local:12800
- name: SKY_SERVICE_NAME
  value: ingress-nginx
- name: SKY_INSTANCE_NAME
  value: ingress-nginx

b. volumes 聲明

- name: sky-nginx-plugin
  configMap:
    name: skywalking-lua-plug
- name: skywalking-nginx-lua-agent
  configMap:
    name: skywalking-nginx-lua-agent

c. volumeMounts 聲明

- mountPath: /etc/nginx/lua/plugins/skywalking/main.lua
  subPath: "main.lua"
  name: sky-nginx-plugin
- mountPath: /etc/nginx/lua/resty/http.lua
  subPath: "http.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/tablepool.lua
  subPath: "tablepool.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/resty/http_headers.lua
  subPath: "http_headers.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/resty/jit-uuid.lua
  subPath: "jit-uuid.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/client.lua
  subPath: "client.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/constants.lua
  subPath: "constants.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/correlation_context.lua
  subPath: "correlation_context.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/dependencies/base64.lua
  subPath: "base64.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/management.lua
  subPath: "management.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/segment.lua
  subPath: "segment.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/segment_ref.lua
  subPath: "segment_ref.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/span.lua
  subPath: "span.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/span_layer.lua
  subPath: "span_layer.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/tracer.lua
  subPath: "tracer.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/tracing_context.lua
  subPath: "tracing_context.lua"
  name: skywalking-nginx-lua-agent
- mountPath: /etc/nginx/lua/skywalking/util.lua
  subPath: "util.lua"
  name: skywalking-nginx-lua-agent

4. 修改 Ingress Nginx Controller 所使用的configmap配置

plugins: "skywalking"
lua-shared-dicts: "tracing_buffer: 100m"
main-snippet: |
  env SKY_SERVICE_NAME;
  env SKY_INSTANCE_NAME;
  env SKY_OAP_ADDR;
log-format-upstream: |
  $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $request_id $http_trace_id

該配置中配置了如下幾個(gè)信息:

  • a. plugins:開啟skywalking插件
  • b. lua-shared-dicts:聲明 trace 使用的變量和大小
  • c. main-snippet:其中聲明了需要使用到的環(huán)境變量,切記在插件中使用的環(huán)境變量必須放到這里來
  • d. log-format-upstream:log 格式,我們在這個(gè)里添加了一個(gè) http_trace_id 這個(gè)header的打?。ㄉ弦徊浇馕龀鰜淼腡raceID)

5. 重啟 Pod 生效

把下列的 xxx 換成 Ingress Nginx Controller 的 Pod 名稱

kubectl delete pod xxxx -n=ingress-nginx

效果展示

本節(jié)展示最終在Skywalking UI 上的展示效果。

  1. 可以在 Skywalking 的拓?fù)鋱D中看到有一個(gè) Ingress Nginx 的服務(wù)節(jié)點(diǎn)加入
  1. 在Trace查詢頁面可以看到有一個(gè) Nginx 的 Span
  1. 如下是打印出來的TraceID

如何更好使用Trace?

通過上述介紹,我們已經(jīng)把 Ingress Nginx 集成進(jìn)了Skywalking,接下來介紹一下如何更好的使用Trace數(shù)據(jù)來快速定位故障。

數(shù)據(jù)建設(shè)

  1. 將Skywalking數(shù)據(jù)源接入Flashcat,接入的方法很簡單,只需要填寫對應(yīng)的地址、賬號、密碼,然后起一個(gè)名字即可?

  2. 采集 Ingress Nginx 日志到 kafka 中,這里可以使用?categraf 的 log 采集器

  3. 將日志接入 Flashcat 的日志分析子系統(tǒng)生成報(bào)表,在這張報(bào)表中可以看到對應(yīng)的域名、接口、流量、成功率等(當(dāng)然,這些維度都可以自定義),在創(chuàng)建報(bào)表的時(shí)候設(shè)置好日志中哪個(gè)字段是TraceID字段。

  1. 通過日志報(bào)表生成滅火圖(IT系統(tǒng)健康度一覽表),例如下圖就是典型的電商系統(tǒng)核心API健康度一覽表。
  1. 通過數(shù)據(jù)庫、Metrics、日志等不同來源建立北極星指標(biāo)(核心業(yè)務(wù)指標(biāo)),例如:電商系統(tǒng)的下單量、支付量等

串聯(lián)打通

通過Flashcat的串聯(lián)能力,建立北極星和滅火圖的串聯(lián)。

故障定位路徑

當(dāng)建設(shè)好對應(yīng)的指標(biāo)和關(guān)聯(lián)后,就可以開啟我們的故障定位之旅了。

  1. 當(dāng)北極星指標(biāo)故障(核心業(yè)務(wù)受損)時(shí),北極星頁面上對應(yīng)的指標(biāo)會飄紅且發(fā)送報(bào)警,例如下圖中的商品實(shí)時(shí)下單量掉底了,該業(yè)務(wù)卡片會飄紅
  1. 此時(shí)我們點(diǎn)擊曲線上掉底時(shí)刻的數(shù)據(jù)點(diǎn),可以打開關(guān)聯(lián)的滅火圖,一眼就可以看到是訂單子系統(tǒng)在飄紅(可能發(fā)生了故障)
  1. 我們點(diǎn)擊飄紅的滅火圖路徑,可以下鉆到具體的卡片組中去
  1. 然后可以看到滅火圖卡片組中的訂單更新DB接口成功率為0,我們點(diǎn)擊旁邊的詳情可以打開對應(yīng)的詳情曲線(通過上一步中的日志報(bào)表生成)
  1. 通過詳情可以看到,這個(gè)時(shí)候的成功率已經(jīng)掉底了,那么我們同樣可以點(diǎn)擊曲線上掉底的時(shí)間點(diǎn)打開日志詳情
  1. 在這個(gè)頁面中,我們可以直接查看異常日志的日志詳情,也可以點(diǎn)擊右側(cè)的 trace 按鈕打開該調(diào)用的Trace鏈路

通過Trace鏈路可以看到Redis的端口不通導(dǎo)致更新失敗了,這個(gè)時(shí)候我們就需要去排查依賴的Redis是否正常了。

當(dāng)然,以上只是Flashcat在整合可觀測性三大支柱(Metrics、Log、Trace)方面的一個(gè)小例子,如果您對Flashcat這套產(chǎn)品感興趣,可以隨時(shí)與我們交流:https://flashcat.cloud/contact/。文章來源地址http://www.zghlxwxcb.cn/news/detail-856348.html

到了這里,關(guān)于手摸手教你把Ingress Nginx集成進(jìn)Skywalking的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 手摸手帶你 在Windows系統(tǒng)中安裝Istio

    手摸手帶你 在Windows系統(tǒng)中安裝Istio

    通過負(fù)載均衡、服務(wù)間的身份驗(yàn)證、監(jiān)控等方法,Istio 可以輕松地創(chuàng)建一個(gè)已經(jīng)部署了服務(wù)的網(wǎng)絡(luò),而服務(wù)的代碼只需很少更改甚至無需更改。 通過在整個(gè)環(huán)境中部署一個(gè)特殊的 sidecar 代理為服務(wù)添加 Istio 的支持,而代理會攔截微服務(wù)之間的所有網(wǎng)絡(luò)通信,然后使用其控制

    2024年02月06日
    瀏覽(23)
  • 手摸手2-springboot編寫基礎(chǔ)的增刪改查

    手摸手2-springboot編寫基礎(chǔ)的增刪改查

    創(chuàng)建controller層 實(shí)現(xiàn) test 表中的添加、修改、刪除及列表查詢接口(未分頁) 添加service層接口 service層實(shí)現(xiàn) 添加mapper層 mapper層對應(yīng)的sql 添加掃描注解,對應(yīng)sql文件的目錄

    2024年02月10日
    瀏覽(14)
  • 不用魔法,快速、手摸手上線Midjourney!【附源碼】【示例】

    不用魔法,快速、手摸手上線Midjourney!【附源碼】【示例】

    首先來一波感謝: 感謝laf提供贊助,目前可以免費(fèi)使用Midjourney進(jìn)行開發(fā)和測試。 感謝白夜、米開朗基楊@sealos.io的耐心解答,讓我對laf有了更多的使用與了解。 什么是laf?來了解下。 文末有【示例】 廢話不多說,進(jìn)入正題。 laf在做一個(gè)活動,可以使用快速上手Midjourney《人

    2024年02月05日
    瀏覽(20)
  • 手摸手接入Github實(shí)現(xiàn)Oauth2第三方登錄

    手摸手接入Github實(shí)現(xiàn)Oauth2第三方登錄

    最近在學(xué)習(xí)oauth2授權(quán)登錄流程,oauth2簡單來說就是接入第三方應(yīng)用(qq、微信、github、gitee等),不用在本站登錄,而是去請求第三方應(yīng)用的用戶信息完成登錄。 下面就一起來看一下如何接入github實(shí)現(xiàn)第三方登錄 首先,我們需要在github中添加OAuth App,登錄你的github(如果還有

    2024年02月04日
    瀏覽(26)
  • 泰褲辣?。?!手摸手教學(xué),如何訓(xùn)練一個(gè)你的專屬AI歌姬~

    泰褲辣?。?!手摸手教學(xué),如何訓(xùn)練一個(gè)你的專屬AI歌姬~

    最近在做AIGC的項(xiàng)目,不過是與圖片相關(guān)的,現(xiàn)在的模型效果可比前幾年圖片替換效果好多了。之前嘗試過用 faceswap 工具來進(jìn)行人臉替換的,具體可以參看下我之前的這篇文章:https://blog.csdn.net/sinat_26918145/article/details/79591717 ? 現(xiàn)代的模型對于圖生圖的支持效果已經(jīng)非常好了,

    2024年02月06日
    瀏覽(24)
  • 使用 Burp Suite 暴力破解密碼 撞庫攻擊 從0到1手摸手教學(xué)

    使用 Burp Suite 暴力破解密碼 撞庫攻擊 從0到1手摸手教學(xué)

    一個(gè)學(xué)習(xí)的過程 增加自己網(wǎng)絡(luò)安全知識 切勿用于違法用途 設(shè)置密碼盡量使用6位以上并規(guī)避簡單數(shù)字組合、加強(qiáng)對同一ip的頻繁訪問次數(shù)限制、設(shè)置人機(jī)驗(yàn)證減小撞庫攻擊的危害 本地環(huán)境 kali 2022 Burp Suite FireFox 靶機(jī)環(huán)境 一臺服務(wù)器 CentOS 7 寶塔面板 一個(gè)域名(你不會沒有吧)

    2024年02月09日
    瀏覽(51)
  • 【AI幫我寫代碼,上班摸魚不是夢】手摸手圖解CodeWhisperer的安裝使用

    【AI幫我寫代碼,上班摸魚不是夢】手摸手圖解CodeWhisperer的安裝使用

    除了借助ChatGPT通過問答的方式生成代碼,也可以通過IDEA插件在寫代碼是直接幫助我們生成代碼。 目前,IDEA插件有CodeGeeX、CodeWhisperer、Copilot。其中,CodeGeeX和CodeWhisperer是完全免費(fèi)的,Copilot是收費(fèi)的,每月10美元。 下面我們來了解CodeWhisperer的安裝和使用,如果你還想了解其他

    2024年02月11日
    瀏覽(16)
  • 教你把python的代碼變成中文

    教你把python的代碼變成中文

    是不是好看多了? 因?yàn)槲覀兿氚裵ython的代碼變成中文,但是又不可能真的去改python程序本體,所以我在這里使用的方法是自己搭建一個(gè)第三方庫,然后再同路徑下創(chuàng)建一個(gè)py文件,這樣就可以導(dǎo)入我們剛才的庫了。正因如此,第一行的import是真的改不了了。 那么,這個(gè)庫該怎

    2024年02月11日
    瀏覽(19)
  • MP4轉(zhuǎn)AVI轉(zhuǎn)AMV教程:教你把B站視頻導(dǎo)入你的MP3MP4隨身聽播放器

    MP4轉(zhuǎn)AVI轉(zhuǎn)AMV教程:教你把B站視頻導(dǎo)入你的MP3MP4隨身聽播放器

    學(xué)校不給帶手機(jī)?去到學(xué)校就不能看視頻了?我該怎么辦? 別慌!UP主教你如何把你喜歡的視頻導(dǎo)入到自己的隨身聽上! 前言:想必很多人都買過或者手上都有MP3/MP4播放器,在學(xué)校查手機(jī)變態(tài)嚴(yán)的中學(xué)時(shí)代,這個(gè)或許是唯一可以替代手機(jī)的慰藉了吧……每天晚上聽著歌度過

    2023年04月25日
    瀏覽(23)
  • k8s 對外服務(wù)之 ingress|ingress的對外暴露方式|ingress http,https代理|ingress nginx的認(rèn)證,nginx重寫

    k8s 對外服務(wù)之 ingress|ingress的對外暴露方式|ingress http,https代理|ingress nginx的認(rèn)證,nginx重寫

    service的作用體現(xiàn)在兩個(gè)方面,對集群內(nèi)部,它不斷跟蹤pod的變化,更新endpoint中對應(yīng)pod的對象,提供了ip不斷變化的pod的服務(wù)發(fā)現(xiàn)機(jī)制;對集群外部,他類似負(fù)載均衡器,可以在集群內(nèi)外部對pod進(jìn)行訪問。 在Kubernetes中,Pod的IP地址和service的ClusterIP僅可以在集群網(wǎng)絡(luò)內(nèi)部使用,

    2024年02月10日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包