gpt4 book ai didi

kubernetes - 使用 go-template 从 kubectl 输出中提取 LoadBalancer 名称

转载 作者:行者123 更新时间:2023-12-01 03:11:55 25 4
gpt4 key购买 nike

我正在尝试编写一个提取负载均衡器值的 go 模板。使用 --go-template={{status.loadBalancer.ingress}}返回 [map[hostname:GUID.us-west-2.elb.amazonaws.com]]%当我添加 .hostname对于模板,我收到一条错误消息,“无法评估类型接口(interface) {} 中的字段主机名”。我试过使用 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"
}
]
}
}
}

最佳答案

从 JSON 中可以看出,入口元素是一个数组。您可以使用 template function index捕获这个数组元素。

尝试:

kubectl get svc <name> -o=go-template --template='{{(index .status.loadBalancer.ingress 0 ).hostname}}'

这当然是假设您只配置一个负载均衡器,如果您有多个,则必须使用范围

关于kubernetes - 使用 go-template 从 kubectl 输出中提取 LoadBalancer 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51600461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com