首页主机资讯Ubuntu K8S部署指南

Ubuntu K8S部署指南

时间2025-10-14 18:57:04发布访客分类主机资讯浏览761
导读:Ubuntu环境下Kubernetes(K8s)集群部署指南 一、准备工作 1. 系统要求 操作系统:Ubuntu 20.04及以上版本(推荐LTS版本,稳定性更高); 硬件要求:至少2核CPU、2GB内存、20GB以上磁盘空间(生产环境...

Ubuntu环境下Kubernetes(K8s)集群部署指南

一、准备工作

1. 系统要求

  • 操作系统:Ubuntu 20.04及以上版本(推荐LTS版本,稳定性更高);
  • 硬件要求:至少2核CPU、2GB内存、20GB以上磁盘空间(生产环境建议4核CPU、4GB内存以上);
  • 网络要求:所有节点(Master/Worker)之间网络互通,无防火墙阻拦(或开放必要端口:API服务器6443、kubelet端口10250等);
  • 节点角色:至少1个Master节点(控制集群)、1个及以上Worker节点(运行应用)。

2. 系统初始化配置

(1)更新系统软件包

sudo apt update &
    &
     sudo apt upgrade -y

(2)关闭Swap分区(K8s要求)

sudo swapoff -a  # 临时关闭
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab  # 永久关闭(注释掉swap行)

(3)加载内核模块(支持网络虚拟化)

sudo modprobe overlay
sudo modprobe br_netfilter

(4)设置内核参数(允许Pod网络通信)

sudo tee /etc/sysctl.d/k8s.conf <
    <
    EOF
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system  # 生效配置

(5)安装必要工具

sudo apt install -y apt-transport-https curl software-properties-common

二、安装Docker容器运行时

K8s需要容器运行时来管理容器,推荐使用Docker(社区最常用):

# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 添加Docker软件源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list >
     /dev/null

# 安装Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# 启动Docker并设置开机自启
sudo systemctl enable --now docker

# 验证Docker安装
sudo docker run hello-world

三、安装Kubernetes核心组件

1. 添加Kubernetes软件源

# 添加Kubernetes官方GPG密钥
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg

# 添加Kubernetes软件源
echo "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 >
     /dev/null

# 更新软件包列表
sudo apt update

2. 安装kubeadm、kubelet、kubectl

sudo apt install -y kubelet kubeadm kubectl

# 锁定组件版本(防止自动升级导致集群异常)
sudo apt-mark hold kubelet kubeadm kubectl

四、初始化Master节点

1. 初始化Master节点

sudo kubeadm init --pod-network-cidr=10.244.0.0/16  # 指定Pod网络CIDR(与后续网络插件匹配)

说明--pod-network-cidr需与选择的网络插件(如Flannel、Calico)要求的CIDR一致,避免网络冲突。

2. 配置kubectl(普通用户使用)

# 创建.kube目录
mkdir -p $HOME/.kube

# 复制集群配置文件到用户目录
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

# 修改配置文件权限
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3. 安装网络插件(以Flannel为例)

K8s需要网络插件实现Pod间通信,推荐使用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

五、加入Worker节点

1. 获取加入命令

Master节点初始化完成后,终端会输出类似以下命令(务必保存):

kubeadm join 192.168.1.100:6443 --token abcdef.1234567890abcdef \
    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

2. 在Worker节点执行加入命令

将上述命令复制到每个Worker节点,运行后等待节点状态变为Ready

六、验证集群状态

1. 检查节点状态

在Master节点上运行:

kubectl get nodes

预期结果:所有节点(Master/Worker)状态均为Ready

2. 检查Pod状态

kubectl get pods -A

预期结果:所有Pod状态均为Running(网络插件Pod可能需要1-2分钟启动)。

七、注意事项

  1. 防火墙配置:若开启防火墙,需开放以下端口:

    • API服务器:6443(TCP)
    • kubelet:10250(TCP)
    • 网络插件:根据插件要求开放(如Flannel需要UDP 8285/8472)
    sudo ufw allow 6443/tcp
    sudo ufw allow 10250/tcp
    
  2. 版本兼容性:确保Docker、kubeadm、kubelet、kubectl版本兼容(参考K8s官方文档的版本矩阵)。

  3. 生产环境优化

    • 使用高可用Master架构(多Master节点+etcd集群);
    • 配置RBAC(基于角色的访问控制)增强安全性;
    • 使用私有镜像仓库(如Harbor)存储容器镜像;
    • 定期备份etcd数据(集群核心数据)。
  4. 故障排查

    • 若节点状态为NotReady,检查网络插件是否正常运行;
    • 若Pod无法启动,查看Pod日志定位问题:
      kubectl describe pod <
          pod-name>
           -n <
          namespace>
          
      kubectl logs <
          pod-name>
           -n <
          namespace>
          
      

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


若转载请注明出处: Ubuntu K8S部署指南
本文地址: https://pptw.com/jishu/726146.html
Ubuntu K8S网络配置方法 Ubuntu MariaDB性能瓶颈怎么破

游客 回复需填写必要信息