K8S部署文档

程小虎

K8S部署文档


📌 文档信息

  • 作者: 程小虎
  • 创建时间: 2025-12-04
  • 最近修订: 2025-12-06
  • 版本号: v1.0

介绍

  • 本教程使用脚本安装,可实现一键安装,整个安装过程只需要一条命令即可
  • 支持 单机、集群 安装
  • 脚本会自动通过keepalived配置VIP(虚拟IP),对外访问统一通过VIP。当主节点宕机后,会自动切换到权重较高的从节点

环境准备

在开始安装之前,请确保满足以下环境要求(生产环境建议 >= 16C 32G):

  • 大于等于若干台Linux服务器:每台服务器将作为一个 K8S 节点。
  • 一台Harbor服务器节点
  • 一台NFS服务端节点
  • root用户或配置了sudo免密的用户及密码,且所有节点密码必须相同
  • 需要 节点数+ 1 个可用IP。其中一个作为VIP,对外统一使用这个VIP进行连接

支持的系统

目前脚本实测支持以下Linux发行版

支持 单机/集群,适配 X86_64是否支持
Redhat、CentOS、OracleLinux、RockyLinux、AlmaLinux >= 7 全系
OpenEuler >= 20 全系
Ubuntu >= 20 全系
AnolisOS >= 7 全系
统信 UOS V20 1070a/1070e
银河麒麟 Kylin >= V10 全系
中标麒麟 NeoKylin V7 全系
中科方德 NFSCNS 4.0 全系
磐宁 NingOS V3.0 全系

支持的K8S版本

目前脚本实测支持以下K8S版本,默认安装 KubeSphere版本为 4.1.3

K8S版本容器运行时KubeSphere版本是否支持
1.23docker3.4.1 / 4.1.3
1.24docker / containerd4.1.3
1.25docker / containerd4.1.3
1.26docker / containerd4.1.3
1.27docker / containerd4.1.3
1.28docker / containerd4.1.3
1.29docker / containerd4.1.3
1.30docker / containerd4.1.3
1.31docker / containerd4.1.3
1.32docker / containerd4.1.3
1.33docker / containerd4.1.3

脚本参数说明

所有参数说明

通过 bash K8SShellInstall.sh -h 可以参看脚本所有参数说明

-ou    [必填] 操作用户名,用户配置SSH互信                                                   
-oup   [必填] 操作用户对应的密码,用户配置SSH互信                                                   
-cdd   [必填] 集群数据目录(容器数据目录,仓库数据目录)存放点                                                   
-sp    [可选] SSH端口号,不传默认为22,若修改过则必须填写修改后的实际端口号                                           
-hi    [可选] Harbor服务器IP,集群模式必填                                                   
-hp    [必填] Harbor端口号,建议使用80端口                                                   
-hpw   [必填] Harbor登录密码                                                    
-ni    [可选] nfs服务器主机IP,集群模式必填                                                   
-ndr   [必填] nfs共享目录                                                       
-mi    [可选] master节点IP,集群模式必填,多个以逗号隔开,例如:-mi 192.168.80.11,192.168.80.12,192.168.80.13,或 -mi 192.168.80.{11..13}                                                
-wi    [可选] worker节点IP,集群模式必填,多个以逗号隔开,例如:-wi 192.168.80.14,192.168.80.15,192.168.80.16,或 -wi 192.168.80.{14..16}                                                 
-vip   [可选] 虚拟IP,集群模式(master节点数大于1)必填,用于配置 keepalived

单机模式命令示例

bash K8SShellInstall.sh \
  -ou root `# 操作用户名`\
  -oup 'admin' `# 操作用户对应的密码`\
  -cdd "/dhm" `# 集群数据目录`\
  -hp 8090 `# Harbor端口号`\
  -hpw 'Harbor12345' `# Harbor登录密码`\
  -ndr "/dhm/nfs" `# nfs共享目录`

集群模式命令示例

bash K8SShellInstall.sh \
  -ou root `# 操作用户名`\
  -oup 'admin' `# 操作用户对应的密码`\
  -cdd "/dhm" `# 集群数据目录`\
  -hi "192.168.80.29" `# Harbor服务器IP`\
  -hp 80 `# Harbor端口号`\
  -hpw 'Harbor12345' `# Harbor登录密码`\
  -ni "192.168.80.33" `# nfs服务器主机IP`\
  -ndr "/dhm/nfs" `# nfs共享目录`\
  -mi "192.168.80.30" `# master节点IP`\
  -wi "192.168.80.{31..32}" `# worker节点IP`\
  -vip "192.168.80.88" `# 虚拟IP`

