❶ 如何在linux伺服器上搭建群集
1.2.並行技術
這是一個非常簡單的建造四節點的小集群系統的例子,它是構建在Linux操作系統上,通過MPICH軟體包實現的,希望這個小例子能讓大家對集群系統的構建有一個最基本的了解。
2.使用MPICH構建一個四節點的集群系統
這是一個非常簡單的建造四節點的小集群系統的例子,它是構建在Linux操作系統上,通過MPICH軟體包實現的,希望這個小例子能讓大家對集群系統的構建有一個最基本的了解。
2.1
所需設備
1).4台採用Pentium
II處理器的PC機,每台配
置64M內存,2GB以上的硬碟,和EIDE介面的光碟驅動器。
2).5塊100M快速乙太網卡,如SMC
9332
EtherPower
10/100(其中四塊卡用於連接集群中的結點,另外一塊用於將集群中的其中的一個節點與其它網路連接。)
3).5根足夠連接集群系統中每個節點的,使用5類非屏蔽雙絞線製作的RJ45纜線
4).1個快速乙太網(100BASE-Tx)的集線器或交換機
5).1張Linux安裝盤
2.2
構建說明
對計算機硬體不熟的人,實施以下這些構建步驟會感到吃力。如果是這樣,請找一些有經驗的專業人士尋求幫助。
1.
准備好要使用的採用Pentium
II處理器的PC機。確信所有的PC機都還沒有接上電源,打開PC機的機箱,在准備與網路上的其它設備連接的PC機上安裝上兩塊快速乙太網卡,在其它的
PC機上安裝上一塊快速乙太網卡。當然別忘了要加上附加的內存。確定完成後蓋上機箱,接上電源。
2.
使用4根RJ45線纜將四台PC機連到快速乙太網的集線器或交換機上。使用剩下的1根RJ45線將額外的乙太網卡(用於與其它網路相連的那塊,這樣機構就可以用上集群)連接到機構的區域網上(假定你的機構區域網也是快速乙太網),然後打開電源。
3.
使用LINUX安裝盤在每一台PC機上安裝。請確信在LINUX系統中安裝了C編譯器和C的LIB庫。當你配置TCP/IP時,建議你為四台PC分別指定為192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4。第一台PC為你的伺服器節點(擁有兩塊網卡的那台)。在這個伺服器節點上的那塊與機構區域網相連的網卡,你應該為其指定一個與機構區域網吻合的IP地址。
4.當所有PC都裝好Linux系統後,編輯每台機器的/etc/hosts文件,讓其包含以下幾行:
192.168.1.1
node1
server
192.168.1.2
node2
192.168.1.3
node3
192.168.1.4
node4
編輯每台機器的/etc/hosts.equiv文件,使其包含以下幾行:
node1
node2
node3
node4
$p#
以下的這些配置是為了讓其能使用MPICH』s
p4策略去執行分布式的並行處理應用。
1.
在伺服器節點
,建一個/mirror目錄,並將其配置成為NFS伺服器,並在/etc/exports文件中增加一行:
/mirror
node1(rw)
node2(rw)
node3(rw)
node4(rw)
2.
在其他節點上,也建一個/mirror目錄,關在/etc/fstab文件中增加一行:
server:/mirror
/mirror
nfs
rw,bg,soft
0
0
3.
/mirror這個目錄從伺服器上輸出,裝載在各個客戶端,以便在各個節點間進行軟體任務的分發。
4.
在伺服器節點上,安裝MPICH。MPICH的文檔可在
5.任何一個集群用戶(你必須在每一個節點新建一個相同的用戶),必須在/mirror目錄下建一個屬於它的子目錄,如
/mirror/username,用來存放MPI程序和共享數據文件。這種情況,用戶僅僅需要在伺服器節點上編譯MPI程序,然後將編譯後的程序拷貝到在/mirror目錄下屬於它的的子目錄中,然後從他在/mirror目錄下屬於它的的子目錄下使用p4
MPI策略運行MPI程序。
❷ 基於Linux自己初步搭建Kubernetes(k8s)集群基礎,詳細教程
k8s官方網站:https://kubernetes.io/zh/,可自行查看相關文檔說明
k8s-master:Ubuntu--192.168.152.100
k8s-node01:Ubuntu--192.168.152.101
k8s-node02:Ubuntu--192.168.152.102
全部已安裝docker,未安裝可根據官方文檔安裝:https://docs.docker.com/get-docker/
1,禁止swap分區
K8s的要求,確保禁止掉swap分區,不禁止,初始化會報錯。
在每個宿主機上執行:
2,確保時區和時間正確
時區設置
3,關閉防火牆和selinux
ubuntu 查看防火牆命令,ufw status可查看狀態,ubuntu20.04默認全部關閉,無需設置。
4,主機名和hosts設置(可選)
非必須,但是為了直觀方便管理,建議設置。
在宿主機分別設置主機名:k8s-master,k8s-node01,k8s-node02
hosts設置
1,更改docker默認驅動為systemd
為防止初始化出現一系列的錯誤,請檢查docker和kubectl驅動是否一致,否則kubectl沒法啟動造成報錯。版本不一樣,docker有些為cgroupfs,而kubectl默認驅動為systemd,所以需要更改docker驅動。
可查看自己docker驅動命令:
更改docker驅動,編輯 /etc/docker/daemon.json (沒有就新建一個),添加如下啟動項參數即可:
重啟docker
需要在每台機器上安裝以下的軟體包:
2,更新 apt 包索引並安裝使用 Kubernetes apt 倉庫所需要的包
安裝軟體包以允許apt通過HTTPS使用存儲庫,已安裝軟體的可以忽略
3,下載公開簽名秘鑰、並添加k8s庫
國外 :下載 Google Cloud 公開簽名秘鑰:
國內:可以用阿里源即可:
請注意,在命令中,使用的是Ubuntu 16.04 Xenial 版本, 是可用的最新 Kubernetes 存儲庫。所以而非20.04 的focal。
4,更新 apt 包索引,安裝 kubelet、kubeadm 和 kubectl,並鎖定其版本
鎖定版本,防止出現不兼容情況,例如,1.7.0 版本的 kubelet 可以完全兼容 1.8.0 版本的 API 伺服器,反之則不可以。
只需要在master上操作即可。
1,初始化錯誤解決(沒有報錯的可以跳過這條)
錯誤提示1:
原因:kubectl沒法啟動,journalctl -xe查看啟動錯誤信息。
解決方案:k8s建議systemd驅動,所以更改docker驅動即可,編輯 /etc/docker/daemon.json (沒有就新建一個),添加如下啟動項參數即可:
重啟docker和kubectel
錯誤提示2:
原因:初始化生產的文件,重新初始化,需要刪除即可
錯誤提示3:
解決方法:重置配置
2,初始化完成
無報錯,最後出現以下,表示初始化完成,根據提示還需要操作。
根據用戶是root或者普通用戶操作,由於大多環境不會是root用戶,我也是普通用戶,所以選擇普通用戶操作命令:
如果是root用戶,執行以下命令:
初始化完成,用最後的提示命令 kubeadm join.... 在node機器上加入集群即可。
3,主節點pod網路設置
主節點支持網路插件:https://kubernetes.io/zh/docs/concepts/cluster-administration/addons/
這里安裝Calico網路插件:https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises
Calico官網提供三種安裝方式,1)低於50個節點,2)高於50個節點,3)etcd datastore(官方不建議此方法)。
這里選擇第一種:
安裝完成後, kubectl get node 可查看節點狀態,由NotReady變成Ready則正常,需要等幾分鍾完成。
1,node加入master節點
在所有node節點機器操作,統一已安裝完成 kubelet、kubeadm 和 kubectl,用master初始化完成後最後提示命令加入,切記要用root用戶。
加入成功後,提示如下:
再次查看kubelet服務已正常啟動。
2,需注意的坑
1:加入主節點,需要 root 用戶執行詞條命令,才可以加入master主節點。
node在沒有加入主節點master之前,kubelet服務是沒法啟動的,是正常情況,會報錯如下:
原因是缺失文件,主節點master初始化 `kubeadm init`生成。
node節點是不需要初始化的,所以只需要用root用戶`kubeadm join`加入master即可生成。
2:如果加入提示某些文件已存在,如:
原因是加入過主節點,即使沒成功加入,文件也會創建,所以需要重置節點,重新加入即可,重置命令:
3,在master查看節點
加入完成後,在master節點 kubectl get node 可查看已加入的所有節點:
這里k8s集群創建完成,下一步使用可參考我的下一篇文章:k8s初步熟悉使用介紹,實踐搭建nginx集群