在 Linux(openEuler 24.03 LTS-SP1)上安裝 Kubernetes + KubeSphere 的防火墻放行全攻略

目錄

在 Linux(openEuler 24.03 LTS-SP1)上安裝 Kubernetes + KubeSphere 的防火墻放行全攻略

一、為什么要先搞定防火墻?

二、目標環境

三、需放行的端口和協議列表

四、核心工具說明

1. 修正后的 exec.sh 腳本(支持管道/重定向)

2. 批量放行腳本:open_firewall.sh

五、使用示例

1. 批量放行端口

2. 查看當前防火墻規則

3. 僅開放單一端口(臨時需求)

4. 檢查特定端口監聽狀態

六、總結


在 Linux(openEuler 24.03 LTS-SP1)上安裝 Kubernetes + KubeSphere 的防火墻放行全攻略

關鍵詞:Kubernetes、KubeSphere、openEuler、防火墻、firewalld、Ansible、自動化運維


一、為什么要先搞定防火墻?

Kubernetes 和 KubeSphere 是分布式系統,對網絡連通性要求非常嚴格。如果防火墻未提前放行關鍵端口,集群安裝常常會卡在某個階段,難以定位。常見問題包括:

  • 控制面無法連上 etcd(2379/2380)

  • kubelet 報錯 NotReady(10250)

  • Calico 網絡不可用(BGP 179 或 IPIP 未通)

  • 節點無法通過 NodePort 訪問服務(30000-32767)

因此,部署前統一放行端口是集群成功的關鍵一步。


二、目標環境

說明
操作系統openEuler 24.03 (LTS-SP1)
節點數量多臺主機組成集群
安裝方式基于 Ansible 批量執行
網絡方案Calico(支持 BGP 和 IPIP)

三、需放行的端口和協議列表

服務協議端口范圍說明
sshTCP22基礎連接
etcdTCP2379-2380控制平面內部通信
apiserverTCP6443客戶端/節點訪問 kube-apiserver
calicoTCP9099-9100健康檢查端口
BGPTCP179Calico 網絡
nodePortTCP30000-32767暴露 Service 用
kubeletTCP10250節點健康、日志
控制組件TCP10258controller-manager
CoreDNSTCP/UDP53DNS 服務
metrics-serverTCP8443集群指標
本地倉庫TCP5000/5080離線部署用
rpcbind/NFSTCP111NFS 持久卷
IPIP協議ipip(協議4)Calico 網絡協議

四、核心工具說明

