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

k8s系列-Rancher 上操作的k8s容器网络配置总结

Rancher 上操作的k8s容器网络配置总结

要在 Rancher 中配置Spring Boot 应用 ykhd-zhjgyw-xpwfxfjfl 服务,正确的配置方式如下:

1. 应用程序监听端口

application.yaml 文件中,配置的应用监听端口是 10001,并且应用的上下文路径是 /ykhd/api/xpwfxfjfl。也就是说,Spring Boot 应用在容器内部的 10001 端口上运行,并将所有 API 请求映射到 /ykhd/api/xpwfxfjfl

server:port: 10001servlet:context-path: /ykhd/api/xpwfxfjfl
2. Dockerfile 的 EXPOSE 声明

Dockerfile 中,尽管 EXPOSE 声明了 31002 端口,**这只是告知 Docker 哪个端口准备接受连接,但并不影响实际应用监听的端口。**因为应用实际监听的端口是 10001,在 Kubernetes 配置中,我们需要使用 10001 端口作为容器内部的端口,而不需要更改 Dockerfile。可以多申明几个。

EXPOSE 31002
3. Kubernetes Deployment 配置

Deployment 中,需要明确指定容器运行的端口 10001,即应用程序实际监听的端口。你可以通过 Rancher UI 或者 YAML 配置来定义 containerPort

apiVersion: apps/v1
kind: Deployment
metadata:name: ykhd-zhjgyw-xpwfxfjfl
spec:replicas: 1selector:matchLabels:app: ykhd-zhjgyw-xpwfxfjfltemplate:metadata:labels:app: ykhd-zhjgyw-xpwfxfjflspec:containers:- name: ykhd-zhjgyw-xpwfxfjflimage: your-docker-imageports:- containerPort: 10001  # 容器内部的实际端口

在 Rancher 的 UI 中,可以直接通过 “容器端口” 设置 10001 端口。容器之间可以通信。
在这里插入图片描述

4. Kubernetes Service 配置

为了让其他服务或外部访问到该服务,需要使用 Kubernetes Service 对象。你可以选择 ClusterIP(只在集群内部访问),或者 NodePort(通过集群节点暴露外部访问),甚至 LoadBalancer(通过云提供商的负载均衡器对外暴露)。

  • ClusterIP:如果不需要外部访问,仅供集群内部其他服务访问。
  • NodePort:用于将服务通过集群节点对外暴露。
  • LoadBalancer:如果你有云提供商的负载均衡器,可以对外暴露服务。
apiVersion: v1
kind: Service
metadata:name: ykhd-zhjgyw-xpwfxfjfl
spec:type: NodePort  # 或者 ClusterIP,取决于访问需求selector:app: ykhd-zhjgyw-xpwfxfjflports:- protocol: TCPport: 10001       # Kubernetes Service 监听的端口targetPort: 10001  # 容器内部的应用实际运行端口nodePort: 31002   # 如果是 NodePort,可以指定外部访问的端口

在 Rancher UI 中,具体操作步骤:

  • 选择 ClusterIPNodePort
  • 设置 私有容器端口10001,这个是实际应用监听的端口。
  • 如果是 NodePort,可以手动设置 NodePort31002,这样外部访问时,可以通过 http://<Node_IP>:31002 访问服务。
5. 访问服务

根据需求,以下两种方式可以访问服务:

  • 集群内部访问
    如果使用 ClusterIP 类型,集群内的其他服务可以通过服务名称和端口 10001 访问:

    http://ykhd-zhjgyw-xpwfxfjfl:10001/ykhd/api/xpwfxfjfl
    
  • 外部访问(使用 NodePort 或 LoadBalancer)
    如果你使用 NodePortLoadBalancer,可以通过外部的节点 IP 和 31002 端口访问:

    http://<Node_IP>:31002/ykhd/api/xpwfxfjfl
    

总结:

  1. Spring Boot 应用监听端口:10001(在 application.yaml 中配置)。
  2. 容器声明的 EXPOSE 端口:31002(无需修改 Dockerfile,仅为声明)。
  3. Kubernetes 部署:在 Deployment 中,确保 containerPort 设置为 10001,即应用程序实际监听的端口。
  4. Kubernetes 服务类型
    • ClusterIP:内部服务访问。
    • NodePort:外部通过 31002 访问,映射到应用的 10001 端口。
    • LoadBalancer:通过负载均衡器暴露外部访问。
http://www.lryc.cn/news/461892.html

相关文章:

  • 2024年【氯化工艺】考试题库及氯化工艺考试内容
  • 从commit校验失效问题探究husky原理
  • Azure OpenAI 服务上线具有音频和语音功能的 GPT-4o-Realtime-Preview,免费申请试用
  • 基于IMX6UL的EPIT的定时器实验
  • FreeMarker模板引擎入门:从基础到实践的全面指南
  • YOLOv8模型改进 第十讲 添加全维度动态卷积(Omni-dimensional Dynamic Convolution,ODConv)
  • 【环境搭建】远程服务器搭建ElasticSearch
  • 机器学习与神经网络:诺贝尔物理学奖的新篇章
  • 倍福TwinCAT程序中遇到的bug
  • R语言实现logistic回归曲线绘制
  • 零宽字符(ZWSP)
  • 作业 定时发送邮件
  • 【排序】——2.快速排序法(含优化)
  • AnaTraf | 网络分析系统:高效IT运维工具
  • 踩坑日记:线上接口超时问题排查
  • C语言中的段错误(Segmentation Fault):底层原理及解决方法
  • 1.两数之和 暴力枚举和暴力搜索法
  • 你的收入达到了缴纳个人所得税的标准了吗?
  • 【C++贪心】2086. 喂食仓鼠的最小食物桶数|1622
  • notepad++中实现代码整体缩进和退格
  • 如何调整配置请款单上的立账条件
  • 骨传导耳机精选:2024最佳骨传导耳机有哪些?分享骨传导耳机top5
  • for循环与webAPI练习题
  • FLUX | 轻松掌握FLUX.1 LoRA本地训练秘籍!
  • LeetCode 每日一题 最小元素和最大元素的最小平均值
  • PHP学习记录-编辑器推荐和本地环境的安装
  • 嵌套div导致子区域margin失效问题解决
  • 搭建app业务的服务器优势类型用途等
  • 基于Springboot+Vue的个性化推荐影院(含源码数据库)
  • SpringMVC后台控制端校验-表单验证深度分析与实战优化