安装包说明

安装包名称为 k8s_xxx_ks_xxx_xxx,例如

  • 第一个 xxx 为 k8s 版本
  • 第二个 xxx 为 KubeSphere 版本
  • 第三个 xxx 为 容器运行时,docker 和 containerd 两种。k8s 1.23 以上版本官方推荐容器运行时为 containerd,占用资源更低,速度更快

根据以上包名规则,选择自己所需的k8s版本安装即可

安装过程

安装过程中需要使用root用户进行安装,若系统当前用户为非root用户(必须是配置了sudo免密),则先执行下面命令切换为root用户

sudo su - root

执行下面命令,创建文件上传目录

mkdir /soft

选择对应的K8S版本将安装包,此处选用的安装包是 [ ],上传至 /soft 路径下,若一开始登录的时非root用户,可以先上传到 /tmp 路径下,然后移动到 /soft

  • k8s_ks_pkg:所有安装所需的安装包
  • K8SShellInstall.sh:K8S一键安装脚本
[root@huge ~]# cd /soft/k8s_1.33.6_ks_4.1.3_containerd/
[root@huge k8s_1.33.6_ks_4.1.3_containerd]# ll
总计 60
drwxr-xr-x. 2 root root   190 12220:53 k8s_ks_pkg
-rw-r--r--. 1 root root 58552 12220:55 K8SShellInstall.sh

查看帮助

执行 bash K8SShellInstall.sh -h 查看脚本使用说明

[root@huge k8s_1.33.6_ks_4.1.3_containerd]# bash K8SShellInstall.sh -h

 █████   ████            █████                                             █████                    
░░███   ███░            ░░███                                             ░░███                     
 ░███  ███    █████ ████ ░███████   ██████  ████████  ████████    ██████  ███████    ██████   █████ 
 ░███████    ░░███ ░███  ░███░░███ ███░░███░░███░░███░░███░░███  ███░░███░░░███░    ███░░███ ███░░  
 ░███░░███    ░███ ░███  ░███ ░███░███████  ░███ ░░░  ░███ ░███ ░███████   ░███    ░███████ ░░█████ 
 ░███ ░░███   ░███ ░███  ░███ ░███░███░░░   ░███      ░███ ░███ ░███░░░    ░███ ███░███░░░   ░░░░███
 █████ ░░████ ░░████████ ████████ ░░██████  █████     ████ █████░░██████   ░░█████ ░░██████  ██████ 
░░░░░   ░░░░   ░░░░░░░░ ░░░░░░░░   ░░░░░░  ░░░░░     ░░░░ ░░░░░  ░░░░░░     ░░░░░   ░░░░░░  ░░░░░░ 


注意:本脚本仅用于新服务器上实施部署使用,若需要在已运行的服务器主机上执行,务必确保数据安全,以免发生数据丢失或者损坏,造成不可挽回的损失!!!                                                                                  

用法: K8SShellInstall.sh [选项] 对象 { 命令 | help }                                                                                  

参数说明:                                                                                       

-ou                  [必填] 操作用户名,用户配置SSH互信                                                   
-oup                 [必填] 操作用户对应的密码,用户配置SSH互信                                                   
-cdd                 [必填] 集群数据目录(容器数据目录,仓库数据目录)存放点                                                   
-sp                  [可选] SSH端口号,不传默认为22,若修改过则必须填写修改后的实际端口号                                                   
-hi                  [可选] Harbor服务器IP,集群模式必填                                                   
-hp                  [必填] Harbor端口号,建议使用80端口                                                   
-hpw                 [必填] Harbor登录密码                                                    
-ni                  [可选] nfs服务器主机IP,集群模式必填                                                   
-ndr                 [必填] nfs共享目录                                                       
-mi                  [可选] master节点IP,集群模式必填,多个以逗号隔开,例如:-mi 192.168.80.11,192.168.80.12,192.168.80.13,或 -mi 192.168.80.{11..13}                                                   
-wi                  [可选] worker节点IP,集群模式必填,多个以逗号隔开,例如:-wi 192.168.80.14,192.168.80.15,192.168.80.16,或 -wi 192.168.80.{14..16}                                                   
-vip                 [可选] 虚拟IP,集群模式(master节点数大于1)必填,用于配置 keepalived                                                   

