debian

Debian上Kubernetes安装的最佳实践

小樊
46
2025-05-12 12:25:27
栏目: 智能运维

在Debian上安装Kubernetes集群涉及多个步骤和最佳实践,以确保系统的稳定性和安全性。以下是一个详细的指南:

准备工作

  1. 硬件要求:至少2核CPU,4GB RAM,20GB磁盘空间。
  2. 系统版本:建议使用Debian 12(Bookworm)。
  3. 网络连接:稳定的互联网连接,确保所有节点之间可以相互通信。

安装前准备

  1. 设置主机名及更新hosts文件:在每个节点上设置主机名,并在 /etc/hosts 文件中添加节点IP和主机名的映射。
    sudo hostnamectl set-hostname "master"
    sudo hostnamectl set-hostname "node1"
    sudo hostnamectl set-hostname "node2"
    sudo nano /etc/hosts
    # 添加如下内容
    192.168.1.100 master
    192.168.1.101 node1
    192.168.1.102 node2
    
  2. 关闭所有节点的swap分区:禁用swap分区以确保内存管理的高效性。
    sudo swapoff -a
    sudo sed -i '/ swap / s/1/g' /etc/fstab
    
  3. 添加防火墙规则:允许必要的端口,如Kubernetes API服务器的6443端口,以及其他相关端口。
    sudo ufw allow 6443/tcp
    sudo ufw reload
    
  4. 安装containerd运行时
    • 设置内核参数:
      sudo tee /etc/modules-load.d/containerd.conf <<EOF
      overlaybr_netfilter
      br_netfilter
      EOF
      sudo modprobe overlay
      sudo modprobe br_netfilter
      
    • 配置containerd并启动:
      sudo mkdir -p /etc/containerd
      sudo tee /etc/containerd/config.toml <<EOF
      [plugins."io.containerd.grpc.v1.containerd"]
      suspend_timeout = 24h
      EOF
      sudo systemctl restart containerd
      sudo systemctl enable containerd
      

安装Kubernetes

  1. 添加Kubernetes 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-get update
    
  2. 安装kubelet、kubeadm和kubectl
    sudo apt-get install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl
    

部署Kubernetes集群

  1. 初始化主节点
    sudo kubeadm init --pod-network-cidr=10.244.0.0/16
    
  2. 配置kubectl
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  3. 加入工作节点:在每个工作节点上运行初始化时获得的加入命令,以将它们添加到集群中。
    sudo kubeadm join master-ip:6443 --token token --discovery-token-ca-cert-hash sha256:hash
    

配置网络插件

  1. 安装Calico网络插件
    kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
    
  2. 验证网络插件
    kubectl get pods -n kube-system
    

验证安装

  1. 检查集群状态
    kubectl get nodes
    kubectl cluster-info
    
  2. 部署示例应用程序(如Nginx):
    kubectl create deployment nginx-app --image=nginx --replicas=2
    kubectl expose deployment nginx-app --name=nginx-web-svc --type=NodePort --port=80 --target-port=80
    kubectl describe svc nginx-web-svc
    curl http://node-ip:31743
    

0
看了该问题的人还看了