使用curl调用k8s apiserver接口如何通过ingress配置中的host字段和path字段内容进行过滤用以获取到符合要求的ingress对象
要通过curl调用K8s API Server接口来获取符合要求的Ingress对象,你可以使用以下步骤:
- 首先,使用以下命令获取Kubernetes API Server的访问凭证(Token):
TOKEN=$(kubectl get secret <secret-name> -n <namespace> -o jsonpath='{.data.token}' | base64 -d)
其中,<secret-name>是用于访问API Server的凭证名称,<namespace>是Ingress所属的命名空间。
- 然后,使用以下命令获取API Server的地址:
APISERVER=$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}')
- 接下来,使用curl命令调用API Server的
/apis/networking.k8s.io/v1/ingresses接口,传递过滤条件参数host=<host-value>和path=<path-value>,并使用之前获取的Token作为认证凭证:
curl -k -H "Authorization: Bearer $TOKEN" $APISERVER/apis/networking.k8s.io/v1/ingresses?fieldSelector=spec.rules.host=<host-value>,spec.rules.http.paths.path=<path-value>
其中,<host-value>和<path-value>分别替换为你想要过滤的Host字段和Path字段的内容。
- 最后,通过curl命令返回的结果即可获取到符合要求的Ingress对象。
注意:上述命令中,-k参数用于忽略证书验证,仅在测试环境中使用。在生产环境中,应使用正确的证书来确保安全性
原文地址: https://www.cveoy.top/t/topic/iyiy 著作权归作者所有。请勿转载和采集!