最近在學習k8s,產生了幾個問題:

  1. node 是不是對應一個物理機或者虛擬機,一個用來工作的機器呢?貌似是這樣理解。
  2. pod的一個副本是不是一定是運行在唯一一個node上面呢?會不會pod的其中一個容器運行中node1,另一個容器運行在node2?
  3. 除了github,還有沒有其他地方可以下載到二進位編譯好的可執行程序,github真的太慢了。
  4. 創建一個RC之前要不要先創建好一個pod呢?如果這個RC對應這個pod?我看到網上的教程好像是不需要的,這令我有些迷惑。


1,理解正確,一個node就是一個網路上的節點,代表一台計算主機,它可以是物理機也可以是虛擬機

2,不同的pod副本有可能分配到不同節點之上,因為主節點會根據情況動態的分配節點給不同的pod,你說這種情況是有可能發生的。但是同一pod內的容器是不會分散到不同節點之上的,因為pod是k8s資源中的最小單位,不能把它的內容分散開部署

3,github的替代品可能會有,但是我不知道,業界現在普遍都用github,不清楚你的具體需要多快的下載速度

4,在配置rc的yaml文件中,spec.template.spec是配置pod信息的地方,可以配置具體的容器等內容,運行後,pod副本就會根據這個template的配置而生成


  1. 是的。The nodes in a cluster are the machines (VMs, physical servers, etc) that run your applications and cloud workflows.
  2. pod的一個副本一定是運行在一個node上的,具體運行在哪一個node取決於調度策略,pod是k8s的最小調度單位,同一個pod的containers一定運行在一個node上。
  3. 買個高級點寬度
  4. 建議使用Deployment,保證pod的數據滿足定義的replica數目。


1、是的

2、pod的副本不一定會運行一個node上面。也有可能像你後面說的「pod的其中一個容器運行中node1,另一個容器運行在node2?」

3、用阿里的yum鏡像源,yum 安裝

4、RC是控制器,是控制pod。創建RC後,RC會根據配置文件所寫的自動創建pods。即便把這個pod手動刪除,RC發現pod沒有了,還會自動創建。建議用deployment


  1. 是的
  2. Pod中的containers不可分割
  3. yum install kubeadm
  4. RC可以用來創建和管理Pod,也可以用來管理已有的符合label的Pod。現在一般用ReplicaSet,RC已淘汰

不建議一上來就干,先看下基本概念,學習效率會更高


From:https://www.nakivo.com/blog/docker-vs-kubernetes/

pod會deploy到哪個node取決於deployment.yaml是怎麼寫的

更具體說是nodeSelector,nodeAffinity的label值,不填的話就是默認交給k8s系統來自由判斷


  1. 迄今為止 pod 內的容器都必須處在同一個節點上,不能跨界點
  2. 如果你搭建 k8s 是去 github 上直接下載二進位,那說明你看的教程太老了。一開始大家的確都是直接起二進位的,後來用包管理器,再後來都是 kubeadm。你搜搜 kubeadm 搭建的教程吧,簡單多了
  3. rc 是自動管理 pod 的,一般來說有 rc 就不需要手動起停 pod 。rc 和 pod 是用 label 對應的。其實還是你教程太老,很早之前 Google 就不傾向把 rc 給用戶用了。給用戶用的是 rc 的上層,Deployment/Daemonset/Job 等等對象

k8s 發展比較快,所以很多教程都早過時了。你看教程前關注下版本號,太老的就不要看了,浪費時間。


下載慢可以把鏈接複製下來用迅雷下,一般都會有很多個點

基本概念建議看官網,概念模清楚了大方向也不會偏差


推薦閱讀:
相关文章