Kubernetes:一个或多个容器没有资源限制 - VS Code Kubernetes 工具中的警告

Rus*_*bde 22 kubernetes visual-studio-code

创建 pod-definition.yml 文件后。

apiVersion: v1
kind: Pod
metadata:
    name: myapp-pod
    labels: 
      app: myapp
      type: server
spec:
    containers:
        - name: nginx-container
          image: nginx
Run Code Online (Sandbox Code Playgroud)

linter 发出此警告。

One or more containers do not have resource limits - this could starve other processes

Jon*_*nas 37

为每个容器声明内存CPU 的资源请求和限制是一个很好的做法。这有助于将容器调度到为您的 Pod 提供可用资源的节点,并且还使您的 Pod 不使用其他 Pod 需要的资源 - 因此“这可能会使其他进程饿死”消息。

例如,为您的示例添加资源请求和限制

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels: 
    app: myapp
    type: server
spec:
  containers:
  - name: nginx-container
    image: nginx
    resources:
      limits:
        memory: 512Mi
        cpu: "1"
      requests:
        memory: 256Mi
        cpu: "0.2"
Run Code Online (Sandbox Code Playgroud)

  • 设置 CPU 限制并不是每个人都认为是好的做法:) https://home.robusta.dev/blog/stop-using-cpu-limits (12认同)

Vin*_*Yin 20

如您所知,该警告来自 VS Code Extension 中的 linter ms-kubernetes-tools.vscode-kubernetes-tools。如果您希望 linter 禁用警告

One or more containers do not have resource limits - this could starve other processes
Run Code Online (Sandbox Code Playgroud)

然后将 VS Code 编辑setting.json为如下所示:

{
    "vs-kubernetes": {
        "disable-linters": ["resource-limits"],
        ...
    },
    ...
}
Run Code Online (Sandbox Code Playgroud)

  • 您经常会阅读其他人的代码或第三方代码。这不是你能改变的。而且,即使这是您自己的代码,您的团队也可能不希望这样。重点是,在很多情况下,您只是想从 VS Code 中关闭摆动下划线,以便获得愉快的阅读体验。 (26认同)
  • 这(某种)违背了 linter 的目的,不是吗? (4认同)
  • @VincentYin 完全同意。就我而言,这些摆动线非常烦人,因为我故意不设置资源限制,因为我们已经使用集群的 LimitRange 为每个 pod 定义了默认限制,这意味着我们只需要为偏离的容器定义资源限制从常态。 (3认同)
  • “你只是想从 VS Code 中关闭摆动下划线,这样你就可以获得愉快的阅读体验”...同意 (2认同)
  • 有时,您想要在容器上设置内存限制而不是 CPU 限制……您不会因设置内存限制而获得荣誉;它仍然对CPU大喊大叫。那些弯弯曲曲的字真让人抓狂。在我的 VS Code 主题中将整个文件夹及其父文件夹变成橙色。 (2认同)
  • 有没有办法通过内嵌评论来做到这一点? (2认同)