首页主机资讯如何在Linux系统中安装Kubernetes

如何在Linux系统中安装Kubernetes

时间2025-12-05 00:18:03发布访客分类主机资讯浏览327
导读:在 Linux 上安装 Kubernetes 的实用指南 一 安装方式与适用场景 kubeadm 标准集群:适合学习、测试与生产,支持多节点、可扩展、可对接多种网络插件与云厂商。 轻量单节点:如 MicroK8s(Ubuntu 系)、Mi...

在 Linux 上安装 Kubernetes 的实用指南

一 安装方式与适用场景

  • kubeadm 标准集群:适合学习、测试与生产,支持多节点、可扩展、可对接多种网络插件与云厂商。
  • 轻量单节点:如 MicroK8s(Ubuntu 系)、Minikube(跨发行版),适合本地开发验证与功能体验。
  • 云厂商托管:如 EKS/AKS/GKE,无需自维护控制面,适合生产业务快速上线。

二 前置条件与系统要求

  • 操作系统:推荐 Ubuntu 20.04+/CentOS 7+ 等主流发行版。
  • 硬件建议:每节点至少 2 核 CPU、2 GB 内存、20 GB 磁盘;生产环境建议 4 GB+ 内存
  • 网络互通:节点间可互相访问;云上需开放安全组/防火墙端口。
  • 容器运行时:安装 Docker/Containerd 并启动服务。
  • 关闭 Swap:临时与永久关闭,避免 kubelet 预检失败。
  • 内核与模块:加载 overlay/br_netfilter 并设置桥接流量转发。
  • 端口放行:控制面与节点通信常用端口如 6443、2379–2380、10250–10252 等需放通。

三 使用 kubeadm 搭建集群步骤

  • 1)基础环境(所有节点)
    • 关闭 Swap
      • sudo swapoff -a
      • sudo sed -i ‘/ swap / s/^(.*)$/#\1/g’ /etc/fstab
    • 加载内核模块与网络转发
      • sudo tee /etc/modules-load.d/containerd.conf < < EOF overlay br_netfilter EOF
      • sudo tee /etc/sysctl.d/kubernetes.conf < < EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF
      • sudo sysctl --system
    • 安装容器运行时(以 Docker 为例)
      • Ubuntu/Debian:
        • sudo apt-get update & & sudo apt-get install -y docker.io
        • sudo systemctl enable --now docker
      • CentOS/RHEL:
        • sudo yum install -y -y docker
        • sudo systemctl enable --now docker
  • 2)安装 kubeadm/kubelet/kubectl(所有节点)
    • Ubuntu/Debian:
      • sudo apt-get update & & sudo apt-get install -y kubelet kubeadm kubectl
      • sudo apt-mark hold kubelet kubeadm kubectl
    • CentOS/RHEL:
      • sudo yum install -y kubelet kubeadm kubectl
      • sudo systemctl enable --now kubelet
  • 3)初始化控制平面(Master)
    • 拉取镜像并初始化(可指定国内镜像仓库加速)
      • sudo kubeadm init
        –apiserver-advertise-address=< MASTER_IP>
        –image-repository registry.aliyuncs.com/google_containers
        –kubernetes-version=v1.23.0
        –service-cidr=10.96.0.0/12
        –pod-network-cidr=10.244.0.0/16
    • 配置 kubectl(非 root 用户)
      • mkdir -p $HOME/.kube
      • sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      • sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 4)部署网络插件(CNI)
    • Flannel:
      • kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    • Calico:
      • kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  • 5)加入工作节点(Worker)
    • 使用 kubeadm init 输出中的 join 命令,例如:
      • sudo kubeadm join < MASTER_IP> :6443 --token --discovery-token-ca-cert-hash sha256:
  • 6)验证
    • kubectl get nodes
    • kubectl get pods -A

四 快速单节点方案

  • MicroK8s(Ubuntu 系)
    • 安装与常用组件:
      • sudo snap install microk8s --classic
      • microk8s enable dashboard dns registry community istio
    • 状态与常用操作:
      • microk8s status
      • microk8s start | microk8s stop
      • microk8s kubectl get nodes
  • Minikube(跨发行版)
    • 下载二进制并安装:
      • curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
      • sudo mv minikube-linux-amd64 /usr/local/bin/minikube
      • sudo chmod +x /usr/local/bin/minikube
    • 启动与验证:
      • minikube start
      • kubectl cluster-info

五 常见问题与排错要点

  • Swap 未关闭:kubelet 预检会报错,务必执行 swapoff -a 并注释 /etc/fstab 中的 swap 行。
  • 桥接转发未开启:未设置 net.bridge.bridge-nf-call-iptables=1 会导致 Pod 网络异常。
  • 端口被占用:如 6443/10250 等端口冲突,需释放或调整占用进程。
  • 镜像拉取慢/失败:使用国内镜像仓库(如 registry.aliyuncs.com/google_containers)加速。
  • 节点 NotReady:多因 CNI 未部署或网络 CIDR 与控制面配置不一致,检查 kube-flannel.yml/calico.yaml 与 --pod-network-cidr 是否匹配。
  • kubectl 权限问题:非 root 用户需正确拷贝 admin.conf 到 $HOME/.kube/config 并设置权限。

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


若转载请注明出处: 如何在Linux系统中安装Kubernetes
本文地址: https://pptw.com/jishu/764130.html
Linux环境怎样安装Kubernetes集群 Debian下Nginx日志权限怎么设置

游客 回复需填写必要信息