ktm*_*124 7 kubernetes kubectl
我想检索作用于 Kubernetes 服务的所有入口。
我可以使用命令获取命名空间中的入口kubectl get ingress -n <namespace>。
kubectl 中是否有命令可以让我获取作用于特定 Kubernetes 服务的入口?
Sam*_*Sam 12
要获取集群中的所有入口规则,您可以运行:
kubectl get ingress -A
Run Code Online (Sandbox Code Playgroud)
要获取所有入口规则(包括其使用的服务)的摘要,您可以运行以下命令:
kubectl describe ingress -A
Run Code Online (Sandbox Code Playgroud)
要获取 json 格式的完整入口对象,您可以运行以下命令:
kubectl get ingress -A -o json
Run Code Online (Sandbox Code Playgroud)
然后,您可以解析该 json 以获取使用的服务。
您可以列出所有入口对象及其相应的服务,如下所示:
> kubectl get ing -o=custom-columns='NAME:.metadata.name,SVCs:..service.name'
NAME SVCs
my-ingress my-products,my-discounted-products
my-ingress2 my-products,my-discounted-products
my-ingress3 my-products,my-discounted-products
my-ingress4 my-products11,my-discounted-products
my-ingress5 my-products22,my-discounted-products
neg-demo-ing neg-demo-svc
Run Code Online (Sandbox Code Playgroud)
如果您想过滤掉并仅获取给定服务名称的入口对象列表,您可以执行以下操作(需要安装 jq):
> kubectl get ing -o=json | jq '.items[] | select(..|.service?.name == "my-products") | .metadata.name'
"my-ingress"
"my-ingress2"
"my-ingress3"
Run Code Online (Sandbox Code Playgroud)
> kubectl get ing -o=json | jq '.items[] | select(..|.service?.name == "neg-demo-svc") | .metadata.name'
"neg-demo-ing"
Run Code Online (Sandbox Code Playgroud)
我一直在寻找一种方法来实现相同的目标,而无需仅使用额外的依赖项jsonpath,但似乎不可能在过滤器内进行递归下降。
| 归档时间: |
|
| 查看次数: |
25566 次 |
| 最近记录: |