一、安装前准备

在开始安装前,需完成两项核心准备工作,确保安装过程顺畅:

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等)奠定基础。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