使用kubeadm安装k8s集群
实验环境
| 角色 | IP | 主机名 | containerd版本 | 硬件配置 | 系统 | 内核 | 安装组件 |
|---|---|---|---|---|---|---|---|
| master | 10.0.0.10 | k8s-master | 1.7.8 | 2c4g | CentOS7.9 | 6.5.8-1.el7.elrepo.x86_64 | kube-apiserver,kube-controller-manager,kube-scheduler,kubelet,etcd |
| node | 10.0.0.10 | k8s-node | 1.7.8 | 2c4g | CentOS7.9 | 6.5.8-1.el7.elrepo.x86_64 | kubelet,kube-proxy,containerd,etcd |
准备开始
- 每台机器2G或更多的内存
- CPU2核心及以上
- 集群中所有机器网络互通
- 节点之中不可以有重复的
主机名、MAC地址或product_uuid - 开启机器上的某些端口。请参见这里了解更多详细信息。
- 交换分区的配置。kubelet 的默认行为是在节点上检测到交换内存时无法启动。 kubelet 自 v1.22 起已开始支持交换分区。自 v1.28 起,仅针对 cgroup v2 支持交换分区; kubelet 的 NodeSwap 特性门控处于 Beta 阶段,但默认被禁用。
- 如果 kubelet 未被正确配置使用交换分区,则你必须禁用交换分区。 例如,
sudo swapoff -a将暂时禁用交换分区。要使此更改在重启后保持不变,请确保在如/etc/fstab、systemd.swap等配置文件中禁用交换分区,具体取决于你的系统如何配置。
- 如果 kubelet 未被正确配置使用交换分区,则你必须禁用交换分区。 例如,
说明
kubeadm 的安装是通过使用动态链接的二进制文件完成的,安装时假设你的目标系统提供 glibc。 这个假设在许多 Linux 发行版(包括 Debian、Ubuntu、Fedora、CentOS 等)上是合理的, 但对于不包含默认 glibc 的自定义和轻量级发行版(如 Alpine Linux),情况并非总是如此。 预期的情况是,发行版要么包含 glibc, 要么提供了一个兼容层以提供所需的符号。