Kubeguts' Notes.

Just note it.

使用Kubernetes來實現Zero-downtime服務更新與移轉的策略

通常若一有新版本服務要上線時,都需要考量到移轉到新的服務是否會對舊有的服務造成衝擊? 例如下面這張圖,目前k8s上運行著一個 nginx 1.14.2-alpine版本,現在打算想要更新nginx版本 一般來說會有以下2種做法 將所有存在的Pods都砍掉,再換成新的Pods 可能會有一些down-time的狀況發生 先將新的Pods運行起來,然後再砍掉Pods 新舊版本都會存......

使用Kubectl搭配yaml檔案部署

目前有一份定義好可部署於K8S的yaml檔案如下 nginx.deployment.yml 12345678910111213141516171819202122232425apiVersion: apps/v1kind: Deployment # 定義部署種類metadata: name: my-nginx # 定義部署名稱 labels: app: my-nginxspec......

Gitbook的使用紀錄

Gitbook提供了能夠將markdown格式轉寫成一本電子書的樣子 本地端執行 安裝方式,用 npm 安裝 1npm install -g gitbook-cli 使用方式 找一個資料夾,執行 1gitbook init 會產生 reamdme.md 介紹本書內容 summary.md 用來定義gitbook目錄 summary.md 結構 123* ch1 * ch1......

靜態與動態函式庫的介紹與差異(Static 與 Shared Libraries)

剛好在複習Golang的時候看到Go有支援載入C Language的Static Library與Shared Libraries,於是來複習一下他們之間的差異 介紹 首先要先了解,Library的意義,就單純為一個檔案 將會共用的程式碼打包再一起的檔案就稱為Library 假設現在若要使用print這個方法來印出東西在螢幕, 故可以將print編譯成Library,供各個開發者直接使用,......

State Pattern 狀態模式 [Design Pattern in Java]

透過統一的"狀態類別",來定義物件的內部狀態是如何 以糖果機為例子,沒有使用State Pattern的狀況 我們現在有個糖果機,通常一台糖果機可以進行投幣,轉動手把,並吐出一顆糖果 所以該糖果機共有四種狀態 (NoCoinState目前沒有錢幣, HasCoinState目前有錢幣, SoldCandyState售出糖果中, NoCandyState沒有糖果中),如附......

Composite Pattern 合成模式 [Design Pattern in Java]

將有階層關係的類別狀態給扁平化,給使用者看到的是一致性的關係 若沒有合成模式會怎樣? 假如現在我們來到一間自助吧,有一個菜單類別,但這個菜單類別裡面還會有甜點這個子菜單 大概長下面這樣 於是我們大概會這樣實作 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495......

Iterator Pattern 反覆器模式 [Design Pattern in Java]

將處理陣列或是取值方式的邏輯給封裝起來,不需讓使用者直接處理操作取值的邏輯 沒有Iterator Pattern的情況 假設現在有2種菜單, 分別叫做中式料理菜單 與 西式料理菜單 中式料理菜單是用ArrayList的方式儲存菜單項目 美式料理菜單是用Array[]儲存 中式料理菜單 1234567891011121314151617class ChineseMenu { ......

Template Pattern 樣板模式 [Design Pattern in Java]

樣板, 顧名思義就是把同樣的邏輯定義成一個樣板, 可讓其他類別共同使用 樣板也會開放可客製化的方法 (抽象方法), 供其他類別實作 樣板主要核心 將共同演算法邏輯包裝好 定義非共同的方法為抽像方法, 請使用樣板方法的類別自行實作 透過泡茶與泡咖啡來瞭解樣板模式吧 這時候若直接寫code, 會分別定義出 Tea 與 Coffee class 12345678910111213141516......

Facade Pattern 表象模式 [Design Pattern in Java]

將複雜的類別關係, 用一個類別包裝起來, 供呼叫 不會讓使用者直接看到背後複雜的邏輯, 只會看到 “表面的現象”, 故叫做表象模式 以一個家庭劇院來解說 如果坐在客廳, 想要營造一個家庭劇院 我們得做以下事情: 打開燈, 調整亮度 打開電視, 切換到DVD模式 打開音響, 調整大小聲 打開DVD, 讀取要看的片 等等之類的, 以下定義這些服務的class 123456789101112......

Adaptor Pattern 轉接器模式 [Design Pattern in Java]

假如要使用A, 但無法直接使用, 只能使用B介面 所以我們用轉接器類別包裝A的方法,並且實作B,達到轉接的效果 用螢幕轉接器的例子直接解釋 例如我們有個 HDMI的線, 叫做 HDMI interface 12345interface HDMI { // 定義連接裝置的方法格式 boolean connect(String device);} 但現在有個螢幕......