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

Kubernetes - Ingress HTTP 负载搭建部署解决方案(新版本v1.21+)

在看这一篇之前,如果不了解 Ingress 在 K8s 当中的职责,建议看之前的一篇针对旧版本 Ingress 的部署搭建,在开头会提到它的一些简介Kubernetes - Ingress HTTP 负载搭建部署解决方案_放羊的牧码的博客-CSDN博客

 开始表演

1、kubeasz 一键安装部署 Ingress

kubectl apply -f https://raw.githubusercontent.com/qist/k8s/main/k8s-yaml/ingress-nginx/ingress-nginx-ipv4.yaml
  • 如果因为网络问题,建议先下载 ingress-nginx-ipv4.yaml 到 Linux 里面先,然后再执行即可
  • 如果之前对 kubeasz 脚手架没了解,建议可以先看看这篇文章噢~ Kubernetes - 一键安装部署 K8S(附:Kubernetes Dashboard)-CSDN博客文章浏览阅读792次。Kubernetes - 一键安装部署 K8S(附:Kubernetes Dashboard)https://lux-sun.blog.csdn.net/article/details/134000358

2、安装我们的服务应用 Service 对应的 Ingress

# nginx-ingress-controller-app-service.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: ingress-appnamespace: default # 跟我们的应用 pod 在一个 namespace 即可annotations: kubernetes.io/ingress.class: "nginx"
spec:rules:- host: api.app.com # 外部可以访问的域名http:paths:- path: /pathType: Prefixbackend:service:name: app-server # app service nameport: number: 38080 # app service port
kubectl apply -f nginx-ingress-controller-app-service.yaml

3、稍做分析

  • 附:app service yaml
kind: Service
apiVersion: v1
metadata:name: app-servernamespace: defaultuid: e462e330-ea68-41ea-b351-71680ea4c685resourceVersion: '576970'creationTimestamp: '2023-10-26T11:07:01Z'annotations:kubectl.kubernetes.io/last-applied-configuration: >{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"app-server","namespace":"default"},"spec":{"ports":[{"nodePort":38080,"port":38080,"protocol":"TCP","targetPort":38080}],"selector":{"app":"app-server"},"type":"NodePort"}}managedFields:- manager: kubectl-client-side-applyoperation: UpdateapiVersion: v1time: '2023-10-26T11:07:01Z'fieldsType: FieldsV1fieldsV1:f:metadata:f:annotations:.: {}f:kubectl.kubernetes.io/last-applied-configuration: {}f:spec:f:externalTrafficPolicy: {}f:internalTrafficPolicy: {}f:ports: {}f:selector: {}f:sessionAffinity: {}- manager: dashboardoperation: UpdateapiVersion: v1time: '2023-10-28T10:28:57Z'fieldsType: FieldsV1fieldsV1:f:spec:f:ports:k:{"port":12345,"protocol":"TCP"}:.: {}f:port: {}f:protocol: {}f:targetPort: {}f:type: {}
spec:ports:- protocol: TCPport: 12345targetPort: 38080selector:app: app-serverclusterIP: 10.68.184.146clusterIPs:- 10.68.184.146type: ClusterIPsessionAffinity: NoneipFamilies:- IPv4ipFamilyPolicy: SingleStackinternalTrafficPolicy: Cluster
status:loadBalancer: {}
  • 重点关注 spec.ports 部分,service 这里的 targetPort = app port,port =  ingress port-number
  • 最后,可以用 api.app.com:80 访问即可命中这个程序~ 为什么这里就可以用 80 来访问呢?因为 Ingress-Controller 一键安装完后默认开放了 80、443、8443 端口噢!
  • 彩蛋:如果外部想用 port 12345 来访问 pod 该如何修改配置呢?!前提 38080 不变的情况下~欢迎评论哈!
http://www.lryc.cn/news/209530.html

相关文章:

  • 刚刚:腾讯云3年轻量2核2G4M服务器优惠价格366元三年
  • `include指令【FPGA】
  • iphone备份后怎么转到新手机,iphone备份在哪里查看
  • JAVA毕业设计106—基于Java+Springboot的外卖系统(源码+数据库)
  • SpringCore完整学习教程4,入门级别
  • 如何能在项目具体编码实现之前能尽可能早的发现问题并解决问题
  • Windows server服务器允许多用户远程的设置
  • Vmware下的虚拟机NAT连接后仍然木有网络
  • 2.Vue — 模板语法、数据绑定、el与data的写法、数据代理
  • 管理类联考——数学——汇总篇——知识点突破——数据分析——记忆
  • springboot+mybatis-plus实现读写分离
  • java将list转为逗号隔开字符串,将逗号连接的字符串转成字符数组,​将逗号分隔的字符串转换为List​(Java逗号分隔-字符串与数组相互转换)
  • 2023高频前端面试题-CSS
  • 我会在以下情况用到GPT
  • 33:深入浅出x86中断机制
  • docker docker-compose安装(centos7)
  • Dockerfile文件详细教程
  • 机器学习-模型评估与选择
  • 分享一下办公自动化常用的思想
  • mac vscode 使用 clangd
  • DSI及DPHY的学习
  • 环形链表(C++解法)
  • 星闪技术 NearLink 一种专门用于短距离数据传输的新型无线通信技术
  • 【Python机器学习】零基础掌握RandomForestRegressor集成学习
  • FreeRTOS深入教程(任务创建的深入和任务调度机制分析)
  • Megatron-LM GPT 源码分析(一) Tensor Parallel分析
  • 分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测
  • 婚礼的魅力
  • 【计算机网络笔记】DNS报文格式
  • 10月28日