如何在Linux系统中安装Kubernetes
导读:在 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
- Ubuntu/Debian:
- 关闭 Swap
- 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
- Ubuntu/Debian:
- 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
- sudo kubeadm init
- 配置 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
- Flannel:
- 5)加入工作节点(Worker)
- 使用 kubeadm init 输出中的 join 命令,例如:
- sudo kubeadm join < MASTER_IP> :6443 --token --discovery-token-ca-cert-hash sha256:
- 使用 kubeadm init 输出中的 join 命令,例如:
- 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
