温馨提示×

Ubuntu Kubernetes集群搭建步骤是什么

小樊
55
2025-10-06 03:24:47
栏目: 智能运维

Ubuntu上搭建Kubernetes集群详细步骤

1. 准备工作

  • 系统要求:Ubuntu 20.04及以上版本;每节点至少2核CPU、2GB内存、20GB磁盘空间;所有节点处于同一网络,能互相通信。
  • 基础配置
    • 更新系统:sudo apt update && sudo apt upgrade -y
    • 关闭Swap(Kubernetes要求):sudo swapoff -a;永久生效:sudo sed -i '/ swap / s/1/g' /etc/fstab
    • 加载内核模块(支持网络插件):sudo modprobe overlay && sudo modprobe br_netfilter
    • 配置sysctl参数(允许iptables转发):
      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
      
    • 设置主机名(如master-nodeworker-node1):sudo hostnamectl set-hostname <hostname>
    • 配置/etc/hosts(所有节点添加IP与主机名映射,例如):
      192.168.1.100 master-node
      192.168.1.101 worker-node1
      192.168.1.102 worker-node2
      

2. 安装Docker(容器运行时)

Kubernetes依赖容器运行时,Docker是常用选择:

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install -y docker-ce
sudo systemctl start docker && sudo systemctl enable docker

3. 安装Kubernetes组件(kubeadm、kubelet、kubectl)

  • 添加Kubernetes官方仓库:
    curl -s 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 apt-mark hold kubelet kubeadm kubectl
    

4. 初始化Master节点

在Master节点上执行初始化命令(指定Pod网络CIDR,如10.244.0.0/16,需与后续网络插件兼容):

sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  • 初始化完成后,会输出关键信息(务必保存):

    • kubeadm join命令(用于Worker节点加入集群)
    • kubeconfig配置文件路径(默认/etc/kubernetes/admin.conf
  • 配置kubectl(让当前用户能管理集群):

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

5. 安装网络插件

Kubernetes需要网络插件实现Pod间通信,常用Calico(高性能、支持网络策略):

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  • 验证网络插件是否运行:
    kubectl get pods -n kube-system
    
    应看到calico-node-*等Pod状态为Running

6. 加入Worker节点

在每台Worker节点上,执行Master节点初始化时输出的kubeadm join命令(例如):

sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxx

7. 验证集群状态

回到Master节点,执行以下命令检查节点状态:

kubectl get nodes
  • 若所有节点(Master+Worker)状态显示为Ready,则集群搭建成功。

8. 可选:部署示例应用

验证集群功能,部署一个Nginx应用:

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
  • 查看Pod和应用状态:
    kubectl get pods
    kubectl get svc
    
  • 访问应用:通过任意节点IP加NodePort端口(如http://<node-ip>:30080)访问Nginx首页。

注意事项

  • 生产环境中需配置高可用(多Master节点)、认证(TLS证书)、网络策略(限制Pod通信)等。
  • 确保所有节点时间同步(可使用ntpchrony服务)。
  • 定期更新Kubernetes组件以修复安全漏洞。

0