Ubuntu 20.04.6 Server 安装与K8s集群前置配置指南
一、安装前准备
在开始安装前,需完成两项核心准备工作,确保安装过程顺畅:
1. 镜像下载
使用官方指定的服务器镜像:ubuntu-20.04.6-live-server-amd64.iso
- 官方下载地址:[https://releases.ubuntu.com/20.04/ubuntu-20.04.6-live-server-amd64.iso](https://releases.ubuntu.com/20.04/ubuntu-20.04.6-live-server-amd64.iso)
- 用途:该镜像为“live server”版本,轻量化且适合服务器环境,无图形界面(K8s集群推荐最小化系统)。
2. 虚拟机基础配置(以VMware Workstation为例)
若使用物理机可跳过此步,虚拟机建议配置如下(满足K8s基础资源需求):
| 硬件组件 | 配置参数 | 说明 |
| 内存(Memory) | 4GB | K8s节点建议至少2GB,4GB更稳定 |
| 处理器(CPU) | 2核 | 支持虚拟化技术(需在BIOS开启)|
| 硬盘(Disk) | 200GB(SCSI接口) | 用于LVM分区(灵活管理存储) |
| 网络适配器 | NAT模式(或桥接模式) | 确保服务器可联网(后续更新用)|
| CD/DVD驱动 | 加载上述Ubuntu ISO镜像 | 作为安装介质 |
二、Ubuntu Server 详细安装步骤
启动虚拟机后,按以下步骤完成安装,关键配置需注意标注的“必选操作”:
1. 语言与键盘配置
- 语言选择:通过`↑↓`键选择“English(US)”(服务器环境推荐英文,避免编码问题),按`Enter`确认。
- 键盘配置:
- 默认选择“English(US)”(布局与变体均为该选项),无需修改;
- 若键盘型号特殊,可点击“Identify keyboard”自动检测,完成后点击“Done”进入下一步。
2. 网络连接(核心)
服务器需至少配置一个网卡用于通信,此处以默认网卡`ens33`为例:
- 界面显示`ens33(eth,未连接)`,直接点击该网卡,启用DHCPv4(临时获取动态IP,后续会改静态);
- 可选操作:若需多网卡绑定,点击“Create bond”配置;
- 确认后点击“Done”(**不可选“Continue without network”**,后续需联网更新)。
3. 代理与镜像源配置
- 代理配置:若服务器需通过代理联网,按格式`http://[user[:pass]@]host[:port]/`输入地址;无代理则留空,点击“Done”。
- Ubuntu镜像源:
- 默认源为`http://archive.ubuntu.com/ubuntu`(国外源,下载慢);
- 可临时保留默认(后续配置阶段替换国内源),直接点击“Done”。
4. 存储配置(LVM必选,K8s推荐)
此步骤决定硬盘分区方案,推荐使用LVM(逻辑卷管理),方便后续扩展存储:
1. 选择“Guided storage configuration”(向导式存储配置);
2. 勾选两项核心选项:
- `(X) Use an entire disk`:使用整个200GB硬盘(`/dev/sda`);
- `(X) Set up this disk as an LVM group`:将硬盘初始化为LVM卷组(卷组名默认`ubuntu-vg`);
- (可选)`Encrypt the LVM group with LUKS`:加密LVM卷(需设置密码,实验场景可跳过);
3. 点击“Done”后,系统自动生成分区方案(无需手动调整):
| 挂载点(Mount Point) | 大小 | 文件系统 | 类型 | 用途 |
| `/boot` | 2GB | ext4 | 普通分区 | 存放引导文件(启动必需) |
| `/`(根目录) | ~98GB | ext4 | LVM逻辑卷 | 系统与应用安装目录 |
| LVM卷组(ubuntu-vg) | ~198GB | - | LVM卷组 | 预留扩展空间 |
4. 确认“Storage configuration”后,进入“Confirm destructive action”(确认格式化),点击“Continue”开始安装(此步会清空硬盘数据,需确认磁盘正确)。
5. 用户与SSH配置(远程管理核心)
这是后续远程连接服务器的关键步骤,需准确填写:
1. Profile Setup(用户配置):
- Your name:自定义(如`user1`);
- Your server's name:服务器 hostname(K8s master节点建议设为`cka-master`);
- Pick a username:登录用户名(如`user1`,后续用此用户登录);
- Choose a password / Confirm password:设置密码(需牢记,sudo权限需此密码);
点击“Done”。
2. SSH Setup(必装OpenSSH):
- 必须勾选 `(X) Install OpenSSH server`(K8s集群需远程管理节点,SSH是基础);
- 勾选 `(X) Allow password authentication over SSH`(允许密码登录,新手友好);
- “Import SSH identity”(从Github/Launchpad导入密钥)可留空,点击“Done”。
6. 安装完成与重启报错解决
- 等待系统自动完成包安装、内核配置、swap设置后,显示“Install complete!”,点击“Reboot Now”;
- 常见报错:重启时提示“Failed unmounting /cdrom”(光驱未卸载),解决步骤:
1. 强制关闭虚拟机,进入“虚拟机设置 → 硬件 → CD/DVD(SATA)”;
2. 取消“已连接”和“启动时连接”勾选(或选择“使用物理驱动器”而非ISO镜像);
3. 同时检查“网络适配器”:确保勾选“已连接”和“启动时连接”(避免网卡未启用);
4. 重启虚拟机,按`Enter`继续,直至显示登录界面(`cka-master login:`),安装完成。
三、K8s前置:服务器核心配置
安装完成后,需通过本地终端(或远程SSH)完成以下配置,为K8s部署做准备:
### 1. 登录并切换root用户
Ubuntu默认禁用root直接登录,需先通过普通用户(如`user1`)登录,再切换root:
# 1. 本地登录(或后续远程SSH登录)
cka-master login: user1 # 输入用户名
Password: ********** # 输入安装时设置的密码
# 2. 切换root用户(需输入user1的密码验证sudo权限)
user1@cka-master:~$ sudo -i
[sudo] password for user1: **********
# 3. 设置root密码(后续可直接用root登录)
root@cka-master:~# passwd root
New password: ********** # 自定义root密码
Retype new password: **********
2. 配置静态IP(K8s必需)
K8s集群要求节点IP固定(避免重启后IP变化导致通信失败),通过`netplan`工具配置静态IP:
步骤1:查看当前网卡与动态IP
先确认网卡名(默认`ens33`)和当前动态IP(如`192.168.30.128`):
root@cka-master:~# ip a s
# 找到ens33的inet行,示例:inet 192.168.30.128/24 brd ...
步骤2:编写netplan配置文件
Ubuntu 20.04默认用`netplan`管理网络,配置文件为`/etc/netplan/00-installer-config.yaml`(yaml格式严格,缩进用2个空格,不能用Tab):
root@cka-master:~# cat > /etc/netplan/00-installer-config.yaml <<EOF
# This is the network config written by 'subiquity'
network:
ethernets:
ens33: # 网卡名,需与ip a s显示一致
dhcp4: false # 关闭DHCP
addresses: [192.168.30.130/24] # 静态IP(自定义,需与网关同网段)
gateway4: 192.168.30.2 # 网关(需与虚拟机/物理机网关一致)
nameservers:
addresses: [223.5.5.5, 114.114.114.114] # DNS(国内常用,解析快)
version: 2
EOF
步骤3:生效配置
root@cka-master:~# netplan apply
# 生效后,原动态IP失效,需用新静态IP(192.168.30.130)重新连接
3. 配置SSH远程管理(用MobaXterm)
本地终端操作不便,推荐用`MobaXterm`(Windows)远程连接,步骤如下:
步骤1:启用root用户SSH登录
默认root无法SSH登录,需修改SSH服务配置:
# 1. 修改sshd_config,允许root登录
root@cka-master:~# sed -i 's/^#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
# 2. 重启SSH服务生效
root@cka-master:~# systemctl restart sshd
步骤2:MobaXterm连接服务器
1. 解压并运行`MobaXterm_Portable_v22.2.zip` → 启动`MobaXterm_Personal_22.2.exe`;
2. 点击顶部“Session” → 选择“SSH”;
3. 填写“Remote host”:`192.168.30.130`(静态IP),勾选“Specify username” → 输入`root`;
4. 点击“OK”,输入root密码,即可远程登录(后续操作可全在MobaXterm完成)。
4. 系统更新与工具安装
替换国内软件源(加速下载),并安装必备工具:
步骤1:替换国内源(以南京大学源为例)
# 1. 备份原源列表
root@cka-master:~# cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 2. 替换为南京大学源(国内速度快,也可换阿里/清华源)
root@cka-master:~# sed -i 's/^deb.*archive.ubuntu.com/deb https:\/\/mirror.nju.edu.cn/' /etc/apt/sources.list
# 3. 更新源缓存
root@cka-master:~# apt update
```
- 可选国内源:
阿里源:`mirrors.aliyun.com`
清华源:`mirrors.tuna.tsinghua.edu.cn`
步骤2:安装必备工具
# 1. 安装VMware Tools(优化虚拟机兼容性,如共享文件夹、分辨率)
root@cka-master:~# apt install open-vm-tools -y
# 2. 安装常用工具(文本编辑、下载、命令补全)
root@cka-master:~# apt install vim wget curl bash-completion -y
```
5. 集群域名解析与快照备份
步骤1:配置hosts文件(集群节点通信)
提前添加master和worker节点的IP与hostname映射(避免依赖DNS,K8s集群必需):
root@cka-master:~# cat >> /etc/hosts <<EOF
192.168.30.130 cka-master # master节点
192.168.30.131 cka-worker1 # worker节点1(后续部署)
192.168.30.132 cka-worker2 # worker节点2(后续部署)
EOF
步骤2:拍摄虚拟机快照(关键!)
为避免后续操作出错无法回滚,建议拍摄快照:
1. 关闭服务器(或保持运行,VMware支持热快照);
2. VMware菜单 → “虚拟机” → “快照” → “拍摄快照”;
3. 名称:`OS-done`(标注“系统安装配置完成”),描述:`Ubuntu 20.04.6 + 静态IP + SSH配置`;
4. 点击“拍摄快照”,后续实验出错可通过“恢复快照”回到当前状态。
四、Worker节点配置要点
若需扩展K8s集群(添加`cka-worker1`和`cka-worker2`),重复上述“安装”和“配置”步骤,但需注意以下差异:
| 节点名称 | IP地址 | 服务器hostname | 核心差异点 |
| cka-worker1 | 192.168.30.131 | cka-worker1 | 存储配置、SSH步骤相同 |
| cka-worker2 | 192.168.30.132 | cka-worker2 | hosts文件需包含所有节点映射 |
五、常见问题与注意事项
1. 静态IP不生效:检查`netplan`配置文件的缩进(必须2个空格)、网关是否正确(可通过`route -n`查看网关);
2. SSH连接失败:确认服务器网卡“已连接”、静态IP ping通(`ping 192.168.30.130`)、SSH服务已启动(`systemctl status sshd`);
3. 生产环境安全建议:实验场景允许root密码登录,生产环境需禁用`PermitRootLogin yes`,改用SSH密钥认证(更安全);
4. K8s后续准备:完成上述配置后,还需关闭Swap(`swapoff -a`并修改`/etc/fstab`)、配置内核参数(如桥接网络),后续可单独梳理K8s部署步骤。
总结
本文完成了 Ubuntu 20.04.6 Server 从安装到K8s前置配置的全流程,核心产出是一个“可远程管理、IP固定、环境优化”的master节点。后续只需按相同逻辑扩展worker节点,即可搭建基础K8s集群,为云原生实验(如部署Pod、Service、Ingress等)奠定基础。
更多推荐


所有评论(0)