91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

K8S集群內(nèi)Debug微服務(wù)的最佳實(shí)踐

Linux愛(ài)好者 ? 來(lái)源:Linux愛(ài)好者 ? 作者:Linux愛(ài)好者 ? 2021-02-02 14:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在 K8s 集群中調(diào)試微服務(wù)很困難。有時(shí)我們遇到在不真實(shí)的環(huán)境下難以復(fù)現(xiàn)的 bug。在本機(jī)用你最習(xí)慣的工具調(diào)試達(dá)到和在集群中運(yùn)行服務(wù)一樣的效果,這其實(shí)只需要運(yùn)行幾個(gè)命令。

所用工具

為了達(dá)到目標(biāo)效果,我主要用如下工具:

Gebug

https://github.com/moshebe/gebug

這個(gè)開(kāi)源工具讓調(diào)試容器化了的Go程序非常方便,它是通過(guò)開(kāi)啟熱更新和debugger配置實(shí)現(xiàn)的。我就是這個(gè)工具的作者嘻嘻。

Telepresence

https://www.telepresence.io/

這是一個(gè)很厲害的 CNCF 項(xiàng)目,這個(gè)項(xiàng)目可以用來(lái)與集群網(wǎng)絡(luò)做網(wǎng)絡(luò)隧道。

我認(rèn)為,熟悉一個(gè)工具最好的辦法就是去用它,接著就來(lái)配置demo環(huán)境。

Kubernetes集群

我們使用一個(gè)小kubernetes集群,跑一個(gè)hello-world deployment、暴露一個(gè)服務(wù)。

既然是要做demo,我就用minikube了。如果你已經(jīng)有一個(gè)運(yùn)行中的非生產(chǎn)環(huán)境集群,那么你就用你的集群。注意不要在生產(chǎn)環(huán)境做測(cè)試。

kubectlcreatedeploymenthello-world--image=datawire/hello-world
kubectlexposedeploymenthello-world--type=LoadBalancer--port=8000

當(dāng)前kubernets集群狀態(tài)

8a5a8c46-5f10-11eb-8b86-12bb97331649.png

查看service external endpoint并跑些測(cè)試:

8ad2078a-5f10-11eb-8b86-12bb97331649.png

使用minikube提供的命令拉取外部地址。也可以通過(guò)kubectl get service hello world命令并查看 EXTERNAL_IP 字段內(nèi)的信息。img

hello world 服務(wù)

我們的hello-world部署很成功。我們來(lái)做一次把http返回做成json格式。

當(dāng)然也可以編譯你的程序、打鏡像、push到倉(cāng)庫(kù)、編輯deployment、等等等等,最后搞定。我們來(lái)用短平快的辦法做這事。

這是個(gè)簡(jiǎn)單HTTP server:

packagemain

import(
"fmt"
"net/http"
)

funcmain(){
http.HandleFunc("/",func(whttp.ResponseWriter,r*http.Request){
fmt.Println("Gotrequest")
fmt.Fprintf(w,`{"hello":"world"}`)
})
http.ListenAndServe(":8000",nil)
}

這是Gebug配置:

name:my-server
output_binary:/app
build_command:gobuild-gcflags="all=-N-l"-o/app
run_command:/app
runtime_image:golang:1.15.2
debugger_enabled:true
debugger_port:4321
expose_ports:
-8000:8000
networks:[]
environment:[]

注意,如果沒(méi)有安裝Gebug可以運(yùn)行go get -u github.com/moshebe/gebug安裝。

Telepresence

這個(gè)強(qiáng)大的工具讓我們繞過(guò)了復(fù)雜難懂的網(wǎng)絡(luò)配置,可以直接把服務(wù)連接到集群中。

安裝指南: https://www.telepresence.io/reference/install

下一步是暴露本地的服務(wù)、把流量連接到集群,就可以替換掉已經(jīng)存在的deployment了。

我們的deployment叫hello-world,暴露8000端口,命令如下:

telepresence--swap-deploymenthello-world--expose8000:8000--methodinject-tcp--rungebugstart

