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、关系图如下:

相关推荐
码上上班4 小时前
docker课程
java·docker·容器
取谖慕12.7 小时前
Docker容器从入门到精通
docker·容器·eureka
人间凡尔赛9 小时前
K8s 十年之变:从 Cloud Native 到 AI Native,2026 年后端架构的范式革命
后端·云原生·架构
名字还没想好☜10 小时前
Kubernetes CrashLoopBackOff 排查全流程:从 describe 到日志到 exit code
运维·docker·云原生·容器·kubernetes
冰封之寂10 小时前
Docker 部署与基础命令详解:从安装到容器管理全流程指南
linux·运维·docker·容器
Cloud云卷云舒11 小时前
AI Agent记忆系统:分层记忆体系的技术架构与实践
云原生·ai-native·haishandb
Ulyanov11 小时前
Python雷达电子对抗仿真引擎(一):打破单体瓶颈,构建微服务与ECS架构的顶层设计
开发语言·python·微服务·云原生·架构·雷达电子对抗
spider_xcxc13 小时前
Helm 部署 K8s 集群完整笔记
java·开发语言·kubernetes
窝子面13 小时前
认识Docker与启动容器与镜像的关系
运维·docker·容器
spider_xcxc1 天前
基于项目实际 k8s/ 目录 YAML 文件的完整学习指南。
云原生·容器·kubernetes