kubernetes - Kubernetes:从 aconfig 获取端口?
问题描述
有什么方法可以从 a 为服务(和其他地方)注入端口值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"
解决方案
好的,所以我已经更深入地检查了它,看起来您无法在service.spec定义中对 ConfigMap 进行这样的引用。这种用法valueFrom
只能用于容器环境变量,如此处所述。
另一方面,您可以在您的 deployment.spec(在这种情况下为service.spec.ports.targetPort)中指定targetPort
名称,例如并在 deployment.spec 和 service.spec 之间mycustomport
引用它。mycustomport
根据Kubernetes API 参考文档的注释:
targetPort - 服务所针对的 pod 上要访问的端口号或名称。编号必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。如果这是一个字符串,它将在目标 Pod 的容器端口中作为命名端口进行查找。如果未指定,则使用“端口”字段的值(身份映射)。对于 clusterIP=None 的服务,该字段将被忽略,应省略或设置为等于“端口”字段。更多信息:https ://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
推荐阅读
- java - 返回多个 ArrayList
- python - 将文件元素读入邻接表
- java - 是否可以使用单个 memcached 服务器运行同一应用程序的多个实例?
- c# - 如何将 CDATA 与从 xsd.exe 生成的 C# 类一起使用?
- python - 如何使用已计算的 TFIDF 分数计算余弦相似度
- javascript - Angular 4在for循环中插入文件名
- .net - TeamCity:未满足的需求 DotNetFramework4.[56]
- python - 正则表达式匹配python中的json
- python - 对使用按钮 Python 创建的条目的值求和
- angular - 角通用未知错误