显示/展开隐藏在“+1 more...”后面的所有Kubernetes端点

mo49yndu  于 2023-01-25  发布在  Kubernetes
关注(0)|答案(2)|浏览(220)

这似乎是一个愚蠢的问题,但是我如何从端点列表中扩展"+1 more ..."?
我特别希望看到服务的所有端点,下面的命令隐藏了"+1 more ..."后面的一些端点。

kubectl describe service <name>

我试过这个:

kubectl get endpoints -o wide

它还是没有显示隐藏的那个。
谢谢

lmvvr0a8

lmvvr0a81#

您可以使用以下命令:kubectl describe endpoints <endpoint name>
例如,kubectl get endpoints -o wide的输出:

NAME                                         ENDPOINTS                                                              AGE
traefik-dashboard                            10.52.171.114:8080,10.52.171.120:8080,10.52.171.134:8080 + 1 more...   64d

kubectl describe endpoints traefik-dashboard的输出:

Name:         traefik-dashboard
Namespace:    default
Labels:       app=traefik
              chart=traefik-1.87.7
              heritage=Helm
              release=traefik
Annotations:  endpoints.kubernetes.io/last-change-trigger-time: 2021-03-03T17:23:55Z
Subsets:
  Addresses:          10.52.171.114,10.52.171.120,10.52.171.134,10.52.171.8
  NotReadyAddresses:  <none>
  Ports:
    Name            Port  Protocol
    ----            ----  --------
    dashboard-http  8080  TCP

Events:  <none>

如您所见,它列出了端点中的所有IP地址。

wj8zmpe1

wj8zmpe12#

一个有趣的方法是输出json并提取相关字段。如果你想在之后分析输出,这是很有用的。如果你有多个名称空间,你可能想添加名称空间。
单一命令:

kubectl get endpoints -o jsonpath="{range .items[*]}{.metadata.name},{.subsets[*].addresses[*].ip}{'\n'}{end}"

巴什脚本

#!/usr/bin/env bash

for service in `kubectl get endpoints -o jsonpath="{range .items[*]}{.metadata.name},{.subsets[*].addresses[*].ip}{'\n'}{end}"`; do
  echo $service | awk -F, {'print $1'}
  for endpoint in $(echo $services | awk -F, {'print $2'}); do
    echo $endpoint
  done
done

相关问题