当前位置:首页 > 系统教程 > 正文

Linux Ubuntu部署K8S集群实战教程

Linux Ubuntu部署K8S集群实战教程

(从零开始搭建Kubernetes容器编排平台)

欢迎来到本教程!本文将带你一步步在Ubuntu系统上部署一个生产可用的K8S集群。无论你是运维小白还是开发人员,只要跟着操作,都能成功搭建属于自己的Kubernetes环境。本文涵盖Ubuntu集群配置、容器运行时安装、集群初始化及网络插件部署等核心环节。

Linux Ubuntu部署K8S集群实战教程 K8S部署 Ubuntu集群 Kubernetes教程 容器编排 第1张

1. 环境准备:系统要求与配置

开始K8S部署前,请确保你至少有两台Ubuntu 20.04或22.04主机(一台作为控制平面,一台作为工作节点)。所有主机需要2GB以上内存,2核CPU,并保证网络互通。首先,关闭swap并设置主机名:

    sudo swapoff -asudo sed -i "/ swap / s/^\(.*\)$/#�/g" /etc/fstabsudo hostnamectl set-hostname master-node   # 在主节点执行sudo hostnamectl set-hostname worker-node01 # 在工作节点执行  

接着,配置hosts文件以便互相解析:

    sudo vi /etc/hosts# 添加如下内容(根据实际IP修改)192.168.1.10 master-node192.168.1.20 worker-node01  

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

Kubernetes需要容器运行时来运行Pod。我们选择Containerd。在所有节点执行以下命令:

    cat <  

3. 安装kubeadm、kubelet和kubectl

在所有节点添加Kubernetes apt仓库并安装工具:

    sudo apt updatesudo apt install -y apt-transport-https ca-certificates curlcurl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpgecho "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.listsudo apt updatesudo apt install -y kubelet kubeadm kubectlsudo apt-mark hold kubelet kubeadm kubectl  

4. 初始化控制平面节点

在master节点上执行初始化,注意替换API Server地址:

    sudo kubeadm init --apiserver-advertise-address=192.168.1.10 --pod-network-cidr=10.244.0.0/16# 初始化成功后,按提示配置kubectlmkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config  

记录生成的kubeadm join命令,稍后在工作节点执行。

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

为了让Pod之间通信,需要部署CNI插件。在master节点执行:

    kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml  
Linux Ubuntu部署K8S集群实战教程 K8S部署 Ubuntu集群 Kubernetes教程 容器编排 第2张

6. 将工作节点加入集群

在每台工作节点上执行之前记录的kubeadm join命令:

    sudo kubeadm join 192.168.1.10:6443 --token  --discovery-token-ca-cert-hash sha256:  

回到master节点,运行kubectl get nodes验证节点状态。当所有节点处于Ready状态,你的K8S集群就成功部署了!

7. 验证集群与部署测试应用

最后,部署一个Nginx应用测试:

    kubectl create deployment nginx --image=nginxkubectl expose deployment nginx --port=80 --type=NodePortkubectl get pods,svc  

通过任意节点IP加NodePort即可访问Nginx。至此,你已完成了Linux Ubuntu部署K8S集群的全部流程。本教程涵盖了容器编排的核心步骤,希望对你的学习或工作有所帮助!