单机模式命令示例:                                                                                  

bash K8SShellInstall.sh \
  -ou root `# 操作用户名`\
  -oup 'admin' `# 操作用户对应的密码`\
  -cdd "/dhm" `# 集群数据目录`\
  -hp 8090 `# Harbor端口号`\
  -hpw 'Harbor12345' `# Harbor登录密码`\
  -ndr "/dhm/nfs" `# nfs共享目录`
                                                                                    

集群模式命令示例:                                                                                  

bash K8SShellInstall.sh \
  -ou root `# 操作用户名`\
  -oup 'admin' `# 操作用户对应的密码`\
  -cdd "/dhm" `# 集群数据目录`\
  -hi "192.168.80.29" `# Harbor服务器IP`\
  -hp 80 `# Harbor端口号`\
  -hpw 'Harbor12345' `# Harbor登录密码`\
  -ni "192.168.80.33" `# nfs服务器主机IP`\
  -ndr "/dhm/nfs" `# nfs共享目录`\
  -mi "192.168.80.30" `# master节点IP`\
  -wi "192.168.80.{31..32}" `# worker节点IP`\
  -vip "192.168.80.88" `# 虚拟IP`
                                                                                    

卸载命令:                                                                                       

bash K8SShellInstall.sh -e                                                                                  

单机版安装

根据脚本参数说明,执行下面命令,安装K8S单机版。单机版安装,Harbor节点和NFS服务节点都默认为当前主机

执行脚本之后有个模式确认,输入 si 即可开始单机安装

安装成功之后,会打印账号信息

[root@huge k8s_1.33.6_ks_4.1.3_containerd]# bash K8SShellInstall.sh \
  -ou root `# 操作用户名`\
  -oup 'admin' `# 操作用户对应的密码`\
  -cdd "/dhm" `# 集群数据目录`\
  -hp 8090 `# Harbor端口号`\
  -hpw 'Harbor12345' `# Harbor登录密码`\
  -ndr "/dhm/nfs" `# nfs共享目录`

 █████   ████            █████                                             █████                    
░░███   ███░            ░░███                                             ░░███                     
 ░███  ███    █████ ████ ░███████   ██████  ████████  ████████    ██████  ███████    ██████   █████ 
 ░███████    ░░███ ░███  ░███░░███ ███░░███░░███░░███░░███░░███  ███░░███░░░███░    ███░░███ ███░░  
 ░███░░███    ░███ ░███  ░███ ░███░███████  ░███ ░░░  ░███ ░███ ░███████   ░███    ░███████ ░░█████ 
 ░███ ░░███   ░███ ░███  ░███ ░███░███░░░   ░███      ░███ ░███ ░███░░░    ░███ ███░███░░░   ░░░░███
 █████ ░░████ ░░████████ ████████ ░░██████  █████     ████ █████░░██████   ░░█████ ░░██████  ██████ 
░░░░░   ░░░░   ░░░░░░░░ ░░░░░░░░   ░░░░░░  ░░░░░     ░░░░ ░░░░░  ░░░░░░     ░░░░░   ░░░░░░  ░░░░░░ 


注意:本脚本仅用于新服务器上实施部署使用,若需要在已运行的服务器主机上执行,务必确保数据安全,以免发生数据丢失或者损坏,造成不可挽回的损失!!!                                                                                  

请选择安装模式 [单机(si)/集群(cl)] : si


Kubernetes 开始安装,详细安装过程可查看日志: tail -2000f /soft/k8s_1.33.6_ks_4.1.3_containerd/print_shell_install_20251202210145.log                                                                                  

正在进行安装前检查,请稍等......                                                                                  

正在解压k8s安装包.......已完成 (耗时: 41)
正在配置SSH互信......已完成 (耗时: 3)
正在安装 NFS......已完成 (耗时: 7)
正在进行 集群节点初始化配置......已完成 (耗时: 1)
正在安装 Kubernetes......已完成 (耗时: 65)
正在安装 Harbor......已完成 (耗时: 54)
正在配置白名单......已完成 (耗时: 33)
正在安装 nfs-storageclass......已完成 (耗时: 8)
正在安装 KubeSphere......已完成 (耗时: 57)

恭喜!Kubernetes && KubeSphere 一键安装完成(耗时: 269)。请登录以下地址访问:                                                                                  

====================================
    登陆地址:192.168.80.13:30880
    账号:admin
    密码:P@88w0rd
====================================

