linux

Linux下Kubernetes部署步骤

小樊
38
2025-08-03 09:10:02
栏目: 智能运维

在 Linux 系统下部署 Kubernetes 集群是一个相对复杂的过程,但以下步骤可以帮助你顺利完成。以下步骤基于 Ubuntu 和 CentOS 的安装指南。

环境准备

  1. 系统要求

    • 推荐使用 CentOS 7.9 或 Ubuntu 20.04 LTS。
    • 至少 2 核 CPU,2GB 内存,50GB SSD 存储。
    • 关闭 Swap:swapoff -a 并注释 /etc/fstab 中的 Swap 条目。
  2. 安装 Docker

    • CentOS
      curl -fsSL https://get.docker.com | sh
      systemctl enable --now docker
      
    • Ubuntu
      apt install -y docker.io
      systemctl enable --now docker
      
  3. 安装 Kubernetes 组件

    • CentOS
      cat > /etc/yum.repos.d/kubernetes.repo << EOF
      [kubernetes]
      name=Kubernetes
      baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
      enabled=1
      gpgcheck=1
      repo_gpgcheck=1
      gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
      EOF
      yum install -y kubeadm kubelet kubectl
      systemctl enable --now kubelet
      
    • Ubuntu
      curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
      echo "deb https://mirrors.cloud.google.com/apt/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list
      apt update
      apt install -y kubeadm=1.28.3-00 kubectl=1.28.3-00 kubelet=1.28.3-00
      systemctl enable --now kubelet
      

部署步骤

  1. 初始化控制平面(Master Node)

    sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<MASTER_IP> --upload-certs
    

    初始化完成后,配置 kubectl

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
  2. 安装网络插件(如 Flannel):

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
  3. 加入工作节点(Worker Nodes)

    在工作节点上运行主节点生成的加入命令:

    sudo kubeadm join <MASTER_IP>:6443 --token <TOKEN> --discovery-token-ca-cert-hash <HASH>
    

验证部署

  1. 检查集群状态

    kubectl get nodes
    kubectl get pods --all-namespaces
    
  2. 部署应用(如 Nginx):

    创建 deployment.yaml 文件:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
            ports:
            - containerPort: 80
    

    部署应用:

    kubectl apply -f nginx-deployment.yaml
    
  3. 验证应用

    kubectl get deployments
    kubectl get pods
    

进阶配置

  1. 高可用性

    • 添加更多控制平面节点。
    • 配置外部 etcd 集群。
  2. 安全加固

    • 启用 Pod 安全策略(PodSecurityPolicy)。
  3. 存储配置

    • 使用 NFS、Ceph 等存储系统为集群提供持久化存储。
  4. Ingress 配置

    • 安装 Ingress 控制器,如 Nginx Ingress Controller。
  5. 监控和日志

    • 安装 Prometheus 和 Grafana 进行监控。
    • 使用 ELK Stack 或 Fluentd + Elasticsearch 收集和分析日志。

以上步骤涵盖了在 Linux 系统下部署 Kubernetes 集群的基本流程,包括环境准备、集群初始化、节点加入、网络插件安装、应用部署以及进阶配置。根据具体需求,你可能还需要进行更多的配置和优化。

0
看了该问题的人还看了