上面這個(gè)命令做了幾件事:

  • 開(kāi)一個(gè)程序負(fù)責(zé)把命中的DNS和IP段的請(qǐng)求重定向到k8s集群上

  • swap-deployment 這個(gè)選項(xiàng)是讓Telepresence用運(yùn)行在Telepresence代理上的東西替換掉已經(jīng)存在的hello-world pod。一旦我們退出,老pod也會(huì)被恢復(fù)。

  • run 選項(xiàng)告訴Telepresence用Gebug工具運(yùn)行我們的服務(wù),把這個(gè)服務(wù)和網(wǎng)絡(luò)代理綁定。

只要 http server 在 telepresence 中運(yùn)行著,就可以從 k8s 集群內(nèi)部訪問(wèn)這個(gè)服務(wù)。

展示一下

下面演示 debug 一個(gè)發(fā)到 k8s 暴露的 endpoint 的請(qǐng)求:

8b1c8c88-5f10-11eb-8b86-12bb97331649.gif

完成。希望你可以從中獲益,為你調(diào)試微服務(wù)提速。

責(zé)任編輯:xj

原文標(biāo)題:K8S 集群內(nèi) Debug 微服務(wù)的最佳實(shí)踐

文章出處:【微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 集群
    +關(guān)注

    關(guān)注

    0

    文章

    142

    瀏覽量

    17661
  • DEBUG
    +關(guān)注

    關(guān)注

    3

    文章

    95

    瀏覽量

    21379
  • 微服務(wù)器
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    8333

