Jer*_*wan 5 go-templates kubernetes
我正在尝试编写一个 go 模板来提取负载均衡器的值。使用--go-template={{status.loadBalancer.ingress}}返回[map[hostname:GUID.us-west-2.elb.amazonaws.com]]%当我添加.hostname到模板时,我收到一条错误消息:“无法评估类型接口 {} 中的字段主机名”。我尝试过使用range关键字,但我似乎无法正确理解语法。
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"creationTimestamp": "2018-07-30T17:22:12Z",
"labels": {
"run": "nginx"
},
"name": "nginx-http",
"namespace": "jx",
"resourceVersion": "495789",
"selfLink": "/api/v1/namespaces/jx/services/nginx-http",
"uid": "18aea6e2-941d-11e8-9c8a-0aae2cf24842"
},
"spec": {
"clusterIP": "10.100.92.49",
"externalTrafficPolicy": "Cluster",
"ports": [
{
"nodePort": 31032,
"port": 80,
"protocol": "TCP",
"targetPort": 8080
}
],
"selector": {
"run": "nginx"
},
"sessionAffinity": "None",
"type": "LoadBalancer"
},
"status": {
"loadBalancer": {
"ingress": [
{
"hostname": "GUID.us-west-2.elb.amazonaws.com"
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
从 JSON 中可以看出,入口元素是一个数组。您可以使用模板函数索引来获取该数组元素。
尝试:
kubectl get svc <name> -o=go-template --template='{{(index .status.loadBalancer.ingress 0 ).hostname}}'
Run Code Online (Sandbox Code Playgroud)
当然,这是假设您只配置一个负载均衡器,如果您有多个,则必须使用 range
| 归档时间: |
|
| 查看次数: |
1881 次 |
| 最近记录: |