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

kubernetes对于一个nginx服务的增删改查

1、创建 Nginx 服务

1.1、创建 Deployment

Deployment 用于管理 Pod 副本和更新策略。

方式一:命令式创建

kubectl create deployment nginx-deployment --image=nginx:latest --replicas=3 --port=80

--replicas=3:指定副本数为 3
--port=80:容器暴露的端口

方式二:YAML 文件创建
推荐优先使用 YAML 文件:便于版本控制和复用(例如 Git 管理)
创建 nginx-deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

应用配置:

kubectl apply -f nginx-deployment.yaml

1.2、创建 Service

Service 用于暴露 Pod 的网络访问。

方式一:命令式创建 NodePort 类型 Service

kubectl expose <资源类型> <资源名称> --port=<Service暴露端口> --target-port=<容器端口> [其他参数]
kubectl expose deployment nginx-deployment --type=NodePort --port=80 --target-port=80 --name=nginx-service

--type=NodePort:通过节点 IP 和端口访问
--target-port=80:Pod 中容器实际监听的端口,需与容器定义一致(如 Dockerfile 中的 EXPOSE)
--port:Service 对外暴露的端口,集群内其他组件通过此端口访问服务。

方式二:YAML 文件创建
创建 nginx-service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

应用配置:

kubectl apply -f nginx-service.yaml

2、查询 Nginx 服务状态

2.1、查看 Deployment 和 Pod

kubectl get deployments,pods -l app=nginx

-l app=nginx:通过标签过滤。
标签管理:通过 -l 筛选资源,确保 Service 正确关联 Pod。

2.2、查看 Service

kubectl get svc nginx-service

输出示例:

NAME            TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
nginx-service   NodePort   10.96.123.45   <none>        80:31000/TCP   5m

访问地址:http://:31000

2.3、查看详细信息

kubectl describe deployment nginx-deployment  # 查看 Deployment 详情
kubectl describe pod nginx-deployment-xxxxx  # 查看 Pod 日志和事件

3、修改 Nginx 服务

3.1、扩展副本数

kubectl scale deployment nginx-deployment --replicas=5

3.2、更新镜像版本

kubectl set image deployment/nginx-deployment nginx=nginx:1.25

3.3、通过 YAML 文件更新

修改 nginx-deployment.yaml 后执行:

kubectl apply -f nginx-deployment.yaml

4、删除 Nginx 服务

4.1、删除 Deployment

kubectl delete deployment nginx-deployment

关联的 Pod 会自动删除

4.2、删除 Service

kubectl delete svc nginx-service

4.3、通过 YAML 文件删除

kubectl delete -f nginx-deployment.yaml -f nginx-service.yaml

5、常见问题排查

Pod 未启动

kubectl logs nginx-deployment-xxxxx       # 查看 Pod 日志
kubectl describe pod nginx-deployment-xxxxx  # 检查事件和资源限制

服务无法访问

kubectl get endpoints nginx-service  # 检查后端 Pod IP 是否正常

回滚版本

kubectl rollout undo deployment/nginx-deployment  # 回滚到上一版本

命名空间:若需隔离环境,可添加 -n 参数(如 -n dev)

相关文章:

  • Linux内核网络驱动中的队列选择机制深度解析
  • log4j2漏洞
  • 案例驱动的 IT 团队管理:创新与突破之路:第一章 重构 IT 团队管理:从传统到创新-1.1.1技术迭代加速与人才断层
  • 量子计算 × 虚拟现实:未来科技的双剑合璧
  • 电子电气架构 --- 汽车面对软件怎么“破局“?
  • Linux驱动开发进阶 - 文件系统
  • TS常见内置映射类型的实现及应用场景
  • Emacs 折腾日记(十七)——文本属性
  • Spark Sql 简单校验的实现
  • 大模型-提示词调优
  • 使用VSCode开发STM32补充(Debug调试)
  • Django连接MySQL
  • 徒手打造个人AI Agent:基于DeepSeek-R1+websearch从零构建类Manus深度探索智能体AI-Research
  • python爬虫Scrapy(5)之增量式
  • 使用Java调用Windows通知并显示自定义图标
  • 使用memmove优化插入排序
  • 【专项测试】限流测试
  • maven的安装配置
  • 【数据结构】线性表简介
  • 重要!!! 什么是梯度方差 ; AdaLoRA中的Fisher信息矩阵:核心作用与通俗举例
  • 康巴什网站建设/互联网广告优势
  • 个人网站建设总结/今天刚刚的最新新闻
  • 做网站用ui好还是ps/竞价托管选择微竞价
  • 西安网站建设雄账号/自有品牌如何推广
  • 青岛网站建设/新闻 最新消息
  • 专做特卖的网站/武汉百捷集团百度推广服务有限公司