kubectl-将资源配额值格式化为json格式

时间:2019-05-22 06:28:44

标签: json kubernetes kubectl

获取kubernetes中资源配额值的一种方法是使用以下命令

      public async Task InvokeAsync(HttpContext httpContext, IConfiguration configuration)
                {

                            var isAuthorized = Authorize();

                            if (isAuthorized)
                            {
                               ..do your stuff
                               await _next.Invoke(httpContext);
                            }
                            else
                            {
                                await UnauthorizedResponseAsync(httpContext);
                            }

                }

          private static async Task UnauthorizedResponseAsync(HttpContext httpContext)
            {
                httpContext.Response.StatusCode = 401;
                await httpContext.Response.WriteAsync("Unauthorized");
                return;
            }

但是问题是这会以文本文件格式显示所有值。任何人都知道我如何获得json格式!

当然,我可以解析输出并获取单个条目并构造json。

>kubectl describe resourcequotas
Name:                   default-quota
Namespace:              my-namespace
Resource                Used     Hard
--------                ----     ----
configmaps              19       100
limits.cpu              13810m   18
limits.memory           25890Mi  36Gi

但是我正在寻找内置的或快速的方法。感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

感谢您的留言。让我回答我自己的问题,我找到了一个问题。

jq解决了我的问题。

以json格式获取资源的最大限制

kubectl get quota -ojson | jq -r .items[].status.hard

以json格式获取资源的当前使用情况

kubectl get quota -ojson | jq -r .items[].status.used

答案 1 :(得分:0)

kubectl本身提供了一种使用-o jsonpath选项提供jsonpath的机制。我最初面临的主要问题之一是在dot(.)中包含key。例如limits.cpu。 可以通过使用表达式"limits\.cpu"(转义点)来解决此问题

kubectl get resourcequota -o jsonpath={.items[*].spec.hard."limits\.cpu"}