centos7 k8s
时间: 2025-01-01 19:23:37 浏览: 10
### 在 CentOS 7 上安装和配置 Kubernetes (k8s)
#### 环境准备
为了确保顺利部署 Kubernetes,在开始之前需确认操作系统已更新至最新版本并重启服务器。
#### 所有节点执行的操作
1. **解压安装包**
如果使用的是离线安装方式,则需要提前准备好所需的安装包,并将其放置于合适位置以便后续操作[^3]。
2. **创建 containerd 配置文件**
创建 `/etc/modules-load.d/containerd.conf` 文件,内容如下:
```bash
modprobe overlay
modprobe br_netfilter
```
3. **使容器运行时配置生效**
使用 `sysctl --system` 命令让上述修改立即生效。
4. **创建 CRI 配置文件**
编辑 `/etc/sysctl.d/99-kubernetes-cri.conf` 文件,添加以下参数以优化网络性能:
```bash
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
```
5. **加载 IPVS 内核模块**
对于 Linux Kernel 版本大于等于 4.19 的系统,可以通过脚本来批量加载必要的IPVS模块。对于低于此版本的情况,请手动指定所需的具体模块名称进行加载。
6. **关闭 Swap 并禁用**
修改 `/etc/fstab` 文件移除 swap 分区条目;也可以临时通过命令 `swapoff -a` 来实现相同效果。
7. **停用防火墙与 SELinux**
这是为了减少不必要的安全策略干扰集群内部通信。建议仅在测试环境中这么做,在生产环境下应谨慎处理网络安全规则。
8. **配置主机名解析表 (`/etc/hosts`)**
添加各节点之间的映射关系,方便跨机器访问。
9. **安装 Containerd 和 CNI 插件**
主节点和工作节点都需要完成这一步骤来支持 Pod 网络功能。
10. **安装 kubectl, kubeadm 和 kubelet**
利用官方提供的yum源或者下载rpm包来进行安装。注意保持这三个组件版本一致。
11. **启动 Kubelet 服务**
启动前可先检查其状态是否正常。即使显示未处于 running 状态也属常见现象,因为此时还没有任何Kubernetes组件被激活[^2]。
```bash
systemctl enable kubelet && systemctl start kubelet && systemctl status kubelet
```
#### Master 节点特定步骤
1. 初始化集群
使用 `kubeadm init` 发起初始化请求,按照提示信息继续下一步直到获得加入指令。
2. 设置认证权限
将管理员账户关联到新建立的上下文中去,从而允许对其进行管理和控制。
#### Work 节点特定步骤
利用 master 提供的 token 加入集群即可成为正式成员参与调度任务。
#### 时间同步设置
考虑到分布式系统的特性,各个节点之间的时间一致性非常重要。因此推荐采用 NTP 协议下的 ntpd 或者 chronyd 实现自动化校准机制[^4]。
阅读全文