使用案例:
我有 10 个 Kubernetes 节点(将它们视为虚拟机),它们有 7 到 14 个可分配的 CPU 核心,可由 Kubernetes Pod 请求。因此我想展示一个表格来显示
按节点分组。
问题
为前两个要求创建表很容易。我只是在 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 语句中两个不同指标的计算?
用例
我使用以下头盔图表将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版本上使用提供的证书?
我负责管理多个团队的普罗米修斯集群。平均 CPU 利用率是 4 个分配的 CPU 核心的 0.6。然而,有时 Prometheus 会在数分钟甚至数小时内将 4 个核心的 CPu 最大化。
我认为 CPU 使用率高是由运行大量(低效)查询的 Grafana 仪表板引起的。由于每次都有多个 grafana 仪表板,我很难弄清楚哪个仪表板甚至查询导致了我的 prometheus 集群上的高 CPU 使用率。更大的问题是,这会导致所有其他仪表板非常慢,因为 prometheus 实例无法及时回答查询。
问题
我如何找出哪些查询消耗大量 CPU 使用率,或者如何限制查询/团队的 CPU 使用率?
我有一个导航,通过使用活动类突出显示当前选定的导航点.当用户访问新导航点时,我想切换"旧"选定导航点并将新导航点的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元素?我希望你们能帮我解决这个标准问题.

我从未使用过 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) 我尝试使用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.
我有一个现有的项目,我想使用Angular CLI添加一个Angular应用程序.
项目结构现在看起来像这样:
客户端和共享文件夹仍然是空的,我想在客户端文件夹中安装我的角度应用程序,但我仍然想为整个项目维护一个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文件夹中生成应用程序.
使用案例:
我在 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 脚本(基于所使用的操作系统),或者是否有可以跨这些操作系统运行的删除文件夹命令?
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
我正在为 Angular SPA 编写 REST Api 网关,但我面临着保护 SPA 的 API 公开的数据免受“数据窃贼”侵害的问题。我知道我对 HTML 抓取无能为力,但至少我不想为这些数据窃贼提供用户体验和我们发送到 SPA 的 JSON 的全部功能。
大多数“教程”和有关此主题的主题之间的区别在于,我将这些数据公开给公共网站(这意味着不需要用户身份验证),该网站提供有关视频游戏的有价值的统计数据。
我关于如何保护 SPA 的 Rest API 的初步想法:
到处使用 JWT。当访问者第一次打开网站时,SPA 从我的 REST Api 请求 JWT 并将其保存在 HTTPS cookie 中。对于所有请求,SPA 必须使用 JWT 来获得响应。
这种方法的问题
我的问题:
我的印象是这是一个常见问题,因此我想知道除了可以直接访问我的 REST Api 响应的 SPA 之外,是否还有其他好的解决方案来保护他人?
kubernetes ×2
prometheus ×2
angular ×1
angular-cli ×1
c# ×1
express ×1
go ×1
grafana ×1
javascript ×1
jquery ×1
json ×1
jwt ×1
nginx ×1
node.js ×1
npm ×1
npm-scripts ×1
promql ×1
rest ×1
security ×1
typescript ×1