Kubernetes 企業訓練課程 - 微服務導入實戰

課程時間 2018/05/27 & 2018/06/03

ta-ching chen

1 minute read

課堂挑戰題影片說明


課堂疑問整理

若有任何疑問歡迎在下面 DISQUS 提問 :)

容器在不做資源限制的狀況下是否會使用 Host 所有資源?

沒錯,因此必須針對各容器做適當的限制避免耗盡資源。另外,有以下幾點好處

  1. 利於容器調度
  2. 避免單一容器異常波及其他正常服務
  3. 統計容器叢集資源使用總量
  4. 避免影響 host 正常運作

單台 host 開越多容器是否意味著能夠負載更多連線

這邊是常見的誤區,儘管容器之間的資源可以共享但實際上仍然受制於 host 上的資源總量。假設某應用在 host 上執行最高能負載 500 條連線,打包成容器執行後會變成 total connections <= 500,不會變成 500 * N。容器的優勢在於開關快速,可以根據服務的負載快速開關,以因應服務需求。但當資源總量不足時仍然需要透過擴張節點來支撐流量。

如何直接在 Minikube 內構建容器映像檔

利用 Docker Machine 方式構建映像檔,加速開發不必費時 push & pull images

ta-ching chen

1 minute read

開發流程發生什麼問題

對於一般開發者來說要架設 Kubernetes 是件吃力不討好的事情,自從 minikube 推出後大幅減低進入門檻,讓任何人都可以輕易在電腦上執行本地端的 Kubernetes。minikube 原理是利用 Hyperviosr 在電腦上執行已經安裝好 Kubernetes 的虛擬機,再將 kubelet 的設定指向 minikube 內。

一般開發流程大概是:

  1. 修改程式
  2. 打包成映像檔,送到 remote registry
  3. 更新 pod spec
  4. docker daemon 從 registry 拉最新映像檔

push-pull-image-to-from-remote-registry

BASH 讀取傳入值的坑

那些年的心酸血淚

ta-ching chen

1 minute read

前言

進入正題前想到這則推特,真是心情寫照阿!

辛酸血淚

最近利用 bash 寫測試程式,需要將參數傳入 function 內

#!/bin/bash
test() {
    echo $1
}
test "foobar"

今天卻遇到個百思不得其解的問題,程式、參數大致看起來沒有問題

#!/bin/bash
test() {
    echo $1 $2 ... $9 $10
}
test "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"

程式輸出卻變成

$ ./test.sh
a b ... i a0