国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

K8S集群內Debug微服務的最佳實踐

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

掃碼添加小助手

加入工程師交流群

在 K8s 集群中調試微服務很困難。有時我們遇到在不真實的環境下難以復現的 bug。在本機用你最習慣的工具調試達到和在集群中運行服務一樣的效果,這其實只需要運行幾個命令。

所用工具

為了達到目標效果,我主要用如下工具:

Gebug

https://github.com/moshebe/gebug

這個開源工具讓調試容器化了的Go程序非常方便,它是通過開啟熱更新和debugger配置實現的。我就是這個工具的作者嘻嘻。

Telepresence

https://www.telepresence.io/

這是一個很厲害的 CNCF 項目,這個項目可以用來與集群網絡做網絡隧道。

我認為,熟悉一個工具最好的辦法就是去用它,接著就來配置demo環境。

Kubernetes集群

我們使用一個小kubernetes集群,跑一個hello-world deployment、暴露一個服務。

既然是要做demo,我就用minikube了。如果你已經有一個運行中的非生產環境集群,那么你就用你的集群。注意不要在生產環境做測試。

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

當前kubernets集群狀態

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

查看service external endpoint并跑些測試:

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

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

hello world 服務

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

當然也可以編譯你的程序、打鏡像、push到倉庫、編輯deployment、等等等等,最后搞定。我們來用短平快的辦法做這事。

這是個簡單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:[]

注意,如果沒有安裝Gebug可以運行go get -u github.com/moshebe/gebug安裝。

Telepresence

這個強大的工具讓我們繞過了復雜難懂的網絡配置,可以直接把服務連接到集群中。

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

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

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

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

上面這個命令做了幾件事:

  • 開一個程序負責把命中的DNS和IP段的請求重定向到k8s集群上

  • swap-deployment 這個選項是讓Telepresence用運行在Telepresence代理上的東西替換掉已經存在的hello-world pod。一旦我們退出,老pod也會被恢復。

  • run 選項告訴Telepresence用Gebug工具運行我們的服務,把這個服務和網絡代理綁定。

只要 http server 在 telepresence 中運行著,就可以從 k8s 集群內部訪問這個服務。

展示一下

下面演示 debug 一個發到 k8s 暴露的 endpoint 的請求:

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

完成。希望你可以從中獲益,為你調試微服務提速。

責任編輯:xj

原文標題:K8S 集群內 Debug 微服務的最佳實踐

文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 集群
    +關注

    關注

    0

    文章

    142

    瀏覽量

    17659
  • DEBUG
    +關注

    關注

    3

    文章

    95

    瀏覽量

    21377
  • 微服務器
    +關注

    關注

    0

    文章

    13

    瀏覽量

    8333

原文標題:K8S 集群內 Debug 微服務的最佳實踐

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Helm包管理與模板化部署實戰

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

    一文帶你徹底搞懂K8s網絡

    說實話,K8s 網絡是我見過最讓新手頭疼的知識點,沒有之一。記得我剛接觸 K8s 那會兒,看著流量在 Pod、Service、Node 之間穿梭,完全是一臉懵逼。后來踩了無數坑,熬了無數夜,總算把這套網絡模型摸透了。今天這篇文章,我會用最接地氣的方式,帶你徹底搞懂
    的頭像 發表于 02-06 10:15 ?414次閱讀

    K8s生產環境10大踩坑記錄復盤

    這篇文章記錄了我這些年在 K8s 生產環境踩過的坑。每一個案例都是血淚教訓,有些甚至導致了生產事故。希望通過分享這些經歷,能幫助大家避免重蹈覆轍。
    的頭像 發表于 02-05 15:51 ?277次閱讀

    K8s集群性能調優實戰技巧

    大多數團隊在遇到K8s性能問題時,第一反應是"加機器"。但根據我對超過50個生產集群的分析,80%的性能問題源于配置不當,而非資源不足。
    的頭像 發表于 09-08 09:36 ?785次閱讀

    K8s存儲類設計與Ceph集成實戰

    在云原生時代,存儲是制約應用性能的關鍵瓶頸。本文將帶你深入理解K8s存儲類的設計原理,并手把手實現與Ceph的完美集成,讓你的集群存儲性能提升300%!
    的頭像 發表于 08-22 11:50 ?864次閱讀

    高效管理Kubernetes集群的實用技巧

    作為一名經驗豐富的運維工程師,我深知在日常的Kubernetes集群管理中,熟練掌握kubectl命令是提升工作效率的關鍵。今天,我將分享15個經過實戰檢驗的kubectl實用技巧,幫助你像藝術家一樣優雅地管理K8s集群
    的頭像 發表于 08-13 15:57 ?920次閱讀

    Linux內核參數調優方案

    在高并發微服務環境中,網絡性能往往成為K8s集群的瓶頸。本文將深入探討如何通過精細化的Linux內核參數調優,讓你的K8s節點網絡性能提升30%以上。
    的頭像 發表于 08-06 17:50 ?945次閱讀

    解析K8S實用命令

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

    k8s權限管理指南說明

    我們在目前的k8s集群環境里面,只能在master節點上執行kubectl的一些命令,在其他節點上執行就會報錯。
    的頭像 發表于 06-26 14:06 ?729次閱讀

    什么是 K8S,如何使用 K8S

    連續性。 適用場景: 大規模容器集群管理。 微服務架構的部署與運維。 需要彈性伸縮的在線服務。 多租戶環境(如開發測試、生產環境隔離)。 總的來說,K8S 通過標準化容器管理,極
    發表于 06-25 06:45

    k8s網絡的基本介紹

    Kubernetes網絡是指在Kubernetes集群中不同組件之間進行通信和交互的網絡架構。
    的頭像 發表于 06-16 13:42 ?939次閱讀

    Ubuntu K8s集群安全加固方案

    在Ubuntu系統上部署Kubernetes集群時,若服務器擁有外網IP,需采取多層次安全防護措施以確保集群安全。本方案通過系統防火墻配置、TLS通信啟用、網絡策略實施和RBAC權限控制四個核心層
    的頭像 發表于 05-12 16:17 ?857次閱讀

    簡述K3SK8S的區別

    K3s 是CNCF 認證的 Kubernetes 發行版和Sandbox項目,專為低資源環境而設計。由 Rancher Labs 維護著 K3s
    的頭像 發表于 04-18 10:27 ?1724次閱讀

    k8s集群安全機制說明

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

    如何通過Docker和K8S集群實現高效調用GPU

    在有GPU資源的主機安裝,改主機作為K8S集群的Node。
    的頭像 發表于 03-18 16:50 ?1214次閱讀
    如何通過Docker和<b class='flag-5'>K8S</b><b class='flag-5'>集群</b>實現高效調用GPU