zoukankan      html  css  js  c++  java
  • Kubernetes准入控制器PodNodeSelector、PodTolerationRestriction

    PodNodeSelector:

    该准入控制器通过读取命名空间注解和全局配置,来为命名空间中可以使用的节点选择器设置默认值并实施限制。

    配置文件格式

    PodNodeSelector 使用配置文件来设置后端行为的选项。 请注意,配置文件格式将在将来某个版本中迁移为版本化文件。 该文件可以是 json 或 yaml,格式如下:

    podNodeSelectorPluginConfig:
     clusterDefaultNodeSelector: name-of-node-selector
     namespace1: name-of-node-selector
     namespace2: name-of-node-selector

    从文件中引用 PodNodeSelector 配置文件,提供给 API 服务器命令行标志 --admission-control-config-file

    apiserver.config.k8s.io/v1:
    apiVersion: apiserver.config.k8s.io/v1
    kind: AdmissionConfiguration
    plugins:
    - name: PodNodeSelector
      path: podnodeselector.yaml
    ...

     apiserver.k8s.io/v1alpha1:

    # Deprecated in v1.17 in favor of apiserver.config.k8s.io/v1
    apiVersion: apiserver.k8s.io/v1alpha1
    kind: AdmissionConfiguration
    plugins:
    - name: PodNodeSelector
      path: podnodeselector.yaml
    ...

    配置注解格式

    PodNodeSelector 使用键为 scheduler.alpha.kubernetes.io/node-selector 的注解将节点选择器分配给命名空间。

    apiVersion: v1
    kind: Namespace
    metadata:
      annotations:
        scheduler.alpha.kubernetes.io/node-selector: name-of-node-selector
      name: namespace3  

    内部行为

    该准入控制器行为如下:

    1. 如果 Namespace 的注解带有键 scheduler.alpha.kubernetes.io/node-selector ,则将其值用作节点选择器。
    2. 如果命名空间缺少此类注解,则使用 PodNodeSelector 插件配置文件中定义的 clusterDefaultNodeSelector 作为节点选择器。
    3. 评估 pod 节点选择器和命名空间节点选择器是否存在冲突。存在冲突将导致拒绝。
    4. 评估 pod 节点选择器和命名空间的白名单定义的插件配置文件是否存在冲突。存在冲突将导致拒绝。
    说明:

    PodNodeSelector 允许 Pod 强制在特定标签的节点上运行。另请参阅 PodTolerationRestriction 准入插件,该插件可防止 Pod 在特定污点的节点上运行。

    PodTolerationRestriction:

    该准入控制器首先验证 Pod 的容忍度与其命名空间的容忍度之间的冲突。如果存在冲突,则拒绝 Pod 请求。 然后,它将命名空间的容忍度合并到 pod 的容忍度中,之后根据命名空间的容忍度白名单检查所得到的容忍度结果。 如果检查成功,则将接受 pod 请求,否则拒绝该请求。

    如果 pod 的命名空间没有任何关联的默认容忍度或容忍度白名单,则使用集群级别的默认容忍度或容忍度白名单(如果有的话)。

    命名空间的容忍度通过注解健 scheduler.alpha.kubernetes.io/defaultTolerations 和 scheduler.alpha.kubernetes.io/tolerationsWhitelist 设置。

    参考:https://kubernetes.io/zh/docs/reference/access-authn-authz/admission-controllers/

  • 相关阅读:
    kubernetes
    dubbo
    前端控件+资源
    Gossip
    问题解决1
    react
    impala
    storm+Calcite
    ASP.NET页面传值与跳转
    经典FormsAuthenticationTicket 分析
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/13490842.html
Copyright © 2011-2022 走看看