Kubernetes: get port from aconfig?



是否有办法从ConfigMap注入服务(和其他地方)的端口值?试:

apiVersion: v1
kind: Service
metadata:
name: service
namespace: namespace
spec:
ports:
- port: 80
targetPort:
valueFrom:
configMapKeyRef:
name: config
key: PORT
protocol: TCP
selector:
app: service

但是得到一个错误

ValidationError(Service.spec.ports[0].targetPort): invalid type for io.k8s.apimachinery.pkg.util.intstr.IntOrString: got "map", expected "string"

好的,我已经更深入地检查了它,看起来你不能在服务中对ConfigMap做这样的引用。规范定义。valueFrom的这种用法只能用于这里描述的容器环境变量。

另一方面,您可以在部署中指定。spec(在这种情况下service.spec.ports.targetPort)通过名称指定targetPort,例如mycustomport并在部署之间引用此mycustomport。Spec和service.spec.

根据Kubernetes API参考文档的注释:

targetPort -服务要访问的pod上的端口号或名称。取值范围为1 ~ 65535。名称必须为IANA_SVC_NAME。如果这是一个字符串,它将作为一个命名端口在目标Pod的容器端口中查找。如果未指定,则使用'port'字段的值(标识映射)。对于clusterIP=None的服务,该字段将被忽略,应该省略或设置为与'port'字段相等。更多信息:https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service

相关内容

  • 没有找到相关文章

最新更新