<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 基本概念 ![](https://box.kancloud.cn/2015-12-16_5671229a8fbe0.jpg) * 節點(`Node`):一個節點是一個運行 Kubernetes 中的主機。 * 容器組(`Pod`):一個 Pod 對應于由若干容器組成的一個容器組,同個組內的容器共享一個存儲卷(volume)。 * 容器組生命周期(`pos-states`):包含所有容器狀態集合,包括容器組狀態類型,容器組生命周期,事件,重啟策略,以及 replication controllers。 * Replication Controllers:主要負責指定數量的 pod 在同一時間一起運行。 * 服務(`services`):一個 Kubernetes 服務是容器組邏輯的高級抽象,同時也對外提供訪問容器組的策略。 * 卷(`volumes`):一個卷就是一個目錄,容器對其有訪問權限。 * 標簽(`labels`):標簽是用來連接一組對象的,比如容器組。標簽可以被用來組織和選擇子對象。 * 接口權限(`accessing_the_api`):端口,IP 地址和代理的防火墻規則。 * web 界面(`ux`):用戶可以通過 web 界面操作 Kubernetes。 * 命令行操作(`cli`):`kubecfg`命令。 ## 節點 在 `Kubernetes` 中,節點是實際工作的點,節點可以是虛擬機或者物理機器,依賴于一個集群環境。每個節點都有一些必要的服務以運行容器組,并且它們都可以通過主節點來管理。必要服務包括 Docker,kubelet 和代理服務。 ### 容器狀態 容器狀態用來描述節點的當前狀態。現在,其中包含三個信息: #### 主機IP 主機 IP 需要云平臺來查詢,`Kubernetes` 把它作為狀態的一部分來保存。如果 `Kubernetes` 沒有運行在云平臺上,節點 ID 就是必需的。IP 地址可以變化,并且可以包含多種類型的 IP 地址,如公共 IP,私有 IP,動態 IP,ipv6 等等。 #### 節點周期 通常來說節點有 `Pending`,`Running`,`Terminated` 三個周期,如果 Kubernetes 發現了一個節點并且其可用,那么 Kubernetes 就把它標記為 `Pending`。然后在某個時刻,Kubernetes 將會標記其為 `Running`。節點的結束周期稱為 `Terminated`。一個已經 `Terminated` 的節點不會接受和調度任何請求,并且已經在其上運行的容器組也會刪除。 #### 節點狀態 節點的狀態主要是用來描述處于 `Running` 的節點。當前可用的有 `NodeReachable` 和 `NodeReady`。以后可能會增加其他狀態。`NodeReachable` 表示集群可達。`NodeReady` 表示 kubelet 返回 Status Ok 并且 HTTP 狀態檢查健康。 ### 節點管理 節點并非 Kubernetes 創建,而是由云平臺創建,或者就是物理機器、虛擬機。在 Kubernetes 中,節點僅僅是一條記錄,節點創建之后,Kubernetes 會檢查其是否可用。在 Kubernetes 中,節點用如下結構保存: ```json { "id": "10.1.2.3", "kind": "Minion", "apiVersion": "v1beta1", "resources": { "capacity": { "cpu": 1000, "memory": 1073741824 }, }, "labels": { "name": "my-first-k8s-node", }, } ``` Kubernetes 校驗節點可用依賴于 ID。在當前的版本中,有兩個接口可以用來管理節點:節點控制和 Kube 管理。 ### 節點控制 在 Kubernetes 主節點中,節點控制器是用來管理節點的組件。主要包含: * 集群范圍內節點同步 * 單節點生命周期管理 節點控制有一個同步輪尋,主要監聽所有云平臺的虛擬實例,會根據節點狀態創建和刪除。可以通過 `--node_sync_period`標志來控制該輪尋。如果一個實例已經創建,節點控制將會為其創建一個結構。同樣的,如果一個節點被刪除,節點控制也會刪除該結構。在 Kubernetes 啟動時可用通過 `--machines`標記來顯示指定節點。同樣可以使用 `kubectl` 來一條一條的添加節點,兩者是相同的。通過設置 `--sync_nodes=false`標記來禁止集群之間的節點同步,你也可以使用 api/kubectl 命令行來增刪節點。 ## 容器組 在 Kubernetes 中,使用的最小單位是容器組,容器組是創建,調度,管理的最小單位。 一個容器組使用相同的 Docker 容器并共享卷(掛載點)。一個容器組是一個特定運用的打包集合,包含一個或多個容器。 和運行的容器類似,一個容器組被認為只有很短的運行周期。容器組被調度到一組節點運行,直到容器的生命周期結束或者其被刪除。如果節點死掉,運行在其上的容器組將會被刪除而不是重新調度。(也許在將來的版本中會添加容器組的移動)。 ### 容器組設計的初衷 ### 資源共享和通信 容器組主要是為了數據共享和它們之間的通信。 在一個容器組中,容器都使用相同的網絡地址和端口,可以通過本地網絡來相互通信。每個容器組都有獨立的 IP,可用通過網絡來和其他物理主機或者容器通信。 容器組有一組存儲卷(掛載點),主要是為了讓容器在重啟之后可以不丟失數據。 ### 容器組管理 容器組是一個運用管理和部署的高層次抽象,同時也是一組容器的接口。容器組是部署、水平放縮的最小單位。 ### 容器組的使用 容器組可以通過組合來構建復雜的運用,其本來的意義包含: * 內容管理,文件和數據加載以及本地緩存管理等。 * 日志和檢查點備份,壓縮,快照等。 * 監聽數據變化,跟蹤日志,日志和監控代理,消息發布等。 * 代理,網橋 * 控制器,管理,配置以及更新 ### 替代方案 為什么不在一個單一的容器里運行多個程序? * 1.透明化。為了使容器組中的容器保持一致的基礎設施和服務,比如進程管理和資源監控。這樣設計是為了用戶的便利性。 * 2.解偶軟件之間的依賴。每個容器都可能重新構建和發布,Kubernetes 必須支持熱發布和熱更新(將來)。 * 3.方便使用。用戶不必運行獨立的程序管理,也不用擔心每個運用程序的退出狀態。 * 4.高效。考慮到基礎設施有更多的職責,容器必須要輕量化。 ### 容器組的生命狀態 包括若干狀態值:`pending`、`running`、`succeeded`、`failed`。 #### pending 容器組已經被節點接受,但有一個或多個容器還沒有運行起來。這將包含某些節點正在下載鏡像的時間,這種情形會依賴于網絡情況。 #### running 容器組已經被調度到節點,并且所有的容器都已經啟動。至少有一個容器處于運行狀態(或者處于重啟狀態)。 #### succeeded 所有的容器都正常退出。 #### failed 容器組中所有容器都意外中斷了。 ### 容器組生命周期 通常來說,如果容器組被創建了就不會自動銷毀,除非被某種行為觸發,而觸發此種情況可能是人為,或者復制控制器所為。唯一例外的是容器組由 succeeded 狀態成功退出,或者在一定時間內重試多次依然失敗。 如果某個節點死掉或者不能連接,那么節點控制器將會標記其上的容器組的狀態為 `failed`。 舉例如下。 * 容器組狀態 `running`,有 1 容器,容器正常退出 * 記錄完成事件 * 如果重啟策略為: * 始終:重啟容器,容器組保持 `running` * 失敗時:容器組變為 `succeeded` * 從不:容器組變為 `succeeded` * 容器組狀態 `running`,有1容器,容器異常退出 * 記錄失敗事件 * 如果重啟策略為: * 始終:重啟容器,容器組保持 `running` * 失敗時:重啟容器,容器組保持 `running` * 從不:容器組變為 `failed` * 容器組狀態 `running`,有2容器,有1容器異常退出 * 記錄失敗事件 * 如果重啟策略為: * 始終:重啟容器,容器組保持 `running` * 失敗時:重啟容器,容器組保持 `running` * 從不:容器組保持 `running` * 當有2容器退出 * 記錄失敗事件 * 如果重啟策略為: * 始終:重啟容器,容器組保持 `running` * 失敗時:重啟容器,容器組保持 `running` * 從不:容器組變為 `failed` * 容器組狀態 `running`,容器內存不足 * 標記容器錯誤中斷 * 記錄內存不足事件 * 如果重啟策略為: * 始終:重啟容器,容器組保持 `running` * 失敗時:重啟容器,容器組保持 `running` * 從不:記錄錯誤事件,容器組變為 `failed` * 容器組狀態 `running`,一塊磁盤死掉 * 殺死所有容器 * 記錄事件 * 容器組變為 `failed` * 如果容器組運行在一個控制器下,容器組將會在其他地方重新創建 * 容器組狀態 `running`,對應的節點段溢出 * 節點控制器等到超時 * 節點控制器標記容器組 `failed` * 如果容器組運行在一個控制器下,容器組將會在其他地方重新創建 ## Replication Controllers ## 服務 ## 卷 ## 標簽 ## 接口權限 ## web界面 ## 命令行操作
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看