首页主机资讯Ubuntu如何安装Kubernetes集群

Ubuntu如何安装Kubernetes集群

时间2025-12-13 02:08:04发布访客分类主机资讯浏览738
导读:Ubuntu上使用 kubeadm 安装 Kubernetes 集群 一 环境准备与前置检查 准备至少 2 核 CPU、2GB 内存、30GB 磁盘 的机器若干(建议 1 个 Master + 2 个 Worker),节点间网络互通,可访...

Ubuntu上使用 kubeadm 安装 Kubernetes 集群

一 环境准备与前置检查

  • 准备至少 2 核 CPU、2GB 内存、30GB 磁盘 的机器若干(建议 1 个 Master + 2 个 Worker),节点间网络互通,可访问外网拉取镜像,并禁用 Swap
  • 关闭 Swap(临时与永久):
    • 临时:swapoff -a & & sysctl -w vm.swappiness=0
    • 永久:sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
  • 唯一性校验:确保各节点 MAC 地址product_uuid 唯一(虚拟机克隆后易重复,会导致节点异常)。
  • 加载内核模块与开启桥接转发:
    • cat > /etc/modules-load.d/k8s.conf < < EOF br_netfilter bridge EOF
    • cat > /etc/sysctl.d/k8s.conf < < EOF net.bridge.bridge-nf-call-ip6tables=1 net.bridge.bridge-nf-call-iptables=1 net.ipv4.ip_forward=1 EOF
    • 执行:sysctl --system
  • 主机名与 hosts(示例):
    • hostnamectl set-hostname master
    • cat > > /etc/hosts < < EOF 192.168.31.61 master 192.168.31.62 node1 192.168.31.63 node2 EOF
  • Ubuntu 防火墙与 AppArmor:
    • systemctl disable --now ufw
    • systemctl disable --now apparmor
  • 时间同步(建议):timedatectl set-ntp true 或安装 ntp/chrony 同步时间。

二 安装容器运行时 Containerd

  • 安装与启用:
    • apt-get update & & apt-get install -y containerd
    • systemctl enable --now containerd
  • 配置 cgroup 驱动为 systemd(Kubelet 默认期望 systemd,否则 kubeadm init 可能失败):
    • 生成默认配置:containerd config default | tee /etc/containerd/config.toml
    • 编辑 /etc/containerd/config.toml,将 [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] 下的 SystemdCgroup 设为 true
    • 重启:systemctl restart containerd
  • 说明:本方案采用 Containerd 作为 CRI,不依赖 Docker 引擎。

三 安装 kubeadm kubelet kubectl

  • 添加 Kubernetes APT 仓库(示例为 v1.24,可按需替换为其他版本,如 v1.29):
    • apt-get update & & apt-get install -y apt-transport-https ca-certificates curl gpg
    • mkdir -p -m 755 /etc/apt/keyrings
    • curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.24/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
    • echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.24/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.list
  • 安装并锁定版本(三组件版本保持一致):
    • apt-get update
    • apt-get install -y kubelet=1.24.17-1.1 kubeadm=1.24.17-1.1 kubectl=1.24.17-1.1
    • apt-mark hold kubelet kubeadm kubectl
  • 版本策略提示:控制平面与 kubelet 允许相差一个次要版本,但 kubelet 版本不可高于 API Server

四 初始化 Master 与加入 Worker

  • 初始化 Master(请按你的 Pod 网络插件规划 CIDR,示例使用 Flannel 的 10.244.0.0/16):
    • kubeadm init --kubernetes-version=v1.24.17 --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers
  • 配置 kubectl:
    • mkdir -p $HOME/.kube
    • cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    • chown $(id -u):$(id -g) $HOME/.kube/config
  • 安装网络插件(Flannel):
    • kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  • 加入 Worker(使用 kubeadm init 输出中的 join 命令;若 token 过期,可在 Master 上执行 kubeadm token create --print-join-command 重新生成):
    • 示例:kubeadm join < MasterIP> :6443 --token < token> --discovery-token-ca-cert-hash sha256:< hash>
  • 验证:kubectl get nodes 应看到所有节点状态为 Ready

五 常见问题与快速排查

  • 节点 NotReady:
    • 检查 containerd/kubelet 是否运行:systemctl status containerd kubelet
    • 确认已安装 CNI 网络插件(如 Flannel),并核对 --pod-network-cidr 与插件配置一致
    • 检查节点间 网络连通性时间同步
  • 镜像拉取失败:
    • 使用国内镜像仓库(如 --image-repository registry.aliyuncs.com/google_containers)或提前在各节点拉取所需镜像
  • 端口与防火墙:
    • 确保 6443/10250/10251/10252 等端口未被占用且放通(云上需配置安全组)
  • kubeadm join 失败(token 过期):
    • 在 Master 重新生成:kubeadm token create --print-join-command
  • 节点唯一性:
    • 再次核对 MAC 地址product_uuid 唯一性,避免克隆导致的冲突

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


若转载请注明出处: Ubuntu如何安装Kubernetes集群
本文地址: https://pptw.com/jishu/771217.html
Linux下OpenSSL如何加密文件 Ubuntu上Laravel如何进行静态资源管理

游客 回复需填写必要信息