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

Kubernetes集群搭建实战

Kubernetes集群搭建实战

在Ubuntu 22.04上部署k8s 1.30.1并集成Dashboard 2.7.0与Ingress-Nginx 1.10.1全面指南

欢迎阅读本教程!本文将详细指导您在Ubuntu 22.04系统上搭建Kubernetes 1.30.1集群,并开启Dashboard 2.7.0和部署ingress-nginx 1.10.1。本教程面向初学者,步骤详尽,确保小白也能轻松上手。通过本指南,您将掌握Kubernetes集群搭建的核心技能,为容器化应用部署打下坚实基础。

Kubernetes集群搭建实战 Kubernetes集群搭建  Ubuntu 22.04 Kubernetes Dashboard Ingress-Nginx 第1张

先决条件

在开始之前,请确保您有以下环境:至少两台运行Ubuntu 22.04的虚拟机或物理机(一台作为主节点,其他作为工作节点),每台机器至少2GB RAM、2个CPU核心和20GB磁盘空间。网络需互通,并已配置SSH免密登录。本教程将使用root用户或具有sudo权限的用户操作。我们将从零开始,逐步构建一个完整的Kubernetes集群。

步骤一:系统准备与Docker安装

首先,更新所有节点的Ubuntu 22.04系统。运行以下命令:sudo apt update && sudo apt upgrade -y。然后,安装Docker作为容器运行时。Docker是Kubernetes集群的基础组件,确保版本兼容性。添加Docker官方仓库并安装:sudo apt install -y docker.io。启动Docker服务并设置开机自启:sudo systemctl enable docker && sudo systemctl start docker。验证安装:docker --version

步骤二:安装Kubernetes组件

接下来,安装kubeadm、kubelet和kubectl。这些是Kubernetes集群搭建的核心工具。添加Kubernetes仓库并安装指定版本1.30.1: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 kubeadm=1.30.1-00 kubelet=1.30.1-00 kubectl=1.30.1-00。锁定版本以防止自动更新:sudo apt-mark hold kubeadm kubelet kubectl。在所有节点上重复此步骤。

步骤三:初始化Kubernetes集群

在主节点上,初始化Kubernetes集群。首先,禁用交换空间:sudo swapoff -a并编辑/etc/fstab注释掉swap行。然后,运行初始化命令:sudo kubeadm init --kubernetes-version=1.30.1 --pod-network-cidr=192.168.0.0/16。此过程可能需要几分钟。完成后,按照输出提示设置kubectl配置:mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config。保存加入集群的命令,用于工作节点加入。

步骤四:部署网络插件

Kubernetes集群需要网络插件来实现Pod间通信。这里我们选择Calico。部署Calico网络:kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml。等待几分钟,使用kubectl get pods -n kube-system检查所有Pod是否运行正常。此时,主节点应准备就绪。将工作节点加入集群:在每个工作节点上运行之前保存的kubeadm join命令。返回主节点,验证节点状态:kubectl get nodes,所有节点应显示为Ready。

步骤五:开启Kubernetes Dashboard 2.7.0

Kubernetes Dashboard提供了一个Web界面来管理集群。部署Dashboard 2.7.0版本:首先,下载部署清单:kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml。创建管理员用户和权限:创建一个文件dashboard-adminuser.yaml,内容包含ServiceAccount和ClusterRoleBinding。应用配置:kubectl apply -f dashboard-adminuser.yaml。获取访问令牌:kubectl -n kubernetes-dashboard create token admin-user。启动代理以访问Dashboard:kubectl proxy,然后在浏览器中打开http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/并使用令牌登录。

步骤六:部署Ingress-Nginx 1.10.1

Ingress-Nginx是Kubernetes中常用的入口控制器,用于管理外部访问。部署Ingress-Nginx 1.10.1版本:使用官方清单文件:kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/cloud/deploy.yaml。等待Pod就绪:kubectl get pods -n ingress-nginx。验证安装:创建一个测试应用和Ingress资源。例如,部署一个nginx应用:kubectl create deployment demo --image=nginx并暴露服务:kubectl expose deployment demo --port=80。创建Ingress规则文件,定义主机和路径,然后应用:kubectl apply -f ingress.yaml。检查Ingress状态:kubectl get ingress

验证与测试

完成以上步骤后,您的Kubernetes集群应已完整运行。测试集群功能:运行kubectl get all --all-namespaces查看所有资源。访问Dashboard界面,监控集群状态。通过Ingress访问测试应用,确保外部流量正确路由。本教程详细覆盖了从系统准备到集群部署的全过程,帮助您快速搭建生产可用的Kubernetes环境。如果您遇到问题,请参考Kubernetes官方文档或社区资源。

总结:通过本指南,您已在Ubuntu 22.04上成功搭建了Kubernetes 1.30.1集群,并集成了Dashboard 2.7.0和Ingress-Nginx 1.10.1。这为部署和管理容器化应用提供了强大平台。继续探索Kubernetes的高级功能,如存储、安全性和自动化,以提升您的DevOps技能。希望本教程对您的学习有所帮助!