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

相关推荐
m0_7415747526 分钟前
k8s的service
云原生·容器·kubernetes
鼠鼠我捏,要死了捏2 小时前
蓝绿发布与滚动更新:基于Kubernetes的微服务零停机切换实战指南
微服务·kubernetes·blue-green
xiao-xiang4 小时前
k8s下的发布策略详解
云原生·容器·kubernetes·部署·cicd·发布
优秀的老黄4 小时前
Docker部署RabbitMQ
linux·运维·docker·中间件·容器·centos·rabbitmq
Lin_Aries_04214 小时前
容器使用卷
linux·运维·docker·云原生·容器·eureka
寒士obj5 小时前
Docker的使用及核心命令
运维·docker·容器
邂逅星河浪漫5 小时前
【Docker-Nginx】通过Docker部署Nginx容器
nginx·docker·容器
Dontla5 小时前
Docker Compose healthcheck介绍(监控容器中服务的实际健康状态)数据库健康检查pg_isready
数据库·docker·容器
HeXDev6 小时前
【Docker】一键将运行中的容器打包成镜像并导出
运维·docker·容器
有谁看见我的剑了?6 小时前
k8s-临时容器学习
学习·容器·kubernetes