k8s 基礎原理介紹 面試常問


第一章 kubernetes 基礎

Kubernetes是谷歌以Borg為前身,基於谷歌15年生產環境經驗的基礎上開源的一個項。

Kubernetes致力於提供跨主機集群的自動部署、擴展、高可用以及運行應用程序容器的平台。

1.1、master 節點:整個集群的控制中樞
  • Kube-APIServer:集群的控制中樞,各個模塊之間信息交互都需要經過Kube-APIServer,同時它也是集群管理、資源配置、整個集群安全機制的入口。

  • Controller-Manager:集群的狀態管理器,保證Pod或其他資源達到期望值,也是需要和APIServer進行通信,在需要的時候創建、更新或刪除它所管理的資源。

  • Scheduler:集群的調度中心,它會根據指定的一系列條件,選擇一個或一批最佳的節點,然后部署我們的Pod。

  • Etcd:鍵值數據庫,報錯一些集群的信息,一般生產環境中建議部署三個以上節點(奇數個)。

1.2、node節點:工作節點

worker、node節點、minion節點

  • Kubelet:負責監聽節點上Pod的狀態,同時負責上報節點和節點上面Pod的狀態,負責與Master節點通信,並管理節點上面的Pod。

  • Kube-proxy:負責Pod之間的通信和負載均衡,將指定的流量分發到后端正確的機器上。

     

    Ø 查看Kube-proxy工作模式:curl 127.0.0.1:10249/proxyMode

    • Ipvs:監聽Master節點增加和刪除service以及endpoint的消息,調用Netlink接口創建相應的IPVS規則。通過IPVS規則,將流量轉發至相應的Pod上。

    • Iptables:監聽Master節點增加和刪除service以及endpoint的消息,對於每一個Service,他都會場景一個iptables規則,將service的clusterIP代理到后端對應的Pod。

其他組件

    • Calico:符合CNI標准的網絡插件,給每個Pod生成一個唯一的IP地址,並且把每個節點當做一個路由器。Cilium
    • CoreDNS:用於Kubernetes集群內部Service的解析,可以讓Pod把Service名稱解析成IP地址,然后通過Service的IP地址進行連接到對應的應用上。

    • Docker:容器引擎,負責對容器的管理。

      1.3、Kubernetes工作原理圖總結:
      一句話總結:
    • 我們通過kubectl向k8s Master發出指令。kubernetes Master主要是提供API Server、Scheduler、Controller組件,接收kubectl的命令,
    • 從Node節點獲取Node的資源信息,並發出調度任務。Node節點提供kubelet、kube-proxy,每個node節點都安裝docker,是實際的執行者。

    • kubernetes不負責網絡,所以一般是用Calico。etcd負責服務發現和node信息存儲。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM