Open ericltw opened 4 years ago
介紹
官網對Kubernetes的描述為:
Automated container deployment, scaling, and management. Deployment
Automated container deployment, scaling, and management.
同時部署多個容器到多台server。
服務的承載量有變化時,可以對容器自動擴展。
管理多個容器的狀態,自動偵測並重啟故障的容器。
目的
抽象化管理一組容器的複雜性。透過與Kubernetes REST API交互,你可以描述應用程序理想的狀態,K8s將做一切必要工作,使實際部署狀態與理想狀態相符。
https://thenewstack.io/kubernetes-an-overview/
Architecture
Kubernetes是一個cluster,由多台實體或虛擬主機組成。一個Kubernetes最少會有一個worker node和最少一個master node。
host the pods.
管理the worker nodes和pods。
Master Server Components
etcd
key-value store
用於儲存所有cluster的數據
kube-apiserver
公開Kubernetes RESTful API
負責請求的身份認證和授權
kube-controller-manager
調節cluster狀態,執行例行任務,由多個controller組成:
Node Controller
負責節點故障時的通知和響應。
Replication Controller
負責為系統中每個replication controller object維護正確的pod數量。
Endpoints Controller
填充endpoints對象(join Services & Pods)。
Service Account & Token Controllers
為新的namespace創建默認account和API access token。
kube-scheduler
監視未分配node的新創建的Pod,選擇一個要在其上運行的node,考量因素包含:
個人和集體資源需求
hardware / software / policy限制
affinity and anti-affinity specifications // TODO
data locality
inter-workload interface
deadlines
cloud-controller-manager // TODO
Node Server Components
在每個node上運行的代理,確保container在pod中運行。
kubelet包含通過各種機制取得的一組PodSpecs(主要透過kube-api-server),確保這些PodSpecs中描述的容器運行正常。
是network proxy運行於cluster中的每個node。
kube-proxy維護節點上的網絡規則。這些網絡規則允許從cluster內部或是外部與Pod進行網絡通信。
負責運行container,Kubernetes支持多種container runtime,包含:
Workloads
透過Kubernetes中的兩種基本結構pods和controllers,能夠構件任何複雜的容器化程序。
Pods
為Kubernetes創建或部署最小的執行單元。
一個pod object內封裝一個或多個緊密耦合的container。
在同一個pod裡的containers共享environment, volumes, IP address, network ports。
很少直接使用。
Controllers
controllers是為pod設置部署規則的object,根據這些規則,K8s執行部署並使用應用程序當前的狀態更新controllers。controllers讓你定義應用的scheduling, scaling, upgrade規則。
Services
將運行在多個pods的應用公開為網路服務的抽象方法。
Volumes and Peresistent Volumes // TODO
Labels and Annotations // TODO
https://kubernetes.io/docs/concepts/overview/components/
https://www.digitalocean.com/community/tutorials/an-introduction-to-kubernetes#node-server-components
https://www.aquasec.com/wiki/display/containers/Kubernetes+Architecture+101
https://medium.com/@C.W.Hu/kubernetes-basic-concept-tutorial-e033e3504ec0
https://rancher.com/docs/rancher/v2.x/en/k8s-in-rancher/workloads/
https://www.youtube.com/watch?v=X48VuDVv0do&t=871&ab_channel=TechWorldwithNana
https://ithelp.ithome.com.tw/users/20129600/ironman/3179?page=1
Kubernetes
What is Kubernetes?
介紹
官網對Kubernetes的描述為:
同時部署多個容器到多台server。
服務的承載量有變化時,可以對容器自動擴展。
管理多個容器的狀態,自動偵測並重啟故障的容器。
目的
抽象化管理一組容器的複雜性。透過與Kubernetes REST API交互,你可以描述應用程序理想的狀態,K8s將做一切必要工作,使實際部署狀態與理想狀態相符。
What Kubernetes provides? // TODO
Design Principles // TODO
https://thenewstack.io/kubernetes-an-overview/
Core Concept
Architecture
Kubernetes是一個cluster,由多台實體或虛擬主機組成。一個Kubernetes最少會有一個worker node和最少一個master node。
host the pods.
管理the worker nodes和pods。
Master Server Components
etcd
key-value store
用於儲存所有cluster的數據
kube-apiserver
公開Kubernetes RESTful API
負責請求的身份認證和授權
kube-controller-manager
調節cluster狀態,執行例行任務,由多個controller組成:
Node Controller
負責節點故障時的通知和響應。
Replication Controller
負責為系統中每個replication controller object維護正確的pod數量。
Endpoints Controller
填充endpoints對象(join Services & Pods)。
Service Account & Token Controllers
為新的namespace創建默認account和API access token。
kube-scheduler
監視未分配node的新創建的Pod,選擇一個要在其上運行的node,考量因素包含:
個人和集體資源需求
hardware / software / policy限制
affinity and anti-affinity specifications // TODO
data locality
inter-workload interface
deadlines
cloud-controller-manager // TODO
Node Server Components
在每個node上運行的代理,確保container在pod中運行。
kubelet包含通過各種機制取得的一組PodSpecs(主要透過kube-api-server),確保這些PodSpecs中描述的容器運行正常。
是network proxy運行於cluster中的每個node。
kube-proxy維護節點上的網絡規則。這些網絡規則允許從cluster內部或是外部與Pod進行網絡通信。
負責運行container,Kubernetes支持多種container runtime,包含:
Workloads
透過Kubernetes中的兩種基本結構pods和controllers,能夠構件任何複雜的容器化程序。
Pods
為Kubernetes創建或部署最小的執行單元。
一個pod object內封裝一個或多個緊密耦合的container。
在同一個pod裡的containers共享environment, volumes, IP address, network ports。
很少直接使用。
Controllers
controllers是為pod設置部署規則的object,根據這些規則,K8s執行部署並使用應用程序當前的狀態更新controllers。controllers讓你定義應用的scheduling, scaling, upgrade規則。
Services
將運行在多個pods的應用公開為網路服務的抽象方法。
Volumes and Peresistent Volumes // TODO
Labels and Annotations // TODO
Reference
https://kubernetes.io/docs/concepts/overview/components/
https://www.digitalocean.com/community/tutorials/an-introduction-to-kubernetes#node-server-components
https://www.aquasec.com/wiki/display/containers/Kubernetes+Architecture+101
https://medium.com/@C.W.Hu/kubernetes-basic-concept-tutorial-e033e3504ec0
https://rancher.com/docs/rancher/v2.x/en/k8s-in-rancher/workloads/