小编ken*_*tor的帖子

计算 Group By 语句中的值

使用案例:

我有 10 个 Kubernetes 节点(将它们视为虚拟机),它们有 7 到 14 个可分配的 CPU 核心,可由 Kubernetes Pod 请求。因此我想展示一个表格来显示

  1. 可分配的CPU核心
  2. 请求的CPU核心
  3. 请求/可分配 CPU 核心的比率

按节点分组。

问题

为前两个要求创建表很容易。我只是在 Grafana 中创建了一个表并添加了这两个指标:

sum(kube_pod_container_resource_requests_cpu_cores) by (node)
sum(kube_node_status_allocatable_cpu_cores) by (node)
Run Code Online (Sandbox Code Playgroud)

然而我在第三个方面遇到了困难。我尝试了这个查询,但它显然没有返回任何数据:

sum(kube_pod_container_resource_requests_cpu_cores / kube_node_status_allocatable_cpu_cores) by (node)
Run Code Online (Sandbox Code Playgroud)

问题

在我给定的示例中,如何实现 group by 语句中两个不同指标的计算?

grafana prometheus promql

5
推荐指数
1
解决办法
6336
查看次数

Nginx入口资源-重定向到www(SSL不起作用)

用例

我使用以下头盔图表将nginx入口控制器部署到了Kubernetes集群中:

https://github.com/helm/charts/tree/master/stable/nginx-ingress

我为前端服务网络服务器创建了一个入口资源,它应该从非www重定向到www版本。我也使用SSL。

问题

当我访问网站的www版本时,一切都很好,nginx使用我的Lets Encrypt SSL证书(在正确的名称空间中以秘密形式存在)为页面提供服务。但是,当我访问该网站的NON-www版本时,在浏览器(NET :: ERR_CERT_AUTHORITY_INVALID)中看到失败的SSL证书页面,并且可以看到该页面是使用Kubernetes入口伪造证书提供的。我认为这也是重定向到www版本根本不起作用的原因。

这是我的入口资源(实际的主机名已被删除):

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    kubernetes.io/tls-acme: "true"
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
  creationTimestamp: 2018-10-03T19:34:41Z
  generation: 3
  labels:
    app: nodejs
    chart: nodejs-1.0.1
    heritage: Tiller
    release: example-frontend
  name: example-frontend
  namespace: microservices
  resourceVersion: "5700380"
  selfLink: /apis/extensions/v1beta1/namespaces/microservices/ingresses/example-frontend
  uid: 5f6d6500-c743-11e8-8aaf-42010a8401fa
spec:
  rules:
  - host: www.example.io
    http:
      paths:
      - backend:
          serviceName: example-frontend
          servicePort: http
        path: /
  tls:
  - hosts:
    - example.io
    - www.example.io
    secretName: example-frontend-tls
Run Code Online (Sandbox Code Playgroud)

问题

为什么Nginx也不能在非www版本上使用提供的证书?

nginx kubernetes kubernetes-ingress nginx-ingress

5
推荐指数
1
解决办法
966
查看次数

找出 Prometheus 中 CPU 使用率高的查询

我负责管理多个团队的普罗米修斯集群。平均 CPU 利用率是 4 个分配的 CPU 核心的 0.6。然而,有时 Prometheus 会在数分钟甚至数小时内将 4 个核心的 CPu 最大化。

我认为 CPU 使用率高是由运行大量(低效)查询的 Grafana 仪表板引起的。由于每次都有多个 grafana 仪表板,我很难弄清楚哪个仪表板甚至查询导致了我的 prometheus 集群上的高 CPU 使用率。更大的问题是,这会导致所有其他仪表板非常慢,因为 prometheus 实例无法及时回答查询。

问题

我如何找出哪些查询消耗大量 CPU 使用率,或者如何限制查询/团队的 CPU 使用率?

prometheus

5
推荐指数
1
解决办法
3141
查看次数

使用Jquery更改li元素的类

我有一个导航,通过使用活动类突出显示当前选定的导航点.当用户访问新导航点时,我想切换"旧"选定导航点并将新导航点的li元素的类切换为"活动".