1. 修正后的 exec.sh 腳本(支持管道/重定向)
#!/usr/bin/env bash
# exec.sh —— 在指定主機組批量執行遠程命令(自動識別管道)
# 可用環境變量:
#   INV   — inventory 文件(默認 hosts.ini)
#   GROUP — 目標主機組(默認 all)set -euo pipefailINV="${INV:-hosts.ini}"
GROUP="${GROUP:-all}"[[ $# -eq 0 ]] && { echo "Usage: $0 <remote command>"; exit 1; }REMOTE_CMD="$*"# 自動判斷是否包含 shell 元字符,選用 shell 模塊
if [[ "$REMOTE_CMD" =~ [\|\&\;\<\>\(\)] ]]; thenMODULE=shell
elseMODULE=command
fiecho ">>> ansible -i \"$INV\" \"$GROUP\" -m $MODULE -b -a \"$REMOTE_CMD\""
ansible -i "$INV" "$GROUP" -m "$MODULE" -b -a "$REMOTE_CMD"

? 支持:

  • | grep> file&& 等 shell 操作

  • 默認提權 -b,無需寫 sudo

  • GROUP 分組執行命令


2. 批量放行腳本:open_firewall.sh
#!/usr/bin/env bash
# 批量放行所有 Kubernetes + KubeSphere 所需端口
# 使用 ./exec.sh 執行遠程命令set -euo pipefailDIR="$(cd "$(dirname "$0")" && pwd)"
EXEC="${DIR}/exec.sh"rules=("firewall-cmd --permanent --add-port=22/tcp""firewall-cmd --permanent --add-port=2379-2380/tcp""firewall-cmd --permanent --add-port=6443/tcp""firewall-cmd --permanent --add-port=9099-9100/tcp""firewall-cmd --permanent --add-port=179/tcp""firewall-cmd --permanent --add-port=30000-32767/tcp""firewall-cmd --permanent --add-port=10250/tcp""firewall-cmd --permanent --add-port=10258/tcp""firewall-cmd --permanent --add-port=53/tcp""firewall-cmd --permanent --add-port=53/udp""firewall-cmd --permanent --add-port=8443/tcp""firewall-cmd --permanent --add-port=5000/tcp""firewall-cmd --permanent --add-port=5080/tcp""firewall-cmd --permanent --add-port=111/tcp""firewall-cmd --permanent --add-protocol=ipip"
)echo "=== 開始批量放行 firewalld 規則 ==="
for rule in "${rules[@]}"; doecho "--> 執行: $rule""${EXEC}" "$rule"
doneecho "--> 重載 firewalld"
"${EXEC}" "firewall-cmd --reload"echo "[?] 防火墻規則放行完畢"

五、使用示例

1. 批量放行端口
chmod +x exec.sh open_firewall.sh
./open_firewall.sh
2. 查看當前防火墻規則
# 查看所有節點的防火墻狀態
./exec.sh "firewall-cmd --list-all"# 查看是否啟用了 IPIP 協議
./exec.sh "firewall-cmd --permanent --get-protocols | grep ipip"
3. 僅開放單一端口(臨時需求)
./exec.sh "firewall-cmd --permanent --add-port=25000/tcp && firewall-cmd --reload"
4. 檢查特定端口監聽狀態
./exec.sh "ss -lntp | grep 6443"

六、總結

優點描述
? 一次執行,全節點生效用腳本統一執行所有規則,無需逐個操作
? 支持復雜命令管道、重定向、邏輯與/或都能正常解析
? 清晰日志可追蹤每條規則執行均打印,方便定位問題
? 自動化 & 可擴展可以集成到 CI/CD 或自建部署工具鏈中

腳本 + Ansible 的組合,大大提升了防火墻配置效率和準確性。未來如果組件升級、端口變更,只需維護 rules 數組即可,真正做到“一次寫好,處處運行”。

推薦操作:將 exec.shopen_firewall.sh 納入版本控制,并在每次節點加入或初始化前優先執行,確保防火墻配置零遺漏。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88111.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88111.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88111.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTTP 響應頭信息詳解

HTTP 響應頭信息詳解 引言 HTTP(超文本傳輸協議)是互聯網上應用最為廣泛的網絡協議之一。在HTTP協議中,響應頭信息是服務器向客戶端發送的重要信息之一。響應頭信息包含了關于響應的元數據,如狀態碼、內容類型、緩存策略等。本文將詳細介紹HTTP響應頭信息的概念、類型、作…

去掉長按遙控器power鍵后提示關機、飛行模式的彈窗

首先找到對應長短按power鍵的位置&#xff1a;frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.javaprivate final Runnable mPowerLongPress new Runnable() {Overridepublic void run() {// The context isnt readif (mLongPressOnPowerBe…

Redis-哨兵機制Sentinel

redis的主從復制模式下,一旦主節點出現了故障無法提供服務了,需要人工進行主從切換,同時大量的客戶端需要被通知切換到新的主節點上,對于有了一定規模的應用來說,這種方案的延遲是無法接受的,于是redis2.8提供了Redis-Sentinel(哨兵)來解決這個問題. 目錄 1.啥是哨兵節點: 2.r…

SQL 視圖

SQL 視圖 引言 SQL 視圖是數據庫管理系統中的一種重要概念,它允許用戶以不同的方式查看數據庫中的數據。本文將詳細介紹 SQL 視圖的概念、作用、創建方法以及在實際應用中的注意事項。 一、SQL 視圖的概念 SQL 視圖是數據庫中的一種虛擬表,它并不存儲實際的數據,而是基于…

ESP32-使用VSCODE 各種問題總結匯總

1 問題 1 1.1 具體問題描述-config:idf.customExtraPath 無法正確描述launch.json 中使用了一個變量&#xff1a; ${config:idf.customExtraPaths}但在 VSCode 的設置中&#xff0c;并沒有找到對應的設置項 idf.customExtraPaths&#xff0c;所以無法解析。 1.2 問題解決 1.2.1…

【剪裁Patch】已標注的WSI剪裁Patch的處理流程(以QuPath軟件得到的標注信息為例)

1. 整體處理思路 整體處理流程如圖所示,概括來說就是:根據標注信息將WSI區分為腫瘤區域和正常區域,對這個區域進行采樣裁剪得到具有Patch級別標簽的Patch。 當然,這里的Patch標簽是根據標注信息決定的,如果標注的是癌癥亞型信息,那么也可以將不同亞型的Patch區分出來。 …

Qt 與Halcon聯合開發九:算法類設計與實現講解(附源碼)

一、設計背景 在機器視覺系統中&#xff0c;算法是系統的核心。不同產品、不同項目對圖像處理的要求不盡相同&#xff0c;因此算法需要具備&#xff1a; 靈活拓展&#xff1a;方便添加新算法統一調用&#xff1a;界面或上層邏輯不關心算法細節結構清晰&#xff1a;便于維護與…

npu-driver 23.0.3驅動安裝

宿主機器上安裝npu-driver/ npu-firmware這兩個東西 wget -O Ascend-hdk-910b-npu-driver_23.0.3_linux-aarch64.run https://bj.bcebos.com/v1/aipe-easyedge-public/cann/eb_speed/Ascend-hdk-910b-npu-driver_23.0.3_linux-aarch64.run?authorizationbce-auth-v1%2F50c8bb…

LeetCode題解---<三數之和>

文章目錄題目<三數之和>--Python解法題解題目<三數之和>–Python解法 給你一個整數數組 nums &#xff0c;判斷是否存在三元組 [nums[i], nums[j], nums[k]] 滿足 i ! j、i ! k 且 j ! k &#xff0c;同時還滿足 nums[i] nums[j] nums[k] 0 。請你返回所有和為…

探索Insplorion氫氣傳感器:高靈敏度與快速響應的創新解決方案

在追求更清潔、更安全能源的過程中&#xff0c;氫氣作為一種理想的清潔能源載體&#xff0c;正日益受到全球的重視。然而&#xff0c;氫氣的廣泛應用也帶來了新的挑戰——如何確保其儲存、運輸和使用的安全性&#xff1f;Insplorion通過其獨特的納米等離子體傳感&#xff08;NP…

【QT】事件(鼠標、按鍵、定時器、窗口)

文章目錄1. 事件1.1 事件的介紹1.2 事件的處理2. 按鍵事件3. 鼠標事件4. 定時器5. 窗口事件1. 事件 1.1 事件的介紹 事件是應用程序內部或者外部產生的事情或者動作的統稱。 在 Qt 中使用?個對象來表示?個事件。所有的 Qt 事件均繼承于抽象類 QEvent。事件是由系統或者 Qt …

STM32固件升級設計——串口IAP升級(基于YMODEM協議)

目錄 一、功能描述 1、BootLoader部分&#xff1a; 2、APP部分&#xff1a; 二、BootLoader程序制作 1、分區定義 2、 主函數 3、YMODEM協議的實現 4、程序跳轉 三、APP程序制作 四、工程配置&#xff08;默認KEIL5&#xff09; 五、運行測試 結束語 概述 IAP&…

Cookie(搭配domain)/Session(搭配HttpServletRequest+HttpSession)

各位看官&#xff0c;大家早安午安晚安呀~~~如果您覺得這篇文章對您有幫助的話歡迎您一鍵三連&#xff0c;小編盡全力做到更好 歡迎您分享給更多人哦今天我們來學習&#xff1a;Cookie/Session1.Cookie/Session的簡述我們在講解HTTP協議的時候已經講解過Cookie了HTTP 協議自身是…

240.搜索二維矩陣Ⅱ

純暴力有點太唐了&#xff0c;不過竟然能過&#xff1b;還有行和列的表示我一直搞反了。。。class Solution {public boolean searchMatrix(int[][] matrix, int target) {for(int i 0 ;i<matrix.length;i){for(int j 0 ;j<matrix[0].length;j){if(matrix[i][j]target)…

【計算機組成原理】-CPU章節學習篇—筆記隨筆

計算機組成原理 CPU 章節知識點總結&#xff08;適用于 408 考研&#xff09;? 一、CPU 的功能與基本結構? 1.1 CPU 的功能? CPU&#xff08;中央處理器&#xff09;是計算機的核心部件&#xff0c;主要功能包括&#xff1a;? 指令控制&#xff1a;程序的順序執行&#xff…

公用測控裝置的功能

公用測控裝置在電力系統中廣泛應用于變電站的高壓開關單元、變壓器本體及低壓側等對象。它集測量、控制、保護于一體&#xff0c;確保電網的安全、穩定運行。公用測控裝置采用高性能硬件架構&#xff0c;如32位微控制器和獨立AD采樣技術&#xff0c;結合軟件算法&#xff0c;實…

數據庫|達夢DM數據庫配置實例步驟

哈嘍&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 最近因為一個信創項目&#xff0c;要使用達夢DM數據庫&#xff0c; 因此安裝了達夢DM數據庫來學習使用&#xff0c; 上一節中記錄了安裝Windows版本達夢DM數據庫的過程步驟&#xff0c; 這一節緊接著上一節《數據庫…

三十一、【高級特性篇】接口用例參數化與關聯:實現上下文數據傳遞

三十一、【高級特性篇】接口用例參數化與關聯:實現上下文數據傳遞 前言準備工作第一部分:后端數據模型調整1. 升級 `TestCase` 模型2. 生成并應用數據庫遷移3. 更新 `TestCaseSerializer`第二部分:后端測試執行器強化1. 修改 `execute_api_test_case` 函數2. 修改 Celery 任…

PCA通過“找最大方差方向”實現降維,本質是用更少的變量捕捉原始數據的主要模式

什么事 PCA(主成分分析) PCA(主成分分析)的原理與通俗舉例 PCA 是什么? PCA(Principal Component Analysis)是一種常用的降維算法,核心目標是將高維數據映射到低維空間,同時盡可能保留原始數據的關鍵信息(方差最大的方向)。 核心原理:找“最能代表數據的方向”…

JAVA synchronized關鍵字涉及的Monitor對象中 EntryList和WaitSet工作機制

在Java的synchronized同步機制中&#xff0c;Monitor對象的EntryList和WaitSet是兩個關鍵隊列&#xff0c;它們分別管理不同狀態的線程。下面我將詳細解釋它們的工作原理&#xff0c;并提供代碼示例說明。 EntryList&#xff08;鎖競爭隊列&#xff09; 作用機制 EntryList保…