插件窝 干货文章 Linux系统中K8S的安装与配置

Linux系统中K8S的安装与配置

Kubernetes sudo bash kubectl 310    来源:    2025-05-09

以下是在Linux系统上安装和配置Kubernete(K8S)的详细步骤指南,涵盖常见发行版(Ubuntu/CentOS)的安装方法:


一、前置准备

  1. 系统要求

    • 至少2GB RAM(推荐4GB+)
    • 2核CPU以上
    • 禁用Swap:sudo swapoff -a 并注释掉/etc/fstab中的swap行
    • 唯一主机名:hostnamectl set-hostname <name>
    • 开放防火墙端口(或直接关闭): bash sudo ufw disable # Ubuntu sudo systemctl stop firewalld # CentOS
  2. 安装容器运行时

    • Docker(推荐): bash sudo apt-get install docker.io -y # Ubuntu sudo yum install docker -y # CentOS sudo systemctl enable --now docker
    • containerdbash sudo apt-get install containerd -y # Ubuntu

二、安装Kubernetes组件

  1. 添加K8S仓库并安装工具

    • Ubuntu/Debianbash sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl 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 sudo apt-get install -y kubelet kubeadm kubectl
    • CentOS/RHELbash cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF sudo yum install -y kubelet kubeadm kubectl
  2. 启用并启动kubelet

    sudo systemctl enable --now kubelet
    

三、初始化Kubernetes集群(Master节点)

  1. 初始化控制平面

    sudo kubeadm init --pod-network-cidr=10.244.0.0/16
    

    注意:记录输出的kubeadm join命令(用于节点加入)。

  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. 安装网络插件(如Flannel)

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

四、加入工作节点

  1. 在每个工作节点上执行步骤一、二。
  2. 运行Master初始化时生成的kubeadm join命令: bash sudo kubeadm join <MASTER_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash <HASH>

五、验证集群状态

kubectl get nodes  # 应显示所有节点状态为Ready
kubectl get pods -A  # 检查核心组件运行状态

六、常见问题解决

  1. kubelet启动失败

    • 检查日志:journalctl -xeu kubelet
    • 确保容器运行时(如Docker)已启动。
  2. Pod网络问题

    • 确认网络插件(如Flannel)已正确安装。
    • 检查防火墙规则是否阻塞Pod通信。
  3. 重置集群(重新安装)

    sudo kubeadm reset
    sudo rm -rf /etc/cni/net.d ~/.kube/config
    

七、可选配置

  • 启用自动补全bash echo 'source <(kubectl completion bash)' >> ~/.bashrc
  • 部署Dashboardbash kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml kubectl proxy # 访问 http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

通过以上步骤,您已完成Kubernetes集群的部署。建议在生产环境中进一步配置: - 使用TLS证书加强安全 - 配置持久化存储(如NFS/CSI) - 部署监控工具(Prometheus+Grafana)