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

yaml 复制代码
server:
  port: 10001
  servlet:
    context-path: /ykhd/api/xpwfxfjfl
2. Dockerfile 的 EXPOSE 声明

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

Dockerfile 复制代码
EXPOSE 31002
3. Kubernetes Deployment 配置

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

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ykhd-zhjgyw-xpwfxfjfl
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ykhd-zhjgyw-xpwfxfjfl
  template:
    metadata:
      labels:
        app: ykhd-zhjgyw-xpwfxfjfl
    spec:
      containers:
      - name: ykhd-zhjgyw-xpwfxfjfl
        image: your-docker-image
        ports:
        - containerPort: 10001  # 容器内部的实际端口

在 Rancher 的 UI 中,可以直接通过 "容器端口" 设置 10001 端口。容器之间可以通信。

4. Kubernetes Service 配置

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

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

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

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

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

  • 集群内部访问

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

    bash 复制代码
    http://ykhd-zhjgyw-xpwfxfjfl:10001/ykhd/api/xpwfxfjfl
  • 外部访问(使用 NodePort 或 LoadBalancer)

    如果你使用 NodePortLoadBalancer,可以通过外部的节点 IP 和 31002 端口访问:

    bash 复制代码
    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:通过负载均衡器暴露外部访问。
相关推荐
上火的金鱼妹30 分钟前
K8S基础组件作用和关系整理
linux·运维·服务器·kubernetes
虹科网络安全1 小时前
使用艾体宝 IOTA 10 CORE+ 监控企业网络中的 AI 流量
网络·人工智能
醉颜凉1 小时前
网络安全必学:粘性MAC地址(Sticky MAC)原理与应用全解析
运维·服务器·网络·安全·web安全
广州灵眸科技有限公司3 小时前
从手动三步到上电即连:4G模组systemd开机自连方案
linux·运维·服务器·开发语言·网络·人工智能·php
埃科光电3 小时前
16K万兆网口彩色线阵相机:四倍带宽 高速真彩检测新方案
网络·图像处理·数码相机·计算机视觉·制造·相机
运维全栈笔记4 小时前
Windows 安装 WSL2 并运行 Ubuntu 24.04 指南
linux·网络·windows·ubuntu
qq_452396234 小时前
第十篇:《eBPF 可观测性:零侵扰的深度内核追踪》
服务器·网络·php
迪康Defender5 小时前
政企内网终端安全建设:资产‑管控‑防护‑审计闭环能力拆解
运维·网络·安全·web安全·终端安全管理
晓天衡宇•评测社区5 小时前
Seedance 2.5 登顶图生视频榜单,Wan 3.0 在游戏与教育场景进入前列
前端·javascript·网络
charliejohn5 小时前
计算机考研 408 网络 以太网、ARP、NAT、DHCP概念
网络·计算机网络