Skip to content

antony@notes:~/kubernetes$ cat "Kubernetes-有舵手的意思.md"

Kubernetes (有舵手的意思)

2021-10-26· kubernetes ·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。
tags: Kubernetes