K3s 高可用集群实操笔记:3 Master + 外部 PostgreSQL-15 部署全流程

news/2025/11/12 12:06:29/文章来源:https://www.cnblogs.com/28Blog/p/19213352

原文地址

本文转载自28.7Blog

单节点部署

单节点k3s 以一主节点两计算节点部署
K3s离线安装包

K3s 高可用集群实操笔记:3 Master + 外部 PostgreSQL-15 部署全流程

本文档为“3个Master节点+外部PostgreSQL-15”架构的K3s高可用集群部署指南,包含核心优势解析、环境配置、实操步骤,优化后更突出逻辑层级与关键信息,便于快速查阅与执行。

一、核心优势解析

1. 外部PostgreSQL-15优势

采用外部PostgreSQL-15作为K3s后端数据存储,替代默认的内置etcd或SQLite,核心价值体现在以下三点:

  • 数据解耦与独立存活:控制平面(Master节点)与数据存储分离,即使所有Master节点临时故障,数据库数据不会丢失,集群恢复仅需重新连接数据库。
  • 更高数据可靠性:支持主从复制、定时备份、故障自动切换,规避内置存储(如单节点etcd)的“数据单点风险”,满足生产环境对数据一致性的要求。
  • 运维扩展更灵活:数据库可单独进行性能优化、扩容或升级,无需重启K3s集群;同时兼容专业数据库运维工具,便于监控、备份与故障排查。

2. 3个Master节点集群优势

3个Master节点是K3s高可用控制平面的标准配置,核心围绕“冗余”与“高可用”设计:

  • 避免控制平面单点故障:满足分布式系统“奇数选主”机制(K3s HA基于Raft协议),任意1个Master节点故障,剩余2个节点仍能正常提供API服务、调度Pod,集群不中断。
  • 分担控制平面负载:API Server、Controller Manager等组件自动负载均衡,3个节点分摊请求压力,支持更多Worker节点与Pod的管理(优于单Master/双Master架构)。
  • 故障恢复更高效:故障Master节点修复后,可通过PostgreSQL统一存储自动同步数据,快速回归集群,无需手动重建控制平面。

二、实践环境信息

先决条件

两个节点不能具有相同的主机名。

如果多个节点将具有相同的主机名,或者如果主机名可能被自动配置系统重用,请使用--with-node-id选项为每个节点附加随机后缀,或设计一个唯一名称,使用--node-name或$K3S_NODE_NAME传递给您添加到集群的每个节点。

或是按照本教程对服务器进行标志

IP地址 操作系统 节点角色
192.168.66.142 Ubuntu 22.04 K3s-Master-1
192.168.66.151 Ubuntu 22.04 K3s-Master-2
192.168.66.152 Ubuntu 22.04 K3s-Master-3
192.168.66.150 Ubuntu 22.04 PostgreSQL服务器

三、前置准备(所有服务器执行)

需完成服务器重命名与Hosts解析配置,确保节点间通信正常。

1. 服务器重命名

分别在对应节点执行以下命令,设置节点 hostname:

  • K3s-Master-1:hostnamectl set-hostname K3s-Master-1
  • K3s-Master-2:hostnamectl set-hostname K3s-Master-2
  • K3s-Master-3:hostnamectl set-hostname K3s-Master-3
  • PostgreSQL服务器:hostnamectl set-hostname pgsql-server

2. 添加Hosts解析

所有节点执行 vim /etc/hosts,添加以下内容(实现节点间通过 hostname 通信):

192.168.66.142  K3s-Master-1
192.168.66.151  K3s-Master-2
192.168.66.152  K3s-Master-3
192.168.66.150  pgsql-server

四、PostgreSQL数据库部署(仅在pgsql-server节点执行)

采用Docker Compose部署PostgreSQL-15,需先确保节点已安装Docker与Docker Compose。

1. 编写Docker Compose文件

创建 docker-compose.yml 文件,内容如下:

