女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

    文章

    101

    瀏覽量

    17366
  • DEBUG
    +關注

    關注

    3

    文章

    94

    瀏覽量

    20361
  • 微服務器
    +關注

    關注

    0

    文章

    13

    瀏覽量

    8198

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Ubuntu K8s集群安全加固方案

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

    k8s集群安全機制說明

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

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

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

    搭建k8s需要買幾臺云主機?

    至少3臺。搭建Kubernetes(K8s集群所需的云主機數量因實際需求而異。一個基本的K8s集群通常需要至少3臺云主機,包括1個Master節點和2個Worker節點。如果考慮高可
    的頭像 發表于 02-20 10:40 ?331次閱讀

    自建K8S集群認證過期

    今天使用kubectl命令查看pod信息時,一直正常運行的k8s集群突然不能訪問了,輸入任何命令都提示以下報錯。
    的頭像 發表于 02-07 12:32 ?306次閱讀

    k8s和docker區別對比,哪個更強?

    Docker和Kubernetes(K8s)是容器化技術的兩大流行工具。Docker關注構建和打包容器,適用于本地開發和單主機管理;而K8s則提供容器編排和管理平臺,適用于多主機或云環境,具備自動化
    的頭像 發表于 12-11 13:55 ?535次閱讀

    k8s微服務架構就是云原生嗎?兩者是什么關系

    k8s微服務架構就是云原生嗎?K8s微服務架構并不等同于云原生,但兩者之間存在密切的聯系。Kubernetes在云原生架構中扮演著核心組件的角色,它簡化了容器化應用程序的管理,提供了彈
    的頭像 發表于 11-25 09:39 ?451次閱讀

    混合云部署k8s集群方法有哪些?

    混合云部署k8s集群方法是首先需在本地與公有云分別建立K8s集群,并確保網絡連接。接著,配置kubeconfig文件連接兩集群,并安裝云
    的頭像 發表于 11-07 09:37 ?423次閱讀

    k8s云原生開發要求

    IO性能。網絡要求穩定,建議使用私有網絡VPC,并配置與Kubernetes兼容的網絡插件。操作系統需與K8s版本匹配,虛擬化平臺支持Docker等。此外,還需關注安全配置,如禁用Swap、調整Sysctl等,以及etcd數據存儲后端的配置。合理配置硬件可確保K8s
    的頭像 發表于 10-24 10:03 ?510次閱讀
    <b class='flag-5'>k8s</b>云原生開發要求

    服務器部署k8s需要什么配置?

    服務器部署K8s需要至少2核CPU、4GB內存、50GBSSD存儲的主節點用于管理集群,工作節點建議至少2核CPU、2GB內存、20GBSSD。還需安裝Docker,選擇兼容的Kubernetes版本,配置網絡插件,以及確保系
    的頭像 發表于 10-09 15:31 ?414次閱讀

    納尼?自建K8s集群日志收集還能通過JMQ保存到JES

    作者:京東科技 劉恩浩 一、背景 基于K8s集群的私有化交付方案中,日志收集采用了ilogtail+logstash+kafka+es方案,其中ilogtail負責日志收集,logstash負責對數
    的頭像 發表于 09-30 14:45 ?380次閱讀

    常用的k8s容器網絡模式有哪些?

    常用的k8s容器網絡模式包括Bridge模式、Host模式、Overlay模式、Flannel模式、CNI(ContainerNetworkInterface)模式。K8s的容器網絡模式多種多樣
    的頭像 發表于 09-19 11:29 ?535次閱讀

    K8S集群中使用JDOS KMS服務對敏感數據安全加密

    基本概念 KMS,Key Management Service,即密鑰管理服務,在K8S集群中,以驅動和插件的形式啟用對Secret,Configmap進行加密。以保護敏感數據, 驅動和插件需要
    的頭像 發表于 08-09 16:00 ?433次閱讀
    <b class='flag-5'>K8S</b><b class='flag-5'>集群</b>中使用JDOS KMS<b class='flag-5'>服務</b>對敏感數據安全加密

    K8S學習教程(二):在 PetaExpress KubeSphere容器平臺部署高可用 Redis 集群

    并且需要手動重啟節點,相較之下,使用 PetaExpress 提供的 Kubernetes(k8s) 服務 進行 Redis 集群的部署,則展現出了顯著的優勢: 1、安裝便捷:使用鏡像或者 yaml 配置文件即可一件安裝,極大地
    的頭像 發表于 07-03 15:30 ?1117次閱讀
    <b class='flag-5'>K8S</b>學習教程(二):在 PetaExpress KubeSphere容器平臺部署高可用 Redis <b class='flag-5'>集群</b>

     K8S學習教程一:使用PetaExpress云服務器安裝Minikube 集群

    使得開發人員能夠在本地機器上輕松創建一個單節點的 Kubernetes 集群,從而方便開發、測試和學習 Kubernetes。 我們看下如何使用PetaExpress云服務器安裝Minikube 集群
    的頭像 發表于 07-01 15:41 ?570次閱讀
     <b class='flag-5'>K8S</b>學習教程一:使用PetaExpress云<b class='flag-5'>服務</b>器安裝Minikube <b class='flag-5'>集群</b>