K8s中的containerPort与port、targetPort、nodePort的关系:

pod中的containerPort与service中的port、targetPort、nodePort的关系:

1、containerPort为pod的配置,对应pod内部服务监听的具体端口,例如nginx服务默认监听80端口,那么nginx的pod的containerPort应该配置为80,例如mysql默认监听3306,那么mysql的pod的containerPort应该配置为3306。

例如下面的简单例子:

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
  - name: nginx-container
    image: nginx:latest
    ports:
    - containerPort: 80

2、service配置中的port提供k8s集群内的pod间互访访问,可自定义,targetPort应该与要进行流量转发的目标pod的containerPort配置一致,nodePort只在svc类型为nodePort时使用,是将svc的port映射到宿主机操作系统接口

2.1、nodePort类型的service

yaml 复制代码
apiVersion: v1
kind: Service
metadata:
  name: nginx-service-nodeport
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80 #因与pod中的containerPort一致
      nodePort: 30001 #暴露到宿主机操作系统的端口,k8s集群外部可通过""节点ip:端口""访问集群内部的服务

2.2、clusterIP类型的service

此种类型的service只能通过k8s集群内部ip:内部端口访问,外部要访问的话需要配置网关或者改为nodePort类型的service

yaml 复制代码
apiVersion: v1
kind: Service
metadata:
  name: nginx-service-clusterip
spec:
  type: ClusterIP
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

3、关系图如下:

相关推荐
蝎子莱莱爱打怪20 小时前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
阿里云云原生4 天前
阿里云获评 Agentic AI 开发平台领导者,函数计算 AgentRun 赢下关键分!
云原生
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
崔小汤呀4 天前
Docker部署Nacos
docker·容器
缓解AI焦虑4 天前
Docker + K8s 部署大模型推理服务:资源划分与多实例调度
docker·容器
阿里云云原生4 天前
MSE Nacos Prompt 管理:让 AI Agent 的核心配置真正可治理
微服务·云原生
阿里云云原生5 天前
当 AI Agent 接管手机:移动端如何进行观测
云原生·agent
阿里云云原生5 天前
AI 原生应用开源开发者沙龙·深圳站精彩回顾 & PPT下载
云原生
阿里云云原生5 天前
灵感启发:日产文章 100 篇,打造“实时热点洞察”引擎
云原生
1candobetter5 天前
Docker Compose Build 与 Up 的区别:什么时候必须重建镜像
docker·容器·eureka