温馨提示×

K8s如何在Ubuntu上运行

小樊
38
2026-10-28 11:55:56
栏目: 智能运维

下面给你一份在 Ubuntu 上运行 Kubernetes(K8s)的实用指南,从“最简方式”到“生产可用方式”都覆盖,你可以按需求选择。


一、最简方式(本地学习/测试):使用 Minikube

适合: 学习 K8s、本地开发、不需要多节点

1. 安装依赖

sudo apt update
sudo apt install -y curl wget apt-transport-https

2. 安装 Docker

sudo apt install -y docker.io
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

重新登录或 newgrp docker

3. 安装 Minikube

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

4. 启动 K8s

minikube start --driver=docker

5. 安装 kubectl

sudo snap install kubectl --classic
kubectl get nodes

✅ 成功的话你会看到一个 Ready 的节点


二、标准方式(多节点 / 真集群):kubeadm

适合: 实验集群、生产前验证

1. 所有节点执行(Master + Worker)

sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker

2. 禁用 swap

sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab

3. 安装 kubeadm / kubelet / kubectl

sudo apt install -y apt-transport-https ca-certificates curl
curl -fsSL 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 update
sudo apt install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet

4. 初始化 Master 节点

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

初始化完成后:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

5. 安装网络插件(CNI)

常用 Flannel:

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

6. Worker 节点加入集群

在 Master 初始化输出中会有类似:

kubeadm join 192.168.x.x:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx

在 Worker 节点执行即可。


三、更轻量的替代方案(推荐新手)

1. Kind(Kubernetes in Docker)

brew install kind  # 或二进制
kind create cluster

2. MicroK8s(Ubuntu 官方推荐)

sudo snap install microk8s --classic
sudo microk8s status --wait-ready
sudo microk8s kubectl get nodes

✅ Ubuntu 上最省心的方式


四、常见问题

1. kubectl 连接不上

  • 检查 .kube/config
  • 确认 API Server 在运行

2. 节点 NotReady

  • 没装 CNI 网络插件
  • swap 没关

3. Ubuntu 版本建议

  • ✅ 20.04 / 22.04 / 24.04
  • 内核 ≥ 5.x

五、推荐选择总结

场景 推荐
本地学习 Minikube / Kind
Ubuntu 快速用 MicroK8s
真集群 kubeadm
生产 云托管 K8s

如果你愿意,我可以:

  • 帮你 选一种方案并一步步操作
  • 给你 单节点 K8s 实操示例
  • 或讲 Pod / Deployment 怎么跑

你现在是 学习用还是部署用?

0 踩