Dec 24 2025
MrVolleyball -
envoy使用consul做服務發現
前言
上一篇內容,我們詳細討論了怎麼使用envoy做負載均衡,並且記錄詳細的地址,其中還解決了一個問題,那就是怎麼讓envoy獲取真實後端pod ip地址,後面使用headless service,既使用了service的服務發現能力,又不使用service的負載均衡能力
如果在某些特殊的場景下完全放棄的k8s service(比如混合雲部署機房,兩邊雲都需要有相同的服務,但是服務之間不能跨雲訪問
雲計算
Dec 22 2025
MrVolleyball -
追蹤鏈路--使用envoy來記錄後端pod真實ip
前言
之前使用了iptables、ipvs,在數據包的必經之路(POSTROUTING)上攔截並且記錄日誌,本文使用一個比較成熟的組件envoy來記錄後端pod的真實ip
環境準備
環境準備如同之前
▶ kubectl get pod -owide
NAME READY STATUS RESTARTS AGE IP
雲計算
Dec 17 2025
MrVolleyball -
追蹤鏈路--使用iptables/ipvs來記錄後端pod真實ip
前言
之前使用nginx-ingress-controller來記錄後端真實ip,但是有位老哥説了,我沒有用nginx-ingress-controller,而是用的原生nginx,這時候又當如何記錄後端真實ip的問題呢
環境準備
nginx:
upstream backend_ups {
server backend-service:10000;
}
server {
list
雲計算
Nov 27 2025
MrVolleyball -
6年前的項目終於更新了--機房ping監控全國主要城市
前言
當初項目的本意是為了監測中心機房到全國各地(主要是省會與重要城市)的ping速率而創建,目標ip地址是根據某個ip網站爬取,而現在該網站已經下線了,導致目標ip無法獲取,再加上所用組件版本已經年久失修,最後是本人懶惰~~,導致項目已經不可用很久了
今年勤奮戰勝懶惰,又重新佔領高地,想着把該項目重修修繕一遍
開始修繕
更換ip庫:放棄了之前的網站,重新找了一份ip地址庫,並且會定期更新
雲計算
Nov 20 2025
MrVolleyball -
opentelemetry全鏈路初探--日誌跳轉trace
前言
上一小節描述了metrics、traces,本小節來把log也加進去,並且做一個traces與log的聯動
當查看日誌的時候,可以同時跳轉到對應的jaeger,查看分段trace情況
應用服務
本次要測試的應用服務架構為 a.py--b.py
業務服務會往對應的目錄打印日誌,並且日誌包含了trace_id
a.py
import tornado.httpserver as h
雲計算
Nov 18 2025
MrVolleyball -
opentelemetry全鏈路初探--jaeger架構拆分
前言
jaeger的架構演變
在之前的描述中,一直使用jaeger:all-in-one來做數據存儲與展示,jaeger:all-in-one就是將collector、query、ui、storage等等功能的大雜燴,在調試與測試環境中,非常方便,但是在生產環境肯定是不能這樣用,本節就來 將其拆分成對應的子模塊
jaeger架構改造
數據上報:可以是sdk、api、定時腳本等一切上報trace
雲計算
Nov 12 2025
MrVolleyball -
opentelemetry全鏈路初探--python注入
前言
經過上一節,opentelemetry的基本操作都已經融會貫通,但是有位老哥提出疑問?我的代碼都已經寫完了,為了添加全鏈路,還需要重構之前的代碼嗎?那這個代價太大了。那本章就來討論一下opentelemetry的注入的問題
本小節主要關注python注入
使用裝飾器
使用裝飾器的好處就是非常靈活,並且對代碼入侵很小,只需要裝飾一下即可
decoration-s1.py
import torn
雲計算
Nov 10 2025
MrVolleyball -
opentelemetry全鏈路初探--埋點與jaeger
前言
某天一位業務研發老哥跑來諮詢
研發老哥:我的服務出現了504,但是不太清楚是哪個環節報錯,每次請求需要訪問4個微服務、2個數據庫、1個redis、1個消息隊列。。。
苦逼運維:停停停,不要再説了,目前不支持鏈路追蹤,只能手動幫你一個服務一個服務的排查了
先請老哥大概描述了一下業務邏輯以及訪問方式,10分鐘過去了。再逐級排查每個服務以及對應訪問的資源層,終於在半小時之後完成了故障定位。
雲計算
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習--多元線性迴歸(實戰)
前言
書接上文,上一小節簡單介紹了多元迴歸的基本原理、使用方式,本小節來實踐:qps與cpu、內存、磁盤io、網絡io之間的關係
獲取數據
參考一元線性迴歸的獲取方式
from flow import *
from datetime import datetime
start_time = datetime.strptime('2025-04-06 00:00:00', '%Y-%m-%d %H
機器學習
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習--最小二乘法的數學推導
前言
今天我們來討論一下回歸算法當中的數學實現。本人數學也是渣,大學時期概率論一直掛到清考才勉強通過,+_+ !!,如今勇闖機器學習,硬着頭皮重新學習了微積分和線代,也是為了記錄自己最近的狀態,避免過段時間忘記了。描述的時候有不周全的地方,請各位大佬們多擔待了
本節將會運用一些數學知識來解釋一下相關的迴歸算法的合理性,雖有些枯燥,但知其然也知其所以然,多瞭解一些總是好的
最小二乘法
最小二乘法的核
機器學習
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習:多項式迴歸
前言
在之前的討論中,討論的都是線性迴歸,自變量與結果可以通過一條直線來解釋。而今天討論的問題,自變量與結果可能需要曲線來擬合,也就是所謂的 \(x^n\),n=2
開始探索
老規矩,先運行起來,再探索原理
1. scikit-learn
import numpy as np
from sklearn.preprocessing import PolynomialFeatures
from skl
機器學習
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習--擬合
前言
今天我們來討論擬合的問題
在之前的篇幅,主要討論的是線性迴歸的問題,不管是一元、多元、多項式,本質都是線性迴歸問題。線性迴歸在機器學習中屬於“監督學習”,也就是使用已有的、預定義的“訓練數據”集合,訓練系統,在解釋未知數據時,也能夠很好的解釋
而模型訓練完成之後,可能會有3中狀態:“欠擬合”、“最佳適配”、“過擬合”。本小節就來消息討論一下,怎麼判斷訓練出來的模型處於什麼樣的狀態
過擬合
老
機器學習
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習--邏輯迴歸
前言
從本節開始,我們的機器學習之旅進入了下一個篇章。之前討論的是迴歸算法,迴歸算法主要用於預測數據。而本節討論的是分類問題,簡而言之就是按照規則將數據分類
而要討論的邏輯迴歸,雖然名字叫做迴歸,它要解決的是分類問題
開始探索
scikit-learn
還是老規矩,先來個例子,再討論原理
假設以下場景:一位老哥想要測試他老婆對於抽煙忍耐度,他進行了以下測試
星期一
機器學習
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習--決策樹
前言
決策樹是一種常用的機器學習模型,用於分類和迴歸任務,它通過模擬“樹”的結構來對數據進行決策。本節我們詳細討論的是決策樹中的分類任務
開始探索
scikit-learn
假設以下運維場景
CPU
低:40%
中:40%~70%
高:70%
內存
低:60%
中:60%~85%
高:85%
磁盤I/O
低:40%
機器學習
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習--隨機森林
前言
隨機森林的出現,是為了解決決策樹對訓練數據過擬合的問題而出現的。決策樹在訓練的工程中,可以讓每一個葉子節點的不確定性降為0(即熵或者基尼指數為0),這樣做可能把訓練數據中的偶然性、異常值或噪聲也當成了“規 律”去學習了
對於複雜高維的數據,隨機森林的算法可以更好的泛化能力
開始探索
scikit-learn
老規矩,先上代碼,看看隨機森林的用法
from sklearn.ensemble i
機器學習
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習--梯度下降法
前言
彩筆運維勇闖機器學習,今天我們來討論一下梯度下降法
梯度
首先要搞明白什麼是梯度,那就要先從導數説起
導數
函數\(y=f(x)\)的自變量\(x\)在一點\(x_0\)上產生一個增量\(\Delta x\)時,函數輸出值的增量\(\Delta y=f(x_0 + \Delta x)-f(x_0)\)與自變量增量\(\Delta x\)的比值在\(\Delta x\)趨於0時的極限\(a\)
機器學習
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習--lasso迴歸
前言
彩筆運維勇闖機器學習,今天我們來討論一下lasso迴歸,本期又是一起數學推理過程展示
座標下降法
目標找到一組參數,使目標函數值最小。比如\(f(x,y)=3x^2+5xy+10y^2\),要找到\(x,y\)使得\(f(x,y)\)取值最小
\[x_j^{(k+1)} = \arg \min_{x_j} f(x_1^{(k+1)}, \dots, x_{j-1}^{(k+1)}, x_j
機器學習
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習--GBDT
前言
本文討論的GBDT算法,也是基於決策樹
開始探索
scikit-learn
老規矩,先上代碼,看看GBDT的用法
from sklearn.datasets import load_iris
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import train_tes
機器學習
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習--KNN算法
前言
彩筆運維勇闖機器學習:KNN算法,它也是分類中的一種
開始探索
scikit-learn
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
機器學習
Nov 07 2025
MrVolleyball -
彩筆運維勇闖機器學習--孤立森林
前言
孤立森林,一種非常高效快速的異常檢測算法
開始探索
scikit-learn
import numpy as np
import matplotlib.pyplot as plt
from sklearn.ensemble import IsolationForest
rng = np.random.RandomState(0)
X_train = 0.3 * rng.randn(100
機器學習