原创 http 301 302 303 307 308 傻傻分不清

http的重定向我們經常是張口就來,“小明,在nginx上做一個重定向就行了”。整個流程非常簡單,服務端HTTP返回碼是30x,頭裏面的Location字段代表新的URL。如下圖所示: 但重定向也還是有需要深入探討地方,返回碼不

原创 golang https server(二)

之前的blog介紹了https的單向認證流程,這裏再介紹一下雙向認證的過程。人多人沒有理解雙向認證的過程,這裏先介紹一下認證流程 這裏的ca證書其實是可以不一樣的,這是很多人的誤區,服務端證書用服務端的ca簽名過後,客戶端應

原创 raft算法-順帶處理前任的事-看似隨心卻是精心

今天在跑raft算法的時候,突然發現一個有意思的細節:如何處理前任未提交的日誌。 我們都知道raft選舉的時候會綜合考慮任期(term)和日誌索引(index),優先選擇具備最新的數據的節點成爲master,這個其實非常容易理解,

原创 把對象存儲轉爲文件存儲,到底香不香?

目前開源的文件存儲有很多,譬如NFS、GlusterFS、CephFS等,但實話實話這些文件存儲都存在一定的問題,譬如NFS的多集羣要折騰、GlusterFS的小文件存儲性能差、CephFS的運維複雜度和穩定性不高。結合公司的業務

原创 linux內核的oom score是咋算出來的

本篇文章主要和大家分享linux的oom_score的工作原理。 關於kubernetes的Qos在之前的blog已經分享過了,感興趣的童鞋可以去看一下。k8s的Qos底層便是依賴內核的OOM機制。 linux的OOM kille

原创 記錄ceph對象存儲的一個bug

我們的對象存儲是基於ceph的對象存儲搭建的,測試環境是N版本的,生產環境是M版本的。業務使用的是doesObjectExist這個API,核心Java代碼如下 boolean exists = s3Client.

原创 TCP漫談之爲啥需要timewait狀態

tcp的狀態狀態轉化圖如下所示,其中Time_awit狀態是CLOSED之前的一個狀態,等待2個MSL時間。 爲啥需要time_awit狀態呢?爲啥不直接進入closed狀態呢?這樣不就能更快的釋放資源給新的連接使用了嗎?而是還

原创 TCP漫談之keepalive

tcp是一個有狀態通訊協議,所謂的有狀態是指通信過程中通信的雙方各自維護連接的狀態。 先簡單回顧一下TCP的連接建立和斷開的整個過程。這裏主要考慮主流程(關於丟包、擁塞、窗口、失敗重試等情況後面詳細討論),首先是客戶端發送syn(

原创 寫Dockerfile的一個小坑

下面是是一個簡單的Dockerfile。 FROM centos ENV LANG en_US.UTF-8 ENV TZ Asia/Shanghai COPY softs/jdk1.8.0_161 /opt/ RUN set

原创 kubernetes添加第三方存儲(一)

kubernetes發展到1.7以後,就朝着平臺去開發了,上一個討論的點是kubernetes把metrics單獨出去,成爲一個kubernetes的監控標準,這個我們以後再慢慢說,先看存儲這個孵化的項目。github.com/k

原创 kubernetes qos 全解析

kubernetes qos 資源分類 QOS是kubernetes保證服務質量的一個模塊。 先介紹兩個基本概覽 * 可壓縮資源:CPU 在壓縮資源部分已經提到CPU屬於可壓縮資源,當pod使用超過設置的limits值,po

原创 golang 源碼分析之URL編碼規範

首先看一下url編碼規範: backspace %08 tab %09 linefeed %0A creturn %0D

原创 編寫一個http的調用鏈

這李借鑑我同事寫的一個調用鏈,看看如果個一個請求加上一個調用鏈,這個其實在其它編程裏面都會用到,如果熟悉攔截器的對此會應該會更有體會 先看看測試代碼 package main import ( "fmt" "n

原创 docker 存儲驅動之overlay2

overlay2 overlay2原生支持128層,這提供docker build和docker commit更好的性能支持 在執行完docker pull ubuntu後,可以看到 $ ls -l /var/lib/docke

原创 kubernetes 架構解析之kube-apiserver啓動過程詳解

之前的blog分析過k8s 1.4的apiserver代碼,今天和大家分享一下k8s 1.7.6關於apiserver啓動的代碼。先上一個大圖,花了好幾個小時! 上面的圖是整個啓動的完整流程,關於api註冊的地方。我打印了具