我有jquery部分的问题,它只应该更改旧元素的li类的切换,并将类添加到单击的li元素.可能是标准情况,但我不知道这是一个好的和简单的解决方案.

示例(点击前):

<ul class="x-navigation">
<li class="active">
    <a href="index.php"><span class="fa fa-desktop"></span> <span class="xn-text">Dashboard</span></a>                        
</li>
<li>
    <a href="index.php"><span class="fa fa-desktop"></span> <span class="xn-text">Dashboard2</span></a>                        
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

结果(点击"Dashboard2"后):

<ul class="x-navigation">
<li>
   <a href="index.php"><span class="fa fa-desktop"></span> <span class="xn-text">Dashboard</span></a>                        
</li>
<li class="active">
  <a href="index.php"><span class="fa fa-desktop"></span> <span class="xn-text">Dashboard2</span></a>                        
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我的尝试

$(".x-navigation li").on("click", "a", function(){
        event.preventDefault();
        //alert("test");

        ($this).parent().removeClass("active");
        ($this).addClass("active");

        //alert($this.child().href);
});
Run Code Online (Sandbox Code Playgroud)

错误说明:

Uncaught ReferenceError: $this is not defined at this row: "($this).parent().removeClass("active");
Run Code Online (Sandbox Code Playgroud)

不应该是$ this被点击的li元素?我希望你们能帮我解决这个标准问题.

javascript jquery

4
推荐指数
1
解决办法
7153
查看次数

读入 JSON 数组并转换为 IEnumerable

在此输入图像描述

我从未使用过 JSON 文件,但我有实现 JSON 文件的任务,并且需要将其转换为 IEnumerable。当我尝试反序列化 JSON 对象时,出现一个异常:

Newtonsoft.Json.dll 中发生“Newtonsoft.Json.JsonSerializationException”类型的未处理异常

附加信息:无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型“Price_Algorithm.AuctionInfo”,因为该类型需要 JSON 数组(例如 [1,2,3])才能正确反序列化。

我的代码:

var data = File.ReadAllText(@"C:\benatia.json");
var terry = JsonConvert.DeserializeObject<IEnumerable<AuctionInfo>>(data);