version: '3'
services:postgres:image: postgres:15container_name: postgres_15  # 容器名称,便于管理volumes:- /docker/data/postgresql15/data:/var/lib/postgresql/data  # 数据持久化目录environment:POSTGRES_USER: root        # 数据库初始用户名POSTGRES_DB: postgres      # 初始数据库名称POSTGRES_PASSWORD: 202019.Lv  # 初始密码(建议生产环境修改为复杂密码)ports:- "5433:5432"  # 端口映射:主机5433端口 -> 容器5432端口restart: always  # 容器异常退出时自动重启

使用docker-compose up -d启动命令,如果你还没配置远程连接那么还需

vim /docker/data/postgresql15/data/pg_hba.conf

listen_addresses = '' # 默认为'localhost',修改为''

vim /docker/data/postgresql15/data/pg_hba.conf

格式:host 数据库名 用户名 来源IP 认证方式

host all all 0.0.0.0/0 md5

2. 启动PostgreSQL容器

执行以下命令启动容器,并检查运行状态:

# 启动容器(后台运行)
docker-compose up -d# 检查容器运行状态
docker ps | grep postgres_15

3. 创建K3s专用数据库与用户

进入PostgreSQL容器,执行SQL语句创建K3s所需的数据库(k3sdb)与用户(k3s):

# 进入PostgreSQL容器
docker exec -it postgres_15 psql -U root -d postgres# 执行SQL语句(复制以下内容到容器内执行)
CREATE USER k3s WITH PASSWORD '202019';CREATE DATABASE k3sdb OWNER k3s ENCODING 'UTF8' LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8' TEMPLATE template0; GRANT ALL PRIVILEGES ON DATABASE k3sdb TO k3s;# 退出容器
\q

PostgreSQL数据库创建语句执行示例

五、初始化K3s集群(Master节点执行)

需按顺序初始化Master-1(作为集群初始节点),再加入Master-2与Master-3,所有节点均需连接外部PostgreSQL数据库。

1. 初始化Master-1节点

提供在线安装与离线安装两种方式,选择一种执行即可。

方式1:在线安装(需联网,自动下载K3s二进制文件)

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server \--datastore-endpoint "postgres://root:202019.Lv@192.168.66.163:5433/k3sdb?sslmode=disable"

Master-1在线安装执行示例

方式2:离线安装(适用于无外网环境,需提前下载K3s二进制文件)

  1. 将提前下载的k3s二进制文件上传至Master-1节点,执行以下命令:
    # 复制K3s文件到系统目录并赋予执行权限
    cp ./k3s /usr/local/bin/k3s
    chmod +x /usr/local/bin/k3s# 跳过自动下载(因已手动提供K3s文件)
    export INSTALL_K3S_SKIP_DOWNLOAD=true# 初始化Master-1(参数与在线安装一致)
    curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn bash -s - server \--datastore-endpoint "postgres://root:202019.Lv@192.168.66.150:5433/k3sdb?sslmode=disable" \--token "202019" \--disable traefik \--write-kubeconfig-mode 644
    

Master-1离线安装文件准备示例
Master-1离线安装执行示例

配置Master-1环境变量(便于使用kubectl命令)

# 创建kubectl配置目录
mkdir -p $HOME/.kube# 复制K3s默认配置文件到用户目录
sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config# 赋予当前用户配置文件权限
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Master-1环境变量配置示例

2. 加入Master-2节点(指向Master-1初始化)

方式1:在线安装

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | bash -s - server \--datastore-endpoint "postgres://root:202019.Lv@192.168.66.150:5433/k3sdb?sslmode=disable" \--token "202019" \--server "https://192.168.66.142:6443"  # 指向Master-1的API地址

方式2:离线安装(需提前上传k3s二进制文件与对应的hash文件,hash文件用于校验完整性)

# 复制K3s文件并赋予权限
cp ./k3s /usr/local/bin/k3s
chmod +x /usr/local/bin/k3s# 跳过自动下载
export INSTALL_K3S_SKIP_DOWNLOAD=true# 加入集群(参数与在线安装一致)
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | bash -s - server \--datastore-endpoint "postgres://root:202019.Lv@192.168.66.150:5433/k3sdb?sslmode=disable" \--token "202019" \--server "https://192.168.66.142:6443"

