當前位置:吉日网官网 - 紀念幣收藏 - 超全K8s集群構建指南,建議收藏

超全K8s集群構建指南,建議收藏

1. 什麽是kubernetes

Kubernetes(k8s)是Google開源的容器集群管理系統(谷歌內部:Borg)。在Docker技術的基礎上,為容器化的應用提供部署運行、資源調度、服務發現和動態伸縮等壹系列完整功能,提高了大規模容器集群管理的便捷性。

2. kubernetes核心組件說明

Kubernetes 集群中主要存在兩種類型的節點,分別是 master 節點 ,以及 minion 節點

Minion 節點是實際運行 Docker 容器的節點,負責和節點上運行的 Docker 進行交互,並且提供了代理功能。

Master 節點負責對外提供壹系列管理集群的 API 接口,並且通過和 Minion 節點交互來實現對集群的操作管理。

apiserver :用戶和 kubernetes 集群交互的入口,封裝了核心對象的增刪改查操作,提供了 RESTFul 風格的 API 接口,通過 etcd 來實現持久化並維護對象的壹致性。

scheduler :負責集群資源的調度和管理,例如當有 pod 異常退出需要重新分配機器時,scheduler 通過壹定的調度算法從而找到最合適的節點。

controller-manager :主要是用於保證 replicationController 定義的復制數量和實際運行的 pod 數量壹致,另外還保證了從 service 到 pod 的映射關系總是最新的。

kubelet :運行在 minion 節點,負責和節點上的 Docker 交互,例如啟停容器,監控運行狀態等。

proxy :運行在 minion 節點,負責為 pod 提供代理功能,會定期從 etcd 獲取 service 信息,並根據 service 信息通過修改 iptables 來實現流量轉發(最初的版本是直接通過程序提供轉發功能,效率較低。),將流量轉發到要訪問的 pod 所在的節點上去。

etcd :key-value鍵值存儲數據庫,用來存儲kubernetes的信息的。

flannel :Flannel 是 CoreOS 團隊針對 Kubernetes 設計的壹個覆蓋網絡(Overlay Network)工具,需要另外下載部署。

我們知道當我們啟動 Docker 後會有壹個用於和容器進行交互的 IP 地址,如果不去管理的話可能這個 IP 地址在各個機器上是壹樣的,並且僅限於在本機上進行通信,無法訪問到其他機器上的 Docker 容器。

Flannel 的目的就是為集群中的所有節點重新規劃 IP 地址的使用規則,從而使得不同節點上的容器能夠獲得同屬壹個內網且不重復的 IP 地址,並讓屬於不同節點上的容器能夠直接通過內網 IP 通信。

3. Kubernetes的核心概念

Pod

運行於Node節點上,若幹相關容器的組合。Pod內包含的容器運行在同壹宿主機上,使用相同的網絡命名空間、IP地址和端口,能夠通過localhost進行通。

Pod是Kurbernetes進行創建、調度和管理的最小單位,它提供了比容器更高層次的抽象,使得部署和管理更加靈活。壹個Pod可以包含壹個容器或者多個相關容器。

      

Replication Controller

Replication Controller用來管理Pod的副本,保證集群中存在指定數量的Pod副本。

集群中副本的數量大於指定數量,則會停止指定數量之外的多余容器數量,反之,則會啟動少於指定數量個數的容器,保證數量不變。

Replication Controller是實現彈性伸縮、動態擴容和滾動升級的核心。

Service

Service定義了Pod的邏輯集合和訪問該集合的策略,是真實服務的抽象。

Service提供了壹個統壹的服務訪問入口以及服務代理和發現機制,用戶不需要了解後臺Pod是如何運行。

Label

Kubernetes中的任意API對象都是通過Label進行標識,Label的實質是壹系列的K/V鍵值對。Label是Replication Controller和Service運行的基礎,二者通過Label來進行關聯Node上運行的Pod。

Node

Node是Kubernetes集群架構中運行Pod的服務節點(或agent)。

Node是Kubernetes集群操作的單元,用來承載被分配Pod的運行,是Pod運行的宿主機。

4. 前置條件設置

三臺Centos7系統的虛擬機(1個master+2個node),三臺機器上的防火墻,SELINUX全部關掉。我的實驗壞境可以上網,默認的YUM源就可以用。

5. 部署規劃

192.168.10.1 # master節點(etcd,kubernetes-master)

192.168.10.2 # node1節點(etcd,kubernetes-node,docker,flannel)

192.168.10.3 # node2節點(etcd,kubernetes-node,docker,flannel)

6. 開始安裝

step1:在master上安裝

yum install kubernetes-master etcd flannel -y

step2:在node上安裝

yum install kubernetes-node etcd flannel -y

step3:etcd集群配置

在master節點上編輯etcd配置文件

在node1節點上編輯etcd配置文件

在node2節點上編輯etcd配置文件

到此etcd集群就部署完了,然後每個節點上啟動

systemctl start etcd

step4:驗證

step6:啟動Master上的三個服務

step7:kubernetes node安裝

node2 節點重復上述操作

step8:分別啟動kubernetes node服務

7. 網絡配置

因為kubernetes集群中網絡部分是插件形式安裝的,我們這裏選用flannel

上述安裝步驟已經install 了

為flannel創建分配的網絡

8. 執行kubectl 命令檢查

在master上執行下面,檢查kubernetes的狀態

9. 常用排錯命令如下

  • 上一篇:誰看了明曉溪的泡沫之夏二 給我說說啊 期待ING
  • 下一篇:給父母的生日蛋糕
  • copyright 2024吉日网官网