antony@notes:~/kubernetes$ cat "Kubernetes-有舵手的意思.md"
Kubernetes (有舵手的意思)
Kubernetes (有舵手的意思)
- 由google公司主導與設計。
這個logo"船舵",代表這是一個航運系統,管理很大的一群船隊,而他管的船就是"Moby(application container)"。 - 用來維運管理application container。
- 這些application container是分散在一堆實體電腦上面。
- 又稱K8s,因"K"~“S"裡面有8個英文字母。
問題: 在m1、w1和W2這3台實體電腦中,全部裝linux,裡面啟動container技術,公司說就是你管的,現在要啟動一台裡面裝nginx的container,請問要在哪一台機器啟動? 答: 今天有3台實體電腦,啟動container技術,實務上如果由人決定在哪台run,你是辛苦的、痛苦的,甚至會傷害到器官,因為當管理的機器數量的規模越來越大,人將無法適當管理,所以這時候就需要Kubernetes來幫忙管理。
Replication of components
- 叢集,創建/複製相同application。
- 叢集,同一個服務開好幾個pods來提供服務,避免單點損毀的情況以提高可用性。
Auto-scaling
- 當偵測到connection大量衝入時,自動平行擴充應用系統,大型服務系統都會用,例如: Goole、FB。
- 橫向擴充,可以依照暴漲的流量擴充機器。
- 需要強的硬體設備才能做得到。
Load balancing
- 擴充後要分流,負載平衡機制。
Rolling updates
- 專門給程式設計使用,系統修改完,會有新的版本,每當程式修改一次,就要再做一次測試,先從原碼掃描開始,就是看
Logging across components
Monitoring and health checking
world computer
錄製_2021_10_13_11_12_25_773
autopilot
K8S 雲端服務
- Google GKE
- Amazon EKS
- Azure AKS
以上這3種雲都有各自改過K8S的原生系統,
K8S 自建
- RedHat OpenShift
- VMware Tanzu
- Rancher
這套商業軟體,就是靠上面這個類似儀表板的介面,來管理K8S,也就是WEB UI
以上這3家公司都有各自改過K8S的原生系統
K8s環境介紹

- API Server接收到前端(User interface)的命令:K8S幫我產生一個nginx網站的Pod出來,API Server就會把訊息傳給Scheduler,Scheduler就會往後看W1( Worker node 1 )跟( Worker node 2 )誰比較閒
- pod 是 k8s 的運作最小單元,裡面可以跑多個 container
Master 裡面一定會有4個 pod
- API Server :此 pod 中含1個 container,專門用來接收命令(從 WEB UI 或 CLI(kubectl) 來的)
- Scheduler : 接受從 API Server 來的創建 pod 指令,去看哪一個 Node 比較適合開新的 pod 並且進行排程 (決定 pod 要在哪開)
- Controller-Manager : 照顧 pod ,若 node 掛掉會把 pod 移去其他點。若 pod 工作負荷太大,也會再開啟新的 pod 來分散流量 (auto-scaling + Load-balancing)
- etcd : 最重要的區塊,存放整個 k8s 系統運作的重要資訊
Worker node :
- kubelet :呼叫 docker 產生 container ,接收由 Scheduler 傳送來的指令
- 會負責存放一些 pod 的 metadata
- pod正常運行結束後,pod會被刪除後會再重新建一個新的一樣的pod
- 他是一個Deamon。
- kube-proxy :提供兩邊 node 間的 pod 可以互通網路
- 他是一個pod。
問題: 在m1、w1和W2這3台實體電腦中,全部裝linux,裡面啟動container技術,公司說就是你管的,現在要啟動一台裡面裝nginx的container,請問要在哪一台機器啟動?
答: 今天有3台實體電腦,啟動container技術,實務上如果由人決定在哪台run,你是辛苦的、痛苦的,甚至會傷害到器官,因為當管理的機器數量的規模越來越大,人將無法適當管理,所以這時候就需要Kubernetes來幫忙管理。