當前位置:首頁 » 雲伺服器 » 搭建k8s得有幾台伺服器

搭建k8s得有幾台伺服器

發布時間: 2022-12-14 20:59:27

㈠ 騰訊輕量雲伺服器搭建k8s環境

4C4G機器設置為k8smaster節點,另外一台機器設置為k8snode節點

分別進入兩台的 /ect/hosts 目錄,設置r如下host

由於k8s內部節點之間的通訊使用的是內網ip,我們需要把內網ip的重定向到公網ip上

由於兩台機器是處於公網環境,且k8s節點之間需要通訊,所以需要開放一些埠,埠配置可以直接進到騰訊雲控制台進行配置

以下是官網要求的master節點的埠配置

可以進入騰訊雲伺服器的防火牆配置開放相應埠,埠可以限定來源,只允許node節點(192.168.2.2)訪問

以下是官網要求的node節點的埠配置

同理,也設置node節點的埠

master節點需要安裝

node節點需要安裝

添加安裝源(所有節點)

安裝命令

設置開機啟動

修改docker配置(所有節點)

組件安裝完成後就可以啟動了,首先啟動master節點,然後讓node節點加入master幾點即可。

在master節點使用kubeadm初始化集群

這里需要保存token,token是用於node節點加入maste節點的憑證

node節點加入master節點

安裝網路插件,否則node是NotReady狀態(主節點跑)

kubectl get nodes

㈡ 基於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集群

熱點內容
寬頻撥號連接中賬戶密碼是什麼 發布:2025-03-17 23:49:06 瀏覽:358
android貪吃蛇 發布:2025-03-17 23:45:57 瀏覽:68
zbar源碼 發布:2025-03-17 23:42:18 瀏覽:770
水星wifi改密碼怎麼改 發布:2025-03-17 23:41:39 瀏覽:790
編程班表 發布:2025-03-17 23:41:34 瀏覽:881
網上鄰居訪問許可權 發布:2025-03-17 23:41:31 瀏覽:390
國行安卓11如何使用谷歌 發布:2025-03-17 23:40:52 瀏覽:146
ftp數據傳輸和控制埠 發布:2025-03-17 23:40:52 瀏覽:875
首演算法 發布:2025-03-17 23:40:02 瀏覽:451
php應用程序池 發布:2025-03-17 23:36:13 瀏覽:410