当前位置:首页 > Ubuntu > 正文

Ubuntu云原生应用部署(手把手教你从零搭建Docker与Kubernetes环境)

在当今快速发展的云计算时代,云原生应用已成为构建现代化、可扩展、高可用系统的首选方式。而Ubuntu作为最受欢迎的Linux发行版之一,凭借其稳定性、社区支持和对容器技术的良好兼容性,成为部署云原生应用的理想平台。本文将带你从零开始,在Ubuntu系统上部署一个完整的云原生应用环境,涵盖Docker容器化和Kubernetes集群管理。

什么是云原生?

云原生(Cloud Native)是一种构建和运行应用程序的方法,它充分利用云计算模型的优势。核心要素包括:使用微服务架构、容器化打包、持续交付、声明式API以及动态编排(如Kubernetes)。通过这些技术,应用可以实现弹性伸缩、故障自愈和快速迭代。

准备工作

你需要一台运行Ubuntu 20.04或22.04 LTS的服务器(物理机或云主机均可),并确保拥有sudo权限。建议至少2核CPU、4GB内存,以保证Kubernetes组件正常运行。

Ubuntu云原生应用部署(手把手教你从零搭建Docker与Kubernetes环境) Ubuntu云原生部署 云原生应用 Docker容器 Kubernetes集群 第1张

第一步:安装Docker(容器运行时)

Docker是云原生生态中最基础的容器技术,用于打包和运行应用。在Ubuntu上安装Docker非常简单:

# 更新系统包索引sudo apt update# 安装必要依赖sudo apt install -y ca-certificates curl gnupg lsb-release# 添加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=$(dpkg --print-architecture) 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 Enginesudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.io# 将当前用户加入docker组,避免每次使用sudosudo usermod -aG docker $USER# 重启shell或重新登录使组生效newgrp docker

安装完成后,验证Docker是否正常工作:

docker --version# 应输出类似:Docker version 24.0.x, build xxxxxdocker run hello-world# 如果看到“Hello from Docker!”说明安装成功

第二步:安装Kubernetes工具(kubeadm, kubelet, kubectl)

Kubernetes(简称K8s)是事实上的容器编排标准。我们将使用kubeadm来初始化一个单节点集群(适合学习和开发)。

# 关闭swap(K8s要求)sudo swapoff -asudo sed -i '/ swap / s/^/#/' /etc/fstab# 加载内核模块sudo modprobe br_netfiltercat <

第三步:初始化Kubernetes单节点集群

使用kubeadm初始化主节点,并配置kubectl:

# 初始化集群(注意替换为你机器的IP)sudo kubeadm init --pod-network-cidr=10.244.0.0/16# 配置kubectl(非root用户)mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config# 安装网络插件(Flannel)kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml# 移除主节点污点(允许Pod调度到主节点,仅用于单节点测试)kubectl taint nodes --all node-role.kubernetes.io/control-plane-

等待几分钟后,检查节点状态:

kubectl get nodes# 应显示你的节点处于 Ready 状态

第四步:部署一个简单的云原生应用

我们使用一个Nginx示例应用来验证整个流程:

# 创建Deploymentkubectl create deployment nginx-app --image=nginx# 暴露服务(NodePort类型)kubectl expose deployment nginx-app --port=80 --type=NodePort# 查看服务信息kubectl get service nginx-app# 记下PORT(S)列中的端口号(如31234)# 在浏览器中访问 http://你的服务器IP:端口号

如果看到Nginx欢迎页面,恭喜你!你已经成功在Ubuntu上完成了Ubuntu云原生部署的全过程。

总结

通过本教程,你学会了如何在Ubuntu系统上搭建完整的云原生基础设施,包括Docker容器运行时和Kubernetes集群。这是迈向生产级云原生应用的第一步。后续你可以探索Helm、Istio、Prometheus等高级工具,构建更强大的云原生生态系统。

记住,掌握云原生应用的核心在于理解其设计哲学:自动化、可观测性、弹性与松耦合。不断实践,你将成为云原生时代的开发者先锋!