debian

Debian部署K8S需要哪些准备

小樊
42
2025-06-05 18:04:14
栏目: 智能运维

在Debian上部署Kubernetes(k8s)集群需要满足一些前提条件和进行一系列准备工作。以下是一个详细的准备清单:

前提条件

  1. 硬件要求

    • 三台兼容的Linux主机。
    • 每台机器至少2GB RAM(如果少于这个数字将会影响应用的运行内存)。
    • 2个或更多的CPU核心。
    • 集群中的所有机器的网络能够相互连接(公网和内网都可以)。
    • 节点之间不能有重复的主机名、MAC地址或product_uuid。
    • 禁用交换分区,以保证kubelet正常工作。
  2. 软件环境

    • Debian操作系统。
    • 安装Docker或其他容器运行时。
    • 安装kubeadm、kubelet和kubectl等Kubernetes工具。

准备工作

  1. 修改主机名

    在每台主机上设置唯一的主机名,例如:

    hostnamectl set-hostname k8s-master
    hostnamectl set-hostname k8s-node1
    hostnamectl set-hostname k8s-node2
    
  2. 时间同步

    安装并配置时间同步服务,例如使用Chrony:

    apt update
    apt install chrony
    systemctl enable chronyd
    systemctl start chronyd
    chronyc sources
    
  3. 确保MAC地址和product_uuid的唯一性

    使用以下命令检查并确保每个节点的MAC地址和product_uuid是唯一的:

    ip link show
    cat /sys/class/dmi/id/product_uuid
    
  4. 允许iptables检查桥接流量(可选):

    加载br_netfilter模块并配置sysctl:

    modprobe br_netfilter
    echo "modprobe br_netfilter" >> /etc/modules-load.d/k8s.conf
    cat << EOF | sudo tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    sysctl -p /etc/sysctl.d/k8s.conf
    
  5. 检查所需端口

    确保所需的端口在防火墙中开放:

    • API服务器(Master节点):6443(tcp入站)
    • etcd服务器(Master节点):2379-2380(tcp入站)
    • kubelet(所有节点):10250(tcp入站)
    • kube-scheduler(Master节点):10251(tcp入站)
    • kube-controller-manager(Master节点):10252(tcp入站)
    • nodeport服务(所有节点):30000-32767(tcp入站)
  6. 配置网络插件

    根据需要配置网络插件,例如Calico:

    kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
    
  7. 安装Docker或其他容器运行时

    例如安装Docker:

    apt update
    apt install -y docker.io
    systemctl enable docker
    systemctl start docker
    usermod -aG docker $USER
    
  8. 安装kubeadm、kubelet和kubectl

    添加Kubernetes官方GPG密钥并配置APT源:

    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
    sudo apt update
    sudo apt install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl
    
  9. 初始化Master节点

    在Master节点上初始化Kubernetes集群:

    sudo kubeadm init --pod-network-cidr=10.244.0.0/16
    
  10. 配置kubectl

    配置kubectl以连接到集群:

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  11. 部署Pod网络

    应用Pod网络插件配置,例如使用Flannel:

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    

通过以上步骤,您可以在Debian上成功部署一个基本的Kubernetes集群。请根据实际需求和环境调整配置。

0
看了该问题的人还看了