Master-2离线安装文件准备示例
Master-2离线安装执行示例

配置Master-2环境变量

mkdir -p $HOME/.kube
sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3. 加入Master-3节点(指向Master-1初始化)

方式1:在线安装

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | sh -s - server \--datastore-endpoint "postgres://root:202019.Lv@192.168.66.150:5433/k3sdb?sslmode=disable" \--token "202019" \--server "https://192.168.66.142:6443" \--disable traefik \--write-kubeconfig-mode 644

方式2:离线安装

# 复制K3s文件并赋予权限
cp ./k3s /usr/local/bin/k3s
chmod +x /usr/local/bin/k3s# 跳过自动下载
export INSTALL_K3S_SKIP_DOWNLOAD=true# 加入集群
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | bash -s - server \--datastore-endpoint "postgres://root:202019.Lv@192.168.66.150:5433/k3sdb?sslmode=disable" \--token "202019" \--server "https://192.168.66.142:6443"

Master-3离线安装执行示例

配置Master-3环境变量

mkdir -p $HOME/.kube
sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

六、集群状态验证(任意Master节点执行)

执行以下命令查看所有Master节点状态,若均为Ready则表示集群初始化成功:

k3s kubectl get nodes

K3s集群节点状态验证示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/963250.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年口碑好的水喷砂机优质厂家推荐榜单

2025年口碑好的水喷砂机优质厂家推荐榜单行业背景与市场趋势随着工业制造领域对表面处理技术要求的不断提高,水喷砂机作为环保型表面处理设备,近年来市场需求呈现稳定增长态势。据《2024-2025年中国表面处理设备行业…

2025年优秀的燃气导热油锅炉实力厂家TOP推荐榜

2025年优秀的燃气导热油锅炉实力厂家TOP推荐榜行业背景与市场趋势随着我国"双碳"目标的持续推进和能源结构调整的深入,燃气导热油锅炉作为高效、清洁的热能设备,在化工、纺织、食品加工等工业领域的需求持…

2025年口碑好的液冷储能柜厂家选购指南与推荐

2025年口碑好的液冷储能柜厂家选购指南与推荐行业背景与市场趋势随着全球能源结构转型加速推进,液冷储能技术作为电化学储能领域的重要分支,正迎来前所未有的发展机遇。据中国能源研究会储能专委会最新数据显示,202…

宝鸡监控拼接屏厂家推荐,产能与环保数据透视

在当前工业显示与安防监控系统集成领域,拼接屏作为核心可视化终端,其选购决策直接影响项目稳定性、运维成本及长期使用体验。尤其在如宝鸡这类兼具工业基础与智慧城市推进需求的城市,用户对产品可靠性、参数真实性及…

2025年评价高的ABS防撞碳晶板厂家推荐及选购指南

2025年评价高的ABS防撞碳晶板厂家推荐及选购指南行业背景与市场趋势随着建筑装饰行业对环保、安全、耐用材料需求的不断提升,ABS防撞碳晶板作为一种新型装饰材料,近年来在市场上获得了广泛关注。根据中国建筑材料联合…

从暴力到DP优化:回文子串计数的解题思路演进与代码解析

从暴力到DP优化:回文子串计数的解题思路演进与代码解析在字符串算法领域,“回文子串计数”是一道经典面试题,它不仅考察对回文性质的理解,更能体现从暴力枚举到动态规划(DP)的优化思维。本文将结合解题过程中的思…

2025年专业的干式冷却塔厂家推荐及选购参考榜

2025年专业的干式冷却塔厂家推荐及选购参考榜行业背景与市场趋势干式冷却塔作为工业冷却系统中的关键设备,近年来随着节能减排政策的深入推进和工业能效要求的不断提高,市场需求持续增长。据中国制冷空调工业协会统计…

