<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### 1、Kubernetes優勢 ● 自動裝箱,水平擴展,自我修復 ● 服務發現和負載均衡 ● 自動發布(默認滾動發布模式)和回滾 ● 集中化配置管理和密鑰管理 ● 存儲編排 ● 任務批處理運行 ### 2、Kubernetes快速入門概念 **四組基本概念 ** ? Pod/Pod控制器 ? Name/Namespace ? Label/Label選擇器 ? Service/Ingress ? **Pod ** ``` ● Pod是K8S里能夠被運行的最小的邏輯單元(原子單元),不是容器 ● 1個Pod里面可以運行多個容器,容器與容器之間它們共享UTS+NET+IPC名稱空間 , 只隔離PID+MOUNT+USER 。容器有6個隔離空間(UTS+NET+IPC+PID+MOUNT+USER) ● 可以把Pod理解成豌豆莢,而同一Pod內的每個容器理解成是一顆顆豌豆 ● 一個Pod里運行多個容器,又叫:邊車( SideCar)模式 ``` ?** Pod控制器 ** ``` ● Pod控制器是Pod啟動的一種模板,用來保證在K8S里啟動的Pod 應始終按照人們的預期運行(副本數、生命周期、健康狀態檢查... ) Pod可以在k8s里面單獨啟動,不需要任何Pod控制器管控,啟動Pod ● K8S內提供了眾多的Pod控制器,常用的有以下幾種: ● Deployment 部署 ● DaemonSet 要求我們每個運算單位都啟動一份 ● ReplicaSet ReplicaSet 不直接對外提供服務,Deployment 管理ReplicaSet,ReplicaSet管理Pod,進而提供服務 ● StatefulSet 管理有狀態應用的 Pod控制器 ● Job 管理任務 ● Cronjob 管理定時任務 ``` ? **Name** ``` ● 由于K8S內部,使用“資源”來定義每一種邏輯概念(功能),故每種“資源”, 都應該有自己的"名稱”,每一種功能我們都叫做資源,每一種功能的實現都叫做資源的實例化 ● 資源一共有5個維度的信息,每一種都有,“資源”有api版本( apiVersion )、類別( kind )、元數據( metadata )、定義清單( spec)、狀態( status )(集群自己生成的,不需要人工定義)等配置信息 ● "名稱”通常定義在‘ '資源”的“元數據”信息里, ``` ?** Namespace ** ``` ● 隨著項目增多、人員增加、集群規模的擴大,需要一種能夠隔離K8S內部各種“資源”的方法,這就是名稱空間,通過名稱空間各種資源進行分組 ● 名稱空間可以理解為K8S內部的虛擬集群組 ● 不同名稱空間內的“資源”, 名稱可以相同,相同名稱空間內的同種"資源”,"名稱” 不能相同,重名不重名 ● 合理的使用K8S的名稱空間,使得集群管理員能夠更好的對交付到K8S里的服務進行分類管理和瀏覽 ● K8S里默認存在的名稱空間有: default、kube-system、 kube-public ● 查詢K8S里特定“資源”要帶上相應的名稱空間 ``` ?** Label ** ``` ● 標簽是k8s特色的管理方式,便于分類管理資源對象。 ● 一個標簽可以對應多個資源,一個資源也可以有多個標簽,它們是多對多的關系。 ● 一個資源擁有多個標簽,可以實現不同維度的管理。 ● 標簽的組成: key=value 鍵值對,有效的標簽值必須不超過63個字符,并且必須為空或以字母數字字符([a-z0-9A-Z]),帶破折號(-)、下劃線(Uu)、點(.),和字母數字 ● 與標簽類似的,還有一-種“注解”( annotations ) 標 , 注解沒有要求 ``` ? **Label選擇器 ** ``` ● 給資源打上標簽后,可以使用標簽選擇器過濾指定的標簽 ● 標簽選擇器目前有兩個:基于等值關系(等于、不等于)和基于集合關系(屬于、不屬于、存在) ● 許多資源支持內嵌標簽選擇器字段 ● matchl abels ● matchExpressions ``` ? **Service 集群網絡 ** ``` ● 在K8S的世界里,雖然每個Pod都會被分配一個單獨的P地址 ,但這個IP地址會隨著Pod的銷毀而消失。 Pod有生命周期的,不定時的啟動,擴容,銷毀,遷移。流量如何調度,Service 起到,無論你這組 pod怎么掉度、銷毀等等,對外提供服務的接口統一,Service會有一個相對獨立的接口, ● Service (服務)就是用來解決這個問題的核心概念 ● 一個Service可以看作一 -組提供相同服務的Pod的對外訪問接口 ● Service作用于哪些Pod是通過標簽選擇器來定義 的 ``` ? **Ingress ** ``` ● Ingress是K8S集群里1工作在OSI網絡參考模型下,第7層的應用,對外暴露的接口 ● Service只能進行4流量調度, 表現形式是ip+ port ● Ingress則可以調度不同業務域、不同URL訪問路徑的業務流量 ``` ### 3、核心組件 ● 配置存儲中心→etcd服務 狀態、請求、集群資源情況等,也可以理解位Mysql ● 主控( master )節點 ● **kube-apiserver服務 ** 集群的大腦,所有組件通過kube-apiserver 通信樞紐功能 ``` ● aplserver: ● 提供了集群管理的REST API接口( 包括鑒權、數據校驗及集群狀態變更) ● 負責其他模塊之間的數據交互,承擔通信樞紐功能 ● 是資源配額控制的入口 ● 提供完備的集群安全機制 ``` ● **kube-controller-manager服務 ** ``` ● controller-manager : 管理控制器的控制器 需要高可用 ● 由一系列控制器組成,通過piserver監控整個集群的狀態,并確保集群處于預期的工作狀態 ● Node Controller 節點控制器 ● Deployment Controller Pod控制器 ● Service Controller server控制器 ● Volume Controller 卷控制器 ● Endpoint Controller 接入點控制器 ● Garbage Controller 垃圾回收控制器 ● Namespace Controller 名稱空間資源配額 ● Job Controller 任務資源配額 ● Resource quta Controller 資源配額控制器 ``` ● ** kube-scheduler服務 ** ``` ● scheduler:調度器 ● 主要功能是接收調度pod到適合的運算節點上 有一個請求通過apiserver,apiserver告訴controller-manager 需要啟動那些Pod, controller-manager 找到scheduler,他會按照要求模板到那個節點創建一系列Pod ● 預算策略( predict ) 最適合運行Pod點,拉取 ● 優選策略( priorities ) ``` #### 運算( node )節點 ● **kube-kubelet服務 ** ``` ● kubelet ● 簡單地說, kubelet的主要功能就是定時從某個地方獲取節點上pod的期望狀態(運行什么容器、運行的副本數量網絡或者存儲如何配置等等) , 并調用對應的容器平臺接口達到這個狀態 ● 定時匯報當前節點的狀態給apiserver,以供調度的時候使用 ● 鏡像和容器的清理工作,保證節點上鏡像不會占滿磁盤空間,退出的容器不會占用太多資源 ``` ● **Kube-proxy服務 ** ``` ● kube- proxy ● 是K8S在每個節點上運行網絡代理, service資源的載體 ● 建立了pod網絡和集群網絡的關系( clusterip >podip ) 把clusterip 跟podip關聯起來 ● 常用三種流量調度模式 ● Userspace (廢棄) 早期1.2 版本,Userspace調度節點網絡、Pod網絡、集群網絡要用到大量的內核態跟用戶態之間的轉換,消耗資源大 ● Iptables (瀕臨廢棄) 99%目前主流方法,nat表,nat映射,太多沒辦法維護 ● Ipvs(推薦) lvs開源,加入Linux 內核, ● 負責建立和刪除包括更新調度規則、通知apiserver自 己的更新,或者從apiserver哪里獲取其他kube-proxy的調度規則變化來更新自己的 一個集群中有若干節點,都起Kube-proxy,如何同步,通過apiserver找etcd ``` #### ● CLI客戶端 命令行工具 ``` ● kubectl ● 核心附件 ● CNI網絡插件> flannel/calico ● 服務發現用插件> coredns ● 服務暴露用插件> traefik ● GUI管理插件> Dashboard ``` #### 4、核心組件圖,三條網絡,節點網洛(宿主機網洛) ![](https://img.kancloud.cn/74/de/74dec8da2f77208075103b5908f096a5_1414x629.png) 5、部署架構圖 ![](https://img.kancloud.cn/e3/a5/e3a5c6a772e89b091ae2210178485bbd_1211x761.png)
                  <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>

                              哎呀哎呀视频在线观看