public class AuctionInfo : IEnumerable
{
    public string BidState { get; set; }
    public uint BuyNowPrice { get; set; }
    public uint CurrentBid { get; set; }
    public int Expires { get; set; }
    public ItemData ItemData { get; set; }
    public uint StartingBid { get; set; }
    public string TradeState { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# json

4
推荐指数
1
解决办法
2万
查看次数

使用Express检索多个GET参数

我尝试使用Express检索多个GET参数,但req.params始终为空.我不完全确定如何使用Express 4正确地做到这一点,因为答案变化很大,因为我认为Express/Node.js的新版本发生了很大变化.

这是我的URL调用:

http://localhost:3000/accounts/players?term=asddsa&_type=query&q=asddsa
Run Code Online (Sandbox Code Playgroud)

http状态代码实际上是200,因此该地址实际存在.

这是我的路由器:

router.get('/players', function(req, res) {
    var searchTerm = req.term;
    console.log("Term: " + JSON.stringify(req.params));
    res.json({"result": "Account deleted"});
});
Run Code Online (Sandbox Code Playgroud)

控制台日志输出是:

Term: {}
Run Code Online (Sandbox Code Playgroud)

我尝试过不同的东西,比如:

router.get('/players/:term/:_type/:q', function(req, res) {
Run Code Online (Sandbox Code Playgroud)

但这导致了GET请求的404.

node.js express

4
推荐指数
1
解决办法
3413
查看次数

将Angular应用程序添加到现有项目

我有一个现有的项目,我想使用Angular CLI添加一个Angular应用程序.

项目结构现在看起来像这样:

  • node_modules
  • SRC
    • 客户
    • 服务器
    • 共享
  • .angular-cli.json
  • 的package.json

客户端和共享文件夹仍然是空的,我想在客户端文件夹中安装我的角度应用程序,但我仍然想为整个项目维护一个package.json.这就是我尝试使用以下内容添加angular-cli.json的原因:

{
  "project": {
    "name": "projectname"
  },
  "apps": [
    {
      "root": "./src/client",
      "outDir": "./dist/browser"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

问题:

现在将Angular应用程序(到/ src/client)添加到我的项目的最佳方法是什么?ng new由于现有的package.json,我无法简单地运行,也许它不会在/ src/client文件夹中生成应用程序.

angular-cli angular

4
推荐指数
2
解决办法
7434
查看次数

NPM条件脚本(Windows / Mac)应执行不同的命令)

使用案例:

我在 NPM 中设置一个prepublishOnly钩子,它删除“lib”文件夹,然后将打字稿源文件转换到新的 lib 文件夹中,然后运行测试。

问题:

应该有两个人发布 NPM 包,两人都在不同的操作系统(Windows / Mac)上工作。因此删除文件夹的命令是不同的。

  "scripts": {
    "build": "tsc",
    "clean": "rm -rf lib",
    "clean:windows": "if exist lib rmdir /s /q lib",
    "lint": "tslint --project tsconfig.json --format stylish src/**/*.ts",
    "format": "prettier --write \"**/*.ts\""
  },
  "husky": {
    "hooks": {
      "pre-push": "npm run clean:windows && npm run build && npm run test"
    }
  },
Run Code Online (Sandbox Code Playgroud)

问题:

有没有办法有条件地运行 NPM 脚本(基于所使用的操作系统),或者是否有可以跨这些操作系统运行的删除文件夹命令?

npm typescript npm-scripts

4
推荐指数
1
解决办法
2396
查看次数

使用Go客户端获取Kubernetes中Pod的当前资源使用情况

kubernetes go客户端有很多方法,我找不到如何获得特定(或所有Pod)的当前CPU和RAM使用率的方法。

有人可以告诉我我需要调用什么方法才能获得Pod和节点的当前用法?

我的NodeList:

nodes, err := clientset.CoreV1().Nodes().List(metav1.ListOptions{})
Run Code Online (Sandbox Code Playgroud)

Kubernetes Go客户端:https : //github.com/kubernetes/client-go

指标包:https : //github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/metrics

据我所知,指标服务器实现了Kubernetes指标包,以便从pod和节点获取资源使用情况,但是我不知道它们在哪里以及如何实现:https//github.com/kubernetes-incubator / metrics-server

go kubernetes

4
推荐指数
2
解决办法
2172
查看次数

保护 SPA 背后的 REST API 免受数据窃贼的侵害

我正在为 Angular SPA 编写 REST Api 网关,但我面临着保护 SPA 的 API 公开的数据免受“数据窃贼”侵害的问题。我知道我对 HTML 抓取无能为力,但至少我不想为这些数据窃贼提供用户体验和我们发送到 SPA 的 JSON 的全部功能。

大多数“教程”和有关此主题的主题之间的区别在于,我将这些数据公开给公共网站(这意味着不需要用户身份验证),该网站提供有关视频游戏的有价值的统计数据。

我关于如何保护 SPA 的 Rest API 的初步想法:

到处使用 JWT。当访问者第一次打开网站时,SPA 从我的 REST Api 请求 JWT 并将其保存在 HTTPS cookie 中。对于所有请求,SPA 必须使用 JWT 来获得响应。

这种方法的问题

  • 数据窃贼也可以简单地从我们的端点请求 oauth 令牌。我没有机会验证令牌实际上是从我的 SPA 或数据窃贼那里请求的吗?
  • 即使我解决了攻击者可以从 HTTPS cookie 中读取保存的 JWT 并在他自己的应用程序中使用它的问题。当然我可以为 JWT 添加时间到期

我的问题:

我的印象是这是一个常见问题,因此我想知道除了可以直接访问我的 REST Api 响应的 SPA 之外,是否还有其他好的解决方案来保护他人?

security rest restful-authentication jwt

3
推荐指数
1
解决办法
1951
查看次数