如何在Ubuntu上快速安装Kubernetes
导读:在 Ubuntu 上快速安装 Kubernetes 的可选方案 方案一 使用 MicroK8s 一键安装(最快,适合本地或单节点测试) 安装与启动 执行:sudo snap install microk8s --classic 常用:...
在 Ubuntu 上快速安装 Kubernetes 的可选方案
方案一 使用 MicroK8s 一键安装(最快,适合本地或单节点测试)
- 安装与启动
- 执行:
sudo snap install microk8s --classic - 常用:
microk8s status、microk8s start|stop、microk8s kubectl version
- 执行:
- 启用常用组件
- 执行:
microk8s enable dashboard dns registry community istio
- 执行:
- 验证与测试
- 查看状态:
microk8s status --wait-ready - 部署测试应用:
microk8s kubectl create deployment nginx --image=nginx & & microk8s kubectl expose deployment nginx --port=80 --target-port=80 --type=ClusterIP & & microk8s kubectl get svc
- 查看状态:
- 说明
- MicroK8s 将 Kubernetes 及其常用插件打包为 snap,一条命令即可完成安装,适合开发、演示与快速验证。
方案二 使用 kubeadm 搭建标准集群(适合多节点与可定制场景)
- 环境要求与准备
- 建议配置:至少2 核 CPU、4GB 内存、20GB 磁盘;各节点唯一主机名;禁用 Swap;加载内核模块并设置桥接转发。
- 执行:
- 禁用 Swap:
sudo swapoff -a & & sudo sed -i '/ swap / s/^/#/' /etc/fstab - 加载模块:
echo -e "overlay\nbr_netfilter" | sudo tee /etc/modules-load.d/k8s.conf & & sudo modprobe overlay & & sudo modprobe br_netfilter - 开启桥接转发:
echo -e "net.bridge.bridge-nf-call-iptables=1\nnet.bridge.bridge-nf-call-ip6tables=1\nnet.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/k8s.conf & & sudo sysctl --system
- 禁用 Swap:
- 安装容器运行时 containerd(推荐)
- 安装:
sudo apt-get update & & sudo apt-get install -y containerd - 生成默认配置并启用 systemd cgroup:
containerd config default | sudo tee /etc/containerd/config.toml > /dev/null 2> & 1 - 修改:
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml - 重启:
sudo systemctl restart containerd & & sudo systemctl enable containerd
- 安装:
- 安装 kubeadm、kubelet、kubectl
- 添加仓库与密钥:
sudo apt-get update & & sudo apt-get install -y apt-transport-https ca-certificates curlcurl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpgecho "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] 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 & & sudo apt-mark hold kubelet kubeadm kubectl
- 添加仓库与密钥:
- 初始化控制平面(主节点)
- 初始化(按需替换参数):
sudo kubeadm init --apiserver-advertise-address=< MASTER_IP> --pod-network-cidr=10.244.0.0/16 - 配置 kubectl:
mkdir -p $HOME/.kube & & sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config & & sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 初始化(按需替换参数):
- 安装网络插件(二选一)
- 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:
- 加入工作节点
- 使用
kubeadm init输出中的kubeadm join ...命令;若遗失,可在主节点执行:sudo kubeadm token create --print-join-command
- 使用
- 验证
- 查看节点:
kubectl get nodes(状态为 Ready 即正常)。
- 查看节点:
常见问题与快速排查
- 节点 NotReady
- 确认已安装并生效网络插件(Flannel/Calico);检查 kubelet 与容器运行时是否运行正常(
sudo systemctl status kubelet、sudo systemctl status containerd)。
- 确认已安装并生效网络插件(Flannel/Calico);检查 kubelet 与容器运行时是否运行正常(
- 加入节点失败
- 核对
kubeadm join的 token 与 sha256 是否正确;确保主节点 6443 端口对节点可达(云上需放通安全组/防火墙)。
- 核对
补充说明
- 若使用 Docker 作为运行时,需将其 cgroup 驱动设为 systemd 以避免与 kubelet 冲突(创建
/etc/docker/daemon.json:{ "exec-opts": ["native.cgroupdriver=systemd"]},然后重启 Docker)。 - 国内环境拉取镜像较慢时,可在
kubeadm init中使用镜像仓库参数(如--image-repository=registry.aliyuncs.com/google_containers)或提前拉取并重新打标镜像以加速部署。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上快速安装Kubernetes
本文地址: https://pptw.com/jishu/773438.html
