【问题标题】:nvalid value: 30004: provided port is already allocated无效值:30004:提供的端口已分配
【发布时间】:2021-10-07 06:45:22
【问题描述】:

我正在尝试为我已部署的其中一个 pod 创建一个服务:NodePort,

以下是我的服务定义

apiVersion: v1
kind: Service
metadata:
  name: voting-service
  labels:
    name: voting-service
    app: demo-voting-app
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30004
  selector:
    name: voting-app-pod
    app: demo-voting-app

我正在使用以下命令部署此服务

kubectl create -f voting-app-service.yaml 

这是错误

The Service "voting-service" is invalid: spec.ports[0].nodePort: Invalid value: 30004: provided port is already allocated

所以我尝试使用 netstat 和 lsof 命令查找使用端口 30004 的服务,但找不到使用该端口的任何服务。

➜  Voting-app kubectl create -f voting-app-service.yaml
The Service "voting-service" is invalid: spec.ports[0].nodePort: Invalid value: 30004: provided port is already allocated
➜  Voting-app sudo netstat -lntp | grep 30004     
➜  Voting-app lsof -i :30004                      
➜  Voting-app 

minikube 版本:v1.22.0 kubectl : 1.21 版本

【问题讨论】:

  • 您可以在服务文件中更改端口并应用它。
  • @HarshManvar 是的,我同意你的观点,即使端口是空闲的,我如何才能找到为什么会出现此错误?
  • 找到它,我的另一个 pod 使用该端口,使用 kubectl get svc 命令得到它。

标签: kubernetes kubectl minikube


【解决方案1】:

正如@HarshManvar 提到的,您可以在服务文件中将端口更改为未分配的端口。

后来你发现 30004 端口已经被分配了,因为有一个 pod 正在使用该端口:

kubectl 获取 svc | grep 30004

【讨论】:

    猜你喜欢
    • 2017-05-22
    • 2021-11-29
    • 2014-09-25
    • 2019-09-01
    • 2022-11-19
    • 2022-10-07
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    相关资源
    最近更新 更多