原文標(biāo)題:K8S 集群內(nèi) Debug 微服務(wù)的最佳實(shí)踐

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Helm包管理與模板化部署實(shí)戰(zhàn)

    直接用kubectl管理K8s資源,10個(gè)微服務(wù)就要維護(hù)幾十個(gè)YAML文件,版本管理靠文件夾命名,回滾靠手動(dòng)替換文件。Helm把一組相關(guān)的K8s資源打包成Chart,支持模板化、版本管理、一鍵部署和回滾,是
    的頭像 發(fā)表于 02-26 16:37 ?192次閱讀

    一文帶你徹底搞懂K8s網(wǎng)絡(luò)

    說(shuō)實(shí)話,K8s 網(wǎng)絡(luò)是我見(jiàn)過(guò)最讓新手頭疼的知識(shí)點(diǎn),沒(méi)有之一。記得我剛接觸 K8s 那會(huì)兒,看著流量在 Pod、Service、Node 之間穿梭,完全是一臉懵逼。后來(lái)踩了無(wú)數(shù)坑,熬了無(wú)數(shù)夜,總算把這套網(wǎng)絡(luò)模型摸透了。今天這篇文章,我會(huì)用最接地氣的方式,帶你徹底搞懂
    的頭像 發(fā)表于 02-06 10:15 ?424次閱讀

    K8s生產(chǎn)環(huán)境10大踩坑記錄復(fù)盤(pán)

    這篇文章記錄了我這些年在 K8s 生產(chǎn)環(huán)境踩過(guò)的坑。每一個(gè)案例都是血淚教訓(xùn),有些甚至導(dǎo)致了生產(chǎn)事故。希望通過(guò)分享這些經(jīng)歷,能幫助大家避免重蹈覆轍。
    的頭像 發(fā)表于 02-05 15:51 ?292次閱讀

    K8s集群性能調(diào)優(yōu)實(shí)戰(zhàn)技巧

    大多數(shù)團(tuán)隊(duì)在遇到K8s性能問(wèn)題時(shí),第一反應(yīng)是"加機(jī)器"。但根據(jù)我對(duì)超過(guò)50個(gè)生產(chǎn)集群的分析,80%的性能問(wèn)題源于配置不當(dāng),而非資源不足。
    的頭像 發(fā)表于 09-08 09:36 ?786次閱讀

    K8s存儲(chǔ)類設(shè)計(jì)與Ceph集成實(shí)戰(zhàn)

    在云原生時(shí)代,存儲(chǔ)是制約應(yīng)用性能的關(guān)鍵瓶頸。本文將帶你深入理解K8s存儲(chǔ)類的設(shè)計(jì)原理,并手把手實(shí)現(xiàn)與Ceph的完美集成,讓你的集群存儲(chǔ)性能提升300%!
    的頭像 發(fā)表于 08-22 11:50 ?865次閱讀

    高效管理Kubernetes集群的實(shí)用技巧

    作為一名經(jīng)驗(yàn)豐富的運(yùn)維工程師,我深知在日常的Kubernetes集群管理中,熟練掌握kubectl命令是提升工作效率的關(guān)鍵。今天,我將分享15個(gè)經(jīng)過(guò)實(shí)戰(zhàn)檢驗(yàn)的kubectl實(shí)用技巧,幫助你像藝術(shù)家一樣優(yōu)雅地管理K8s集群。
    的頭像 發(fā)表于 08-13 15:57 ?921次閱讀

    Linux內(nèi)核參數(shù)調(diào)優(yōu)方案

    在高并發(fā)微服務(wù)環(huán)境中,網(wǎng)絡(luò)性能往往成為K8s集群的瓶頸。本文將深入探討如何通過(guò)精細(xì)化的Linux內(nèi)核參數(shù)調(diào)優(yōu),讓你的K8s節(jié)點(diǎn)網(wǎng)絡(luò)性能提升30%以上。
    的頭像 發(fā)表于 08-06 17:50 ?947次閱讀

    解析K8S實(shí)用命令

    前言: 作為運(yùn)維工程師,掌握 Kubernetes 命令行工具是日常工作的核心技能。本文將深入解析 K8S 最實(shí)用的命令,從基礎(chǔ)操作到高級(jí)技巧,助你成為容器化集群管理專家。
    的頭像 發(fā)表于 07-24 14:07 ?868次閱讀

    k8s權(quán)限管理指南說(shuō)明

    我們?cè)谀壳暗?b class='flag-5'>k8s集群環(huán)境里面,只能在master節(jié)點(diǎn)上執(zhí)行kubectl的一些命令,在其他節(jié)點(diǎn)上執(zhí)行就會(huì)報(bào)錯(cuò)。
    的頭像 發(fā)表于 06-26 14:06 ?732次閱讀

    什么是 K8S,如何使用 K8S

    連續(xù)性。 適用場(chǎng)景: 大規(guī)模容器集群管理。 微服務(wù)架構(gòu)的部署與運(yùn)維。 需要彈性伸縮的在線服務(wù)。 多租戶環(huán)境(如開(kāi)發(fā)測(cè)試、生產(chǎn)環(huán)境隔離)。 總的來(lái)說(shuō),K8S 通過(guò)標(biāo)準(zhǔn)化容器管理,極
    發(fā)表于 06-25 06:45

    k8s網(wǎng)絡(luò)的基本介紹

    Kubernetes網(wǎng)絡(luò)是指在Kubernetes集群中不同組件之間進(jìn)行通信和交互的網(wǎng)絡(luò)架構(gòu)。
    的頭像 發(fā)表于 06-16 13:42 ?941次閱讀

    Ubuntu K8s集群安全加固方案

    在Ubuntu系統(tǒng)上部署Kubernetes集群時(shí),若服務(wù)器擁有外網(wǎng)IP,需采取多層次安全防護(hù)措施以確保集群安全。本方案通過(guò)系統(tǒng)防火墻配置、TLS通信啟用、網(wǎng)絡(luò)策略實(shí)施和RBAC權(quán)限控制四個(gè)核心層
    的頭像 發(fā)表于 05-12 16:17 ?858次閱讀

    簡(jiǎn)述K3SK8S的區(qū)別

    K3s 是CNCF 認(rèn)證的 Kubernetes 發(fā)行版和Sandbox項(xiàng)目,專為低資源環(huán)境而設(shè)計(jì)。由 Rancher Labs 維護(hù)著 K3s。
    的頭像 發(fā)表于 04-18 10:27 ?1727次閱讀

    k8s集群安全機(jī)制說(shuō)明

    Kubernetes 作為一個(gè)分布式集群的管理工具,保證集群的安全性是其一個(gè)重要的任務(wù)。API Server 是集群內(nèi)部各個(gè)組件通信的中介, 也是外部控制的入口。所以 Kubernetes 的安全機(jī)制基本就是圍繞保護(hù) API S
    的頭像 發(fā)表于 04-03 14:09 ?801次閱讀

    如何通過(guò)Docker和K8S集群實(shí)現(xiàn)高效調(diào)用GPU

    在有GPU資源的主機(jī)安裝,改主機(jī)作為K8S集群的Node。
    的頭像 發(fā)表于 03-18 16:50 ?1215次閱讀
    如何通過(guò)Docker和<b class='flag-5'>K8S</b><b class='flag-5'>集群</b>實(shí)現(xiàn)高效調(diào)用GPU