安装过程中,可以新打开一个窗口,执行上面的命令,查看实时安装日志,此处就不展示详细安装日志了

[root@huge k8s_1.33.6_ks_4.1.3_containerd]# tail -2000f /soft/k8s_1.33.6_ks_4.1.3_containerd/print_shell_install_20251202210145.log

集群安装

1)根据脚本参数说明,执行下面命令,安装K8S集群。执行脚本之后有个模式确认,输入 cl 即可开始集群安装

2)执行前注意一定要根据上面的参数说明,将示例中的参数信息改为,一定不要直接复制粘贴就直接执行

[root@k8s-master01 k8s_1.33.6_ks_4.1.3_containerd]# bash K8SShellInstall.sh \
  -ou root `# 操作用户名`\
  -oup 'admin' `# 操作用户对应的密码`\
  -cdd "/dhm" `# 集群数据目录`\
  -hi "192.168.80.29" `# Harbor服务器IP`\
  -hp 80 `# Harbor端口号`\
  -hpw 'Harbor12345' `# Harbor登录密码`\
  -ni "192.168.80.30" `# nfs服务器主机IP`\
  -ndr "/dhm/nfs" `# nfs共享目录`\
  -mi "192.168.80.{31..33}" `# master节点IP`\
  -wi "192.168.80.{34..36}" `# worker节点IP`\
  -vip "192.168.80.88" `# 虚拟IP`

 █████   ████            █████                                             █████                    
░░███   ███░            ░░███                                             ░░███                     
 ░███  ███    █████ ████ ░███████   ██████  ████████  ████████    ██████  ███████    ██████   █████ 
 ░███████    ░░███ ░███  ░███░░███ ███░░███░░███░░███░░███░░███  ███░░███░░░███░    ███░░███ ███░░  
 ░███░░███    ░███ ░███  ░███ ░███░███████  ░███ ░░░  ░███ ░███ ░███████   ░███    ░███████ ░░█████ 
 ░███ ░░███   ░███ ░███  ░███ ░███░███░░░   ░███      ░███ ░███ ░███░░░    ░███ ███░███░░░   ░░░░███
 █████ ░░████ ░░████████ ████████ ░░██████  █████     ████ █████░░██████   ░░█████ ░░██████  ██████ 
░░░░░   ░░░░   ░░░░░░░░ ░░░░░░░░   ░░░░░░  ░░░░░     ░░░░ ░░░░░  ░░░░░░     ░░░░░   ░░░░░░  ░░░░░░ 


注意:本脚本仅用于新服务器上实施部署使用,若需要在已运行的服务器主机上执行,务必确保数据安全,以免发生数据丢失或者损坏,造成不可挽回的损失!!!                                                                                  

请选择安装模式 [单机(si)/集群(cl)] : cl


Kubernetes 开始安装,详细安装过程可查看日志: tail -2000f /soft/k8s_1.33.6_ks_4.1.3_containerd/print_shell_install_20251202212132.log                                                                               

正在进行安装前检查,请稍等......                                                                                  

校验vip不能已被占用......已完成 (耗时: 3)
正在解压k8s安装包......已完成 (耗时: 21)
正在配置SSH互信......已完成 (耗时: 10)
正在安装 NFS......已完成 (耗时: 19)
正在进行 集群节点初始化配置......已完成 (耗时: 2)
正在安装 Kubernetes......已完成 (耗时: 139)
正在安装 Harbor......已完成 (耗时: 71)
正在配置白名单......已完成 (耗时: 29)
正在安装 nfs-storageclass......已完成 (耗时: 8)
正在安装 KubeSphere......已完成 (耗时: 58)
正在安装 keepalived......已完成 (耗时: 40)

恭喜!Kubernetes && KubeSphere 一键安装完成(耗时: 400)。请登录以下地址访问:                                                                                  

====================================
    登陆地址:192.168.80.88:30880
    账号:admin
    密码:P@88w0rd
====================================     

安装过程中,可以新打开一个窗口,执行上面的命令,查看实时安装日志,此处就不展示详细安装日志了


[root@k8s-master01 k8s_1.33.6_ks_4.1.3_containerd]# tail -2000f /soft/k8s_1.33.6_ks_4.1.3_containerd/print_shell_install_20251202212132.log

登录测试

输入上面的IP和账号密码,登录KubeSphere

登陆地址:192.168.80.88:30880
账号:admin
密码:P@88w0rd
最近更新 1/17/2026, 3:49:23 PM