以下是一个完整的例子,展示了如何使用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或其他方法来暴露你的服务。

原文地址:https://www.ryanzoe.top/k8s/%e4%bd%bf%e7%94%a8-k8s-%e5%bf%ab%e9%80%9f%e9%83%a8%e7%bd%b2%e5%ba%94%e7%94%a8%e6%9c%8d%e5%8a%a1/

 

使用 k8s 快速部署应用服务的更多相关文章

  1. 菜鸟系列k8s——快速部署k8s集群

    快速部署k8s集群 1. 安装Rancher Rancher是业界唯一完全开源的企业级容器管理平台,为企业用户提供在生产环境中落地使用容器所需的一切功能与组件. Rancher2.0基于Kuberne ...

  2. k8s入门系列之guestbook快速部署

    k8s集群以及一些扩展插件已经安装完毕,本篇文章介绍一下如何在k8s集群上快速部署guestbook应用. •实验环境为集群:master(1)+node(4),详细内容参考<k8s入门系列之集 ...

  3. 【k8s】kubeadm快速部署Kubernetes

    1.Kubernetes 架构图 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Mast ...

  4. 使用RKE快速部署k8s集群

    一.环境准备 1.1环境信息 IP地址 角色 部署软件 10.10.100.5 K8s Master Etcd.Control 10.10.100.17 K8s Worker1 Worker 10.1 ...

  5. K8S环境快速部署Kafka(K8S外部可访问)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. 开发阶段,将SpringBoot应用快速部署到K8S

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. 通过kubeadm快速部署K8S集群

    kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm i ...

  8. 在 K8S 中快速部署 Redis Cluster & Redisinsight

    Redis Cluster 部署 使用 Bitnami helm chart 在 K8S redis 命名空间中一键部署 Redis cluster . helm repo add bitnami h ...

  9. 使用kubeadm快速部署一套K8S集群

    一.Kubernetes概述 1.1 Kubernetes是什么 Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8S. K8S用于容器化应用程序的 ...

  10. 快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana)

    快速搭建应用服务日志收集系统(Filebeat + ElasticSearch + kibana) 概要说明 需求场景,系统环境是CentOS,多个应用部署在多台服务器上,平时查看应用日志及排查问题十 ...

随机推荐

  1. Python字符串进化史:从青涩到成熟的蜕变

    Python字符串进化史:从青涩到成熟的蜕变 Python 2.x 的字符串世界 在 Python 2.x 的时代,字符串处理已经是编程中的基础操作,但与现在相比,有着不少差异.在 Python 2. ...

  2. KOL合作流程混乱?这11款工具让管理效率翻倍(附选型指南)

    在内容营销成为品牌增长关键战场的今天,KOL(Key Opinion Leader,关键意见领袖)已不再只是"投广告"的对象,而是内容共创.品牌心智渗透.用户转化的核心资源.然而, ...

  3. kubernetes集群GPU支持方案

    一.kubernetes对GPU的支持版本 kubernetes提供对分布式节点上的AMD GPU和NVIDIA GPU管理的实验性的支持.在V1.6中已经添加了对NVIDIA GPU的支持,并且经历 ...

  4. 使用Spread控件构建Checkbook工程的技术指南

    引言 在现代Web应用开发中,电子表格控件已成为处理财务数据.报表展示等场景的重要工具.葡萄城的Spread控件作为一款功能强大的ASP.NET表格组件,为开发者提供了丰富的API和灵活的定制能力.本 ...

  5. Java源码分析系列笔记-14.ThreadPool

    目录 1. 是什么 2. 如何使用 3. 原理分析 3.1. uml 3.2. 构造方法 3.3. set方法 3.3.1. 先获取Thread对应的ThreadLocalMap 3.3.2. 有的话 ...

  6. 彻底禁用Windows更新与安全中心【小白友好】

    首先我们需要临时关闭安全中心 1.选择开始图标,点击"设置". 2.找到隐私和安全性后,进入"Windows安全中心" 3.点击开启Windows安全中心. 4 ...

  7. nginx二级域名代理

    二级域名带ssl证书代理 在nginx配置文件,增加代理配置服务 server { listen 443 ssl; #SSL协议访问端口号为443.此处如未添加ssl,可能会造成Nginx无法启动. ...

  8. CMake 实践 小结

    网上已经有很多的CMake的总结也好博客也好. 全当个人的记录.如果有错误务必留言. what is CMake? 一般来说就是一个自动生成makefile的工具.--脚本语言. why learn ...

  9. java 数据传递? 两个对话框之间

    简介 java 数据传递,简单通过类对象传递? 两个对话框之间 Q&A 但是不知道是如何实现模态的对话框的,看了几遍也还不知道? JDialog 第二个参数就是模态和非模态的选择 code p ...

  10. SciTech-BigDataAIML-paperswithcode.com-Datasets+Method+Code: 这网站上有丰富的"数据集"+Papers论文+Code代码实现

    https://paperswithcode.com/ 这网站上有丰富的"数据集"+Papers论文+Code代码实现