首页主机资讯在Debian上部署K8S需要哪些前期准备

在Debian上部署K8S需要哪些前期准备

时间2025-10-15 16:54:03发布访客分类主机资讯浏览1015
导读:Debian上部署K8s的前期准备 在Debian系统上部署Kubernetes(K8s)集群前,需完成硬件、系统、网络、软件及配置等多方面的准备工作,确保集群能稳定运行。 一、硬件要求 根据节点角色不同,硬件配置需满足以下最低要求(建议配...

Debian上部署K8s的前期准备

在Debian系统上部署Kubernetes(K8s)集群前,需完成硬件、系统、网络、软件及配置等多方面的准备工作,确保集群能稳定运行。

一、硬件要求

根据节点角色不同,硬件配置需满足以下最低要求(建议配置以满足生产环境需求):

  • Master节点:至少2核CPU、4GB内存、20GB可用硬盘空间;
  • Worker节点:至少4核CPU、8GB内存、40GB可用硬盘空间;
  • 网络:所有节点需处于同一网络环境,支持相互通信(可通过公网或内网实现)。

二、系统版本要求

  • 推荐使用Debian稳定版(如Debian 12 “Bookworm”),避免使用测试版(Testing)或不稳定版(Unstable),以确保系统稳定性和Kubernetes兼容性;
  • 系统需为最小化安装(减少不必要的软件包,降低安全风险);
  • 确保系统已更新至最新版本(sudo apt update & & sudo apt upgrade -y)。

三、系统配置准备

1. 关闭Swap分区

Kubernetes 1.8及以上版本要求禁用Swap分区,否则kubelet无法正常启动。执行以下命令:

sudo swapoff -a  # 临时关闭Swap
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab  # 永久注释Swap行(需root权限)

需重启节点使配置生效。

2. 设置主机名与hosts文件
  • 在每个节点上使用hostnamectl设置唯一主机名(如k8s-masterk8s-node1):
    sudo hostnamectl set-hostname <
        节点主机名>
        
    
  • 在所有节点的/etc/hosts文件中添加节点IP与主机名的映射(替换为实际IP):
    echo "<
        节点IP>
         <
        节点主机名>
        " | sudo tee -a /etc/hosts
    
    示例(主节点IP为192.168.1.100,工作节点为192.168.1.101):
    192.168.1.100 k8s-master
    192.168.1.101 k8s-node1
    
    此配置便于节点间通过主机名通信。
3. 配置网络接口

为节点配置静态IP地址(避免DHCP动态分配导致IP变化),编辑/etc/network/interfaces(Debian传统网络配置文件)或使用netplan(较新版本),示例如下:

auto eth0
iface eth0 inet static
    address 192.168.1.100  # 替换为实际IP
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4  # 配置DNS

配置完成后重启网络服务(sudo systemctl restart networking)。

4. 配置防火墙规则

若系统启用了ufw防火墙,需允许Kubernetes关键端口通过(主节点需开放所有端口,工作节点需开放对应端口):

# 主节点(API Server、kubelet等)
sudo ufw allow 6443/tcp    # kube-apiserver端口
sudo ufw allow 2379/tcp    # etcd客户端端口
sudo ufw allow 2380/tcp    # etcd peer端口
sudo ufw allow 10250/tcp   # kubelet端口
sudo ufw allow 10251/tcp   # kube-scheduler端口
sudo ufw allow 10252/tcp   # kube-controller-manager端口
sudo ufw allow 10255/tcp   # kubelet只读端口

# 工作节点(kubelet、Pod网络等)
sudo ufw allow 10250/tcp   # kubelet端口
sudo ufw allow 30000:32767/tcp  # Pod暴露的服务端口范围

sudo ufw reload  # 重新加载防火墙规则

注意:若使用iptables或其他防火墙工具,需相应调整规则。

四、软件依赖准备

1. 安装Containerd容器运行时

Kubernetes 1.24及以上版本不再支持Docker作为默认容器运行时,推荐使用containerd(更轻量、更符合OCI标准)。安装步骤如下:

# 添加containerd官方源
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/containerd.list
sudo apt update

# 安装containerd
sudo apt install -y containerd
sudo systemctl enable --now containerd  # 启动并设置开机自启
2. 配置Containerd内核参数

为确保containerd正常工作,需加载必要的内核模块并设置sysctl参数:

# 创建内核模块加载文件
echo "overlay br_netfilter" | sudo tee /etc/modules-load.d/containerd.conf
sudo modprobe overlay  # 加载overlay模块
sudo modprobe br_netfilter  # 加载bridge-netfilter模块

# 配置sysctl参数(优化网络栈)
echo "net.bridge.bridge-nf-call-iptables = 1" | sudo tee /etc/sysctl.d/99-kubernetes.conf
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.d/99-kubernetes.conf
sudo sysctl --system  # 应用配置
3. 添加Kubernetes APT仓库

Kubernetes官方提供了Debian的APT仓库,需添加后才能安装kubeletkubeadmkubectl

# 添加Kubernetes GPG密钥
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

# 添加Kubernetes源
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# 更新软件包列表
sudo apt update
4. 安装Kubernetes核心工具

安装kubeletkubeadmkubectl(Kubernetes集群部署与管理工具),并锁定版本(避免自动升级导致兼容性问题):

sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl  # 锁定版本

五、其他注意事项

  • 时区一致性:确保所有节点时区相同(如Asia/Shanghai),避免时间同步问题(影响日志、证书验证等):
    sudo timedatectl set-timezone Asia/Shanghai
    
  • 禁用SELinux(若系统启用):SELinux可能会干扰Kubernetes的容器运行,建议禁用(仅适用于Debian,默认未启用):
    sudo setenforce 0  # 临时禁用
    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config  # 永久禁用
    
  • 备份重要数据:部署前备份节点上的重要数据(如/etc/var目录),防止误操作导致数据丢失。

完成以上前期准备后,即可使用kubeadm init初始化Master节点,并通过kubeadm join将Worker节点加入集群。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 在Debian上部署K8S需要哪些前期准备
本文地址: https://pptw.com/jishu/727136.html
Debian与Kubernetes的集成方案揭秘 如何排查Debian上K8S部署的问题

游客 回复需填写必要信息