使用 k8s 快速部署应用服务
以下是一个完整的例子,展示了如何使用Kubernetes部署一个简单的Web应用程序。这个例子包括一个Deployment和一个Service。
首先,创建一个名为webapp-deployment.yaml
的Deployment配置文件:
apiVersion: apps/v1 kind: Deployment metadata: name: webapp-deployment spec: replicas: 2 selector: matchLabels: app: webapp template: metadata: labels: app: webapp spec: containers: - name: webapp image: nginx:latest ports: - containerPort: 80
这个Deployment配置将创建一个名为webapp-deployment
的Deployment,它包含两个副本的Pods,每个Pod都运行一个Nginx容器,监听80端口。
接下来,创建一个名为webapp-service.yaml
的Service配置文件:
apiVersion: v1 kind: Service metadata: name: webapp-service spec: selector: app: webapp ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer
这个Service配置将创建一个名为webapp-service
的Service,它将外部请求的80端口转发到标签为app: webapp
的Pods的80端口。type: LoadBalancer
指示云提供商为Service提供一个外部可访问的负载均衡器。
现在,使用kubectl
命令来创建这些资源:
kubectl apply -f webapp-deployment.yaml
kubectl apply -f webapp-service.yaml
检查Deployment和Pods的状态:
kubectl get deployment webapp-deployment
kubectl get pods -l app=webapp
检查Service的状态,并获取外部访问的IP地址(如果是LoadBalancer类型):
kubectl get service webapp-service
如果一切正常,你应该能够看到Pods正在运行,Service已经分配了一个外部IP地址。你可以通过浏览器访问这个IP地址来查看Nginx的默认欢迎页面。
如果你需要更新应用程序,比如使用一个新版本的Nginx镜像,你只需要更新webapp-deployment.yaml
文件中的镜像标签,并重新应用配置:
containers:
- name: webapp
image: nginx:1.19.0 # 更新为新的镜像版本
ports:
- containerPort: 80
然后运行:
kubectl apply -f webapp-deployment.yaml
Kubernetes将执行滚动更新,逐步替换旧的Pods,而不会中断服务。
请记住,这个例子假设你已经有一个Kubernetes集群在运行,并且你的kubectl配置正确。如果你使用的是云服务提供商的Kubernetes服务,LoadBalancer类型的Service将自动为你创建一个外部负载均衡器。如果你在本地或没有负载均衡器的环境中运行,你可能需要使用NodePort或其他方法来暴露你的服务。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-04-26 PHP 设计模式之观察者模式
2020-04-26 PHP 设计模式之三种工厂模式
2020-04-26 PHP 设计模式之单例模式
2019-04-26 Mac下安装pear库+phpDocumentor