问题描述
嗨,documentation 提到了 container.ports 中的 name 字段:
name 如果指定,它必须是 IANA_SVC_NAME 并且在 pod 中是唯一的。 Pod 中的每个命名端口都必须具有唯一的名称。服务可以引用的端口名称。
我尝试按如下方式在我的服务中使用它,但解析器出现错误:
kind: Pod
apiVersion: v1
Metadata:
name: banana-app
labels:
app: banana
spec:
containers:
- name: banana-app
image: hashicorp/http-echo
args:
- "-text=banana"
ports:
- containerPort: 5678
name: bananaport
terminationGracePeriodSeconds: 0
---
kind: Service
apiVersion: v1
Metadata:
name: banana-service
spec:
selector:
app: banana
ports:
- port: bananaport
解析器错误是:
错误:验证“temp.yml”时出错:验证数据时出错:ValidationError(Service.spec.ports[0].port):io.k8s.api.core.v1.ServicePort.port 的无效类型:得到“字符串”,应为“整数”;如果您选择忽略这些错误,请使用 --validate=false 关闭验证
所以我想我没有正确使用端口名称。在我的服务中使用端口名称的正确方法是什么?
提前致谢, 阿卜杜勒加尼
解决方法
port
字段表示 Service
对象侦听的端口,targetPort
表示容器侦听的端口。
试试这个:
kind: Service
apiVersion: v1
metadata:
name: banana-service
spec:
selector:
app: banana
ports:
- port: 8080
targetPort: bananaport