跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Ubuntu 16.04 部署 Kubernetes 集群配置指南

在 Ubuntu 16.04 环境下通过 kubeadm 部署 Kubernetes 集群的完整流程。内容包括基础环境配置、Docker 安装与优化、Kubernetes 组件安装、Master 节点初始化及镜像拉取处理、Worker 节点加入集群以及 Calico 网络插件的配置。重点解决了国内网络环境下镜像拉取困难的问题,提供了阿里云源替换方案及常见故障排查步骤。

DebugKing发布于 2025/2/13更新于 2026/9/961 浏览
Ubuntu 16.04 部署 Kubernetes 集群配置指南

基础环境配置

所有节点执行以下操作:

关闭 Swap 分区:

swapoff -a

配置 hosts 文件:

cat <<EOF > /etc/hosts
192.168.211.40 master
192.168.211.41 node1
192.168.211.42 node2
EOF

安装 Docker

若默认源较慢,可更换为阿里云源。

编辑 /etc/apt/sources.list:

vim /etc/apt/sources.list

内容如下:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

更新软件源:

apt-get update

注意: 安装 Docker 建议指定稳定版本以保证兼容性。

apt-get install -y docker-ce=5:19.03.4~3-0~ubuntu-xenial docker-ce-cli=5:19.03.4~3-0~ubuntu-xenial containerd.io=1.2.10-3

若遇到 CD-ROM 错误,请注释掉 /etc/apt/sources.list 中的 deb cdrom 行。

配置 Docker 守护进程(推荐配置国内镜像源):

cat > /etc/docker/daemon.json <<EOF
{
   "exec-opts": ["native.cgroupdriver=systemd"],
   "log-driver": "json-file",
   "log-opts": {
     "max-size": "100m"
   }
}
EOF

重启 Docker 服务:

mkdir -p /etc/systemd/system/docker.service.d
systemctl daemon-reload
systemctl start docker
systemctl status docker

安装 Kubernetes

配置软件源

使用阿里云源(若无法访问 Google 源):

创建列表文件:

cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF

添加 GPG Key:

curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6A030B21BA07F4FB

安装组件:

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

配置 Kubectl 自动补全(可选):

source <(kubectl completion bash)
source <(kubectl completion zsh)

kubeadm 创建集群 Master 节点

由于网络原因直接初始化可能拉取镜像失败,建议先准备镜像。

查看所需镜像列表:

kubeadm config images list

生成默认配置文件:

kubeadm config print init-defaults > kubeadm.conf

修改配置文件以使用国内镜像仓库并指定版本:

sed -i "s/imageRepository: .*/imageRepository: registry.aliyuncs.com\/google_containers/g" kubeadm.conf
sed -i "s/kubernetesVersion: .*/kubernetesVersion: v1.18.1/g" kubeadm.conf

拉取镜像:

kubeadm config images pull --config kubeadm.conf

执行初始化命令:

kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.211.40

配置用户权限:

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

记录生成的 Join 命令用于后续添加 Node 节点。

添加 Worker 节点

在 Node 节点上执行 Master 提供的 Join 命令。若报错提示文件已存在,请先重置:

kubeadm reset

再次执行 Join 命令:

kubeadm join 192.168.211.40:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

Token 有效期通常为 24 小时,过期后可重新生成:

kubeadm token create --print-join-command

验证节点状态:

kubectl get nodes
kubectl get pods -A

安装网络插件 Calico

Pod 处于 Pending 状态通常是因为缺少网络插件。应用 Calico 配置:

kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml

若 Pod 创建失败,可尝试删除后重新应用:

kubectl delete -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml
kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml

排查方法:

  1. 检查镜像拉取情况:docker pull xxx
  2. 检查 DNS 解析,修改 /etc/resolv.conf 添加国内 DNS:
    nameserver 114.114.114.114
    
  3. 确保内存充足,否则可能导致 Pod 处于 Pending 状态。

最后确认 Pod 状态:

kubectl get pods -A

目录

  1. 基础环境配置
  2. 安装 Docker
  3. 安装 Kubernetes
  4. 配置软件源
  5. kubeadm 创建集群 Master 节点
  6. 添加 Worker 节点
  7. 安装网络插件 Calico

更多推荐文章

查看全部
  • Vheer:免费免登录 AI 绘画视频生成与智能编辑工具
  • RPA 财务机器人十大应用场景与未来趋势
  • AI 大模型通信机制:流式传输与数据封装逻辑详解
  • 3D Gaussian Splatting 在动态场景中的应用:从 SLAM 到虚拟现实
  • C++ 伪随机数生成实验:std::mt19937 分布规律观察与验证
  • MySQL 数据类型详解
  • Qclaw 使用指南:微信集成 AI 智能体实践
  • 本地部署 Stable Diffusion 3.5 完整教程
  • 快速幂算法详解:高效计算 x 的 n 次幂
  • Java 多线程与并发核心机制详解
  • AR 健身教练应用实践:基于 Rokid CXR-M SDK 的落地方案
  • Python 爬虫入门与分布式架构原理
  • VSCode Copilot 登录异常排查与修复实战
  • 2025 年开源软件架构图生成工具指南
  • Java Web 前端入门:HTML 核心知识点总结
  • 谷歌 Gemini 3 免费使用渠道与接入方式指南
  • 2026 春晚机器人三强专利布局与资本路径分析
  • 后端视角下的前端基础:HTML、CSS 与 JavaScript
  • 轻小说机翻机器人:快速搭建日语小说翻译工具
  • MySQL 数据库核心操作:创建、修改与备份实战指南

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online