库伯克尔 |错误代码:[无效值:30004:提供的端口已分配]

时间:2021-08-01 17:11:34

标签: kubernetes kubectl minikube

我正在尝试为我部署的其中一个 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 版本

任何帮助,非常感谢。

1 个答案:

答案 0 :(得分:0)

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

后来您发现端口 30004 已经分配,​​因为有一个 pod 使用该端口:

<块引用>

kubectl 获取 svc | grep 30004