获取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
但是我正在寻找内置的或快速的方法。感谢您的帮助。
答案 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"}