示例用于新建 Ubuntu 24.04 实验虚拟机,采用 kubeadm、containerd 和 Kubernetes 1.35。三台机器分别承担一个控制平面、两个工作节点。恢复旧检材时保留原版本,网络问题先查仿真后的连接与 IP 排查。
先记住这些对象
| 对象 |
用途 |
查看命令 |
| Node |
承载 Pod 的节点 |
kubectl get nodes -o wide |
| Namespace |
资源的命名空间 |
kubectl get ns |
| Pod |
一个或多个共享网络的容器 |
kubectl get pods -A -o wide |
| Deployment |
管理无状态应用的副本与更新 |
kubectl get deploy -A |
| Service |
给一组后端提供访问入口 |
kubectl get svc -A |
| EndpointSlice |
Service 对应的后端地址与状态 |
kubectl get endpointslices -A |
| ConfigMap / Secret |
配置数据 / 敏感数据对象 |
kubectl get cm,secret -A |
Kubernetes 编排容器。ESXi、QEMU/KVM 提供虚拟机;一台虚拟机也可以作为 Kubernetes 节点。
新建实验集群
网络与主机准备
下列地址只是实验规划,替换为自己的网络;三台节点之间需要互通。
| 项目 |
示例 |
控制平面 cp1 |
192.168.56.10 |
工作节点 worker1、worker2 |
192.168.56.11、192.168.56.12 |
| Pod 网段 |
10.244.0.0/16 |
| Service 网段 |
10.96.0.0/12 |
Pod、Service、节点网段与本机 VPN 路由不要重叠。配置固定地址或 DHCP 保留地址,分别设置唯一主机名;在每台机器的 DNS 或 /etc/hosts 中添加三台主机的解析。控制平面建议至少 2 vCPU、4 GiB 内存,另留足镜像与日志空间;这是实验容量建议,实际资源按工作负载调整。
所有节点先检查:
hostnamectl
ip -br addr
ip route
timedatectl status
swapon --show
本例关闭 swap,执行 sudo swapoff -a 后还要检查 /etc/fstab 和 systemd swap 单元,确保重启后的配置一致。防火墙按实际拓扑放行 API Server 的 TCP 6443、节点 kubelet 的 TCP 10250,以及所选 CNI 的端口;etcd 的 2379–2380 只在需要通信的控制平面成员间开放。完整端口表见 Kubernetes 官方说明。
containerd 与内核设置:所有节点
下面的文件写入操作用于新实验机。已有服务的机器先检查现存配置。