乐趣区

关于kubernetes:K8S-生态周报-NGINX-Ingress-Controller又添新特性

「K8S 生态周报」内容次要蕴含我所接触到的 K8S 生态相干的每周值得举荐的一些信息。欢送订阅知乎专栏「k8s 生态」。

Conftest 正式退出 Open Policy Agent 我的项目

conftest 是一个十分实用的 CLI 工具,能够用于测试 / 验证配置文件是否合乎预期。例如,能够通过如下内容来定义规定:

package main

deny[msg] {
  input.kind = "Deployment"
  not input.spec.template.spec.securityContext.runAsNonRoot = true
  msg = "Containers must not run as root"
}

deny[msg] {
  input.kind = "Deployment"
  not input.spec.selector.matchLabels.app
  msg = "Containers must provide app label for pod selectors"
}

应用此规定去查看一个未合乎预期规定的 Deployment 的配置文件:

(MoeLove) ➜  conftest test deployment.yaml
FAIL - deployment.yaml - Containers must not run as root
FAIL - deployment.yaml - Deployments are not allowed

2 tests, 0 passed, 0 warnings, 2 failures

就会看到有相应的查看后果了。

至于 OPA 它是一个策略引擎,提供了一种非常灵活的形式来申明策略。

conftest 正式退出 OPA 我的项目,能够更好的让彼此进行集成和组合应用。并且,在 conftest 退出 OPA 我的项目后,会有局部性能从 conftest 移至 OPA,让 conftest 更间简便。期待后续的倒退。

Traefik v2.2.7 公布

Traefik v2.2.6 中,修复了一个平安问题。
在校验应用域前置的 TLS 连贯时,如果 Host 头与 SNI 不同的话,则 Traefik 将会返回 421 状态码。

此次 Traefik 公布的 v2.2.7 版本,次要是为了解决上述在 v2.2.6 中因为修复此平安问题而引入的 bug。

景象是在 v2.2.6 版本中,如果为 Host 指定了非标准端口(443)的话,则 Traefik 会返回 421 状态码,从而导致连贯异样。

v2.2.7 中解决办法也很简略,间接疏忽掉 Host 中的端口,与 SNI 进行比拟即可。

倡议如果打算降级的话,间接升至 v2.2.7,避开 v2.2.6 版本。可通过 Release 页面 下载应用。

NGINX Ingress Controller v1.8.0 公布

这里介绍的是 NGINX 官网的 Ingress Controller 我的项目(防止和社区的 Kubernetes NGINX Ingress Controller 搞混)。

此次版本中有几个十分值得关注的个性。

  • #1028 新增了一种资源 Policy

Policy 资源容许你为 VirtualServer 资源增加访问控制,可作用于 认证,限流和 WAF 之类的个性。因为此版本中是首次增加,目前只实现了基于 IP 的访问控制。例如,你能够通过下方的配置文件,来容许 10.0.0.0/8 的拜访:

apiVersion: k8s.nginx.org/v1alpha1
kind: Policy 
metadata:
  name: allow-localhost
spec:
  accessControl:
    allow:
    - 10.0.0.0/8
  • #1019 反对注入片段(Snippets)

应用 Snippets 容许你为 VirtualServer 配置注入一段原生的 NGINX 配置片段,用于笼罩默认配置。示例如下:

apiVersion: k8s.nginx.org/v1
kind: VirtualServer
metadata:
  name: cafe
  namespace: cafe
spec:
  http-snippets: |
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
    proxy_cache_path /tmp keys_zone=one:10m;
  host: cafe.example.com
  tls:
    secret: cafe-secret
  server-snippets: |
    limit_req zone=mylimit burst=20;
  upstreams:
  - name: tea
    service: tea-svc
    port: 80
  - name: coffee
    service: coffee-svc
    port: 80
  routes:
  - path: /tea
    location-snippets: |
      proxy_cache one;
      proxy_cache_valid 200 10m;
    action:
      pass: tea
  - path: /coffee
    action:
      pass: coffee

但要留神的是,如果你应用此个性,我倡议你在应用之前,分明的了解本人配置的含意。因为用这种形式配置,会绕过 Ingress Controller 的校验过程。会比拟危险。并且应用此个性,不够直观。但,却能够让你对 NGINX 有更强的控制能力。

更多对于此版本的信息,请参考其 RelaseNote

上游停顿

  • #92986 如果 CSI 驱动抛出 FailedPrecondition 谬误,则进行重试对卷进行扩大;
  • #80917 移植 deviceManager 到 Windows 容器治理中以反对 GPU 的拜访。(这是一个很要害的个性)

欢送订阅我的文章公众号【MoeLove】

退出移动版