TVS选型指南

TVS选型指南:本文详细介绍了瞬态电压抑制器(TVS)的工作原理和选型方法。首先分析了TVS的5个关键参数:截止电压(Vrwm)、漏电流(IR)、击穿电压(VBR)、峰值脉冲电流(IPP)和钳位电压(VC)。然后提出5步选型流程:1)选择…

2025年比较好的钢结构品牌厂家排行榜

2025年比较好的钢结构品牌厂家排行榜行业背景与市场趋势钢结构行业作为现代建筑领域的重要组成部分,近年来随着我国工业化进程加速和建筑产业升级,呈现出蓬勃发展的态势。据中国钢结构协会最新统计数据显示,2024年我…

Xshell关键字自定义配色方案

方案一:创建hls配色文件 将下列代码复制保存为 *.hls 文件格式,之后拷贝文件到Xshell的用户配置文件夹下 C:\Users\zhangka\AppData\Roaming\NetSarang\7\Xshell\HighlightSet Files,我这里是这个路径下,大家可以看…

2025年口碑好的双塑单硅离型纸厂家实力及用户口碑排行榜

2025年口碑好的双塑单硅离型纸厂家实力及用户口碑排行榜行业背景与市场趋势随着电子制造、医疗耗材和新能源等行业的快速发展,双塑单硅离型纸作为关键功能性材料,市场需求持续增长。据中国胶粘制品工业协会2024年度报…

C语言-文件操控

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年知名的称重智能柜品牌厂家排行榜

2025年知名的称重智能柜品牌厂家排行榜行业背景与市场趋势随着物联网技术的快速发展和智能仓储需求的持续增长,称重智能柜行业迎来了前所未有的发展机遇。据《2024-2029年中国智能仓储设备行业市场调研与发展前景分析…

2025年尖峰凝汽器换管优质厂家权威推荐榜单:汽轮机凝汽器换管/大型凝汽器换管/旁路凝汽器换管源头厂家精选

在电力行业节能降耗需求日益增长的背景下,一次专业的尖峰凝汽器换管作业已成为提升发电效率、保障设备安全运行的关键环节。 据行业数据显示,2024年全球凝汽器管市场规模达到亿元级别,预计到2030年将继续保持稳定增…

了解新余大屏拼接系统趋势,查批发价享25%折扣

在当前数字化转型加速推进的背景下,大屏拼接系统作为智慧城市、应急指挥、交通调度及企业可视化管理的核心基础设施,正迎来新一轮技术升级与市场扩容。尤其在新余这样的中部工业城市,随着政务信息化、工业园区智能化…

2025年评价高的家装地暖管优质厂家推荐榜单

2025年评价高的家装地暖管优质厂家推荐榜单行业背景与市场趋势随着我国居民生活水平不断提高和消费升级趋势持续深化,地暖系统作为舒适家居的重要组成部分,近年来市场规模呈现稳定增长态势。据《2024年中国供暖行业白…

2025年诚信的全自动水渠成型机厂家推荐及选购指南

2025年诚信的全自动水渠成型机厂家推荐及选购指南行业背景与市场趋势随着全球水资源短缺问题日益严峻,高效节水灌溉技术成为农业可持续发展的关键。全自动水渠成型机作为节水灌溉基础设施建设的核心设备,其市场需求呈…

2025年靠谱的海上光伏箱式变电站厂家推荐及采购指南

2025年靠谱的海上光伏箱式变电站厂家推荐及采购指南海上光伏行业背景与市场趋势随着全球能源结构转型加速推进,海上光伏作为新能源领域的重要分支,正迎来前所未有的发展机遇。据国际能源署(IEA)最新报告显示,2024…

CF2090

CF2090D Simple PermutationBertrand–Chebyshev theorem:对 \(\forall n > 1\),\((n, 2n]\) 中至少存在一个素数。 这是定量刻画“在任意大区间内必有素数”的一个初等定理。考虑以此构造,题目的这个 \(\lfloor…