在Proxmox VE上部署Kubernetes集群
本文记录了在自己的工作站上部署一个测试集群的过程 参考文档
环境
- HP ML350 工作站,安装了Proxmox VE 8.2
- Mac Book Pro 本地工作机
制作一个ubuntu虚机模版
基础准备
采用ubuntu 24.04 server amd64 已经将用户ubuntu加入到sudo组
1 | 先更新一下包 |
安装容器引擎
1 | Add Docker's official GPG key: |
配置
/etc/containerd/config.toml
1 | disabled_plugins = ["cri"] |
禁用Swap
1 |
|
开启网络包转发
1 |
|
配置内核模块
1 |
|
安装k8s
1 |
|
装集群
把上面做好的ubuntu模版clone 3份备用
容器运行时
如果你从软件包(例如,RPM 或者 .deb)中安装 containerd,你可能会发现其中默认禁止了 CRI 集成插件。 你需要启用 CRI 支持才能在 Kubernetes 集群中使用 containerd。 要确保 cri 没有出现在 /etc/containerd/config.toml 文件中 disabled_plugins 列表内。如果你更改了这个文件,也请记得要重启 containerd。 相关文档
-
重置containerd配置
1
sudo containerd config default > /etc/containerd/config.toml
-
配置 systemd cgroup 驱动
1
2
3
4
5编辑 /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
...
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true -
重载沙箱(pause)镜像 我用的kubeadm 是1.30 需要修改默认的沙箱镜像不然会有警告
1
2
3编辑 /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri"]
sandbox_image = "registry.k8s.io/pause:3.9" -
一旦你更新了这个配置文件,可能就同样需要重启 containerd:
1
sudo systemctl restart containerd
-
GFW
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
231 编辑 /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
HTTP_PROXY=<http://172.17.90.17:7890
HTTPS_PROXY=<http://172.17.90.17:7890
NO_PROXY=localhost,127.0.0.1,.cluster.local,10.244.0.0/16,10.96.0.0/12,172.17.0.0/16,172.16.0.0/16,172.18.0.0/16
2 给containerd服务加代理
sudo mkdir -p /etc/systemd/system/containerd.service.d/
sudo cat > /etc/systemd/system/containerd.service.d/proxy.conf <<EOF
[Service]
EnvironmentFile=/etc/environment
EOF
给沙盒添加代理
sudo mkdir -p /etc/systemd/system/sandbox-image.service.d
sudo cat > /etc/systemd/system/sandbox-image.service.d/proxy.conf <<EOF
[Service]
EnvironmentFile=/etc/environment
EOF
3 重启服务
sudo systemctl daemon-reload
sudo systemctl restart containerd.service
用kubeadm初始化控制平面
1 | sudo kubeadm init --control-plane-endpoint=172.17.0.220 --pod-network-cidr=10.244.0.0/16 |
记住上面的token和证书hash后面加入节点用
安装网络组件Calico
1 |
|
加入节点
1 |
|