nvalid 值:30004:提供的端口已分配

rɑː*_*dʒɑ 2 kubernetes kubectl minikube

我正在尝试为我已部署的 Pod 之一创建一个 Service: NodePort,

\n

以下是我的服务定义

\n
apiVersion: v1\nkind: Service\nmetadata:\n  name: voting-service\n  labels:\n    name: voting-service\n    app: demo-voting-app\nspec:\n  type: NodePort\n  ports:\n    - port: 80\n      targetPort: 80\n      nodePort: 30004\n  selector:\n    name: voting-app-pod\n    app: demo-voting-app\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
kubectl create -f voting-app-service.yaml \n
Run Code Online (Sandbox Code Playgroud)\n

这是错误

\n
The Service "voting-service" is invalid: spec.ports[0].nodePort: Invalid value: 30004: provided port is already allocated\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n
The Service "voting-service" is invalid: spec.ports[0].nodePort: Invalid value: 30004: provided port is already allocated\n
Run Code Online (Sandbox Code Playgroud)\n

minikube 版本: v1.22.0\nkubectl : 1.21 版本

\n

Ton*_*oni 6

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

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

kubectl 获取 svc | grep 30004