当前位置: 首页 > news >正文

做网站公司哪个品牌好上海服装品牌网站建设

做网站公司哪个品牌好,上海服装品牌网站建设,南京淄博网站建设工作室,深圳市建设工程交易中心网站目录 污点、容忍污点#xff08;Taints#xff09;#xff1a;容忍#xff08;Tolerations#xff09;#xff1a;如何一起使用污点和容忍#xff1a;操作符#xff08;Equal、Exists#xff09;例子基于污点的驱逐基于节点状态添加污点 污点、容忍 官网地址#xf… 目录 污点、容忍污点Taints容忍Tolerations如何一起使用污点和容忍操作符Equal、Exists例子基于污点的驱逐基于节点状态添加污点 污点、容忍 官网地址https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/ Kubernetes通常简称为K8s是一个用于容器编排和管理的开源平台。在Kubernetes中污点Taints和容忍Tolerations是用于控制Pod调度的重要概念它们允许您指定哪些节点可以接受哪些Pod。以下是有关污点和容忍的详细解释 污点Taints 什么是污点 污点是一种节点级别的属性它告诉Kubernetes哪些节点不适合运行特定类型的Pod。节点上的污点可以阻止Pod被调度到不适合的节点上。 如何定义污点 污点由节点的管理员定义它们是键值对的形式包括 key污点的名称通常是一个字符串。value污点的值通常为空字符串。effect污点的效果可以是NoSchedule、PreferNoSchedule或NoExecute。 NoSchedulePod将不会被调度到带有该污点的节点上。PreferNoScheduleKubernetes会尽量避免将Pod调度到带有该污点的节点上但如果没有其他可用节点仍然可以调度。NoExecute对于已经运行在该节点上的Pod如果它们不符合污点的要求将被驱逐。 设置污点 [rootk8smaster taint_toleration]# kubectl describe node k8snode1|grep -i NoExecute Taints: cftencent:NoExecute 取消污点 [rootk8smaster taint_toleration]# kubectl taint node k8snode1 cftencent:NoExecute-node/k8snode1 untainted[rootk8smaster taint_toleration]# kubectl describe node k8snode1|grep -i NoExecute [rootk8smaster taint_toleration]# 容忍Tolerations 什么是容忍 容忍是Pod级别的属性它告诉Kubernetes该Pod可以容忍哪些节点上的污点。容忍允许Pod被调度到具有特定污点的节点上。 如何定义容忍 容忍是在Pod的规范Spec中定义的包括 key与污点的key匹配。value与污点的value匹配。operator匹配操作符可以是Equal等于、Exists存在等。effect与污点的effect匹配。 示例 假设您有一个Pod它希望容忍名为gpu的污点您可以使用以下方式定义容忍 tolerations: - key: gpuoperator: Equalvalue: nvidiaeffect: NoSchedule如何一起使用污点和容忍 通过在节点上定义污点您可以将一组节点标记为特定类型例如GPU节点然后通过在Pod规范中定义容忍您可以确保只有需要GPU的Pod才会被调度到这些节点上。 污点和容忍的结合可以为您提供更高的灵活性以满足特定的部署需求。您可以根据需要在节点和Pod级别上定义多个污点和容忍。 总之污点和容忍是Kubernetes中用于控制Pod调度的强大机制它们使得您可以更精确地管理Pod在集群中的位置以满足特定的硬件或软件要求。这对于在多样化的硬件和环境条件下运行容器化应用程序非常有用。 操作符Equal、Exists 你可以在 Pod 规约中为 Pod 设置容忍度。 下面两个容忍度均与上面例子中使用 kubectl taint 命令创建的污点相匹配 因此如果一个 Pod 拥有其中的任何一个容忍度都能够被调度到 node1 tolerations: - key: key1operator: Equalvalue: value1effect: NoSchedule tolerations: - key: key1operator: Existseffect: NoSchedule这里是一个使用了容忍度的 Pod pods/pod-with-toleration.yaml apiVersion: v1 kind: Pod metadata:name: nginxlabels:env: test spec:containers:- name: nginximage: nginximagePullPolicy: IfNotPresenttolerations:- key: example-keyoperator: Existseffect: NoScheduleoperator 的默认值是 Equal。 一个容忍度和一个污点相“匹配”是指它们有一样的键名和效果并且 如果 operator 是 Exists此时容忍度不能指定 value或者如果 operator 是 Equal则它们的 value 应该相等。 说明 存在两种特殊情况 如果一个容忍度的 key 为空且 operator 为 Exists 表示这个容忍度与任意的 key、value 和 effect 都匹配即这个容忍度能容忍任何污点。 如果 effect 为空则可以与所有键名 key1 的效果相匹配。 下面的例子表示任何污点都可以接受 tolerations:- key:operator: Existsvalue:effect: 上述例子中 effect 使用的值为 NoSchedule你也可以使用另外一个值 PreferNoSchedule。 这是“优化”或“软”版本的 NoSchedule —— 系统会 尽量 避免将 Pod 调度到存在其不能容忍污点的节点上 但这不是强制的。effect 的值还可以设置为 NoExecute下文会详细描述这个值。 你可以给一个节点添加多个污点也可以给一个 Pod 添加多个容忍度设置。 Kubernetes 处理多个污点和容忍度的过程就像一个过滤器从一个节点的所有污点开始遍历 过滤掉那些 Pod 中存在与之相匹配的容忍度的污点。余下未被过滤的污点的 effect 值决定了 Pod 是否会被分配到该节点。需要注意以下情况 如果未被忽略的污点中存在至少一个 effect 值为 NoSchedule 的污点 则 Kubernetes 不会将 Pod 调度到该节点。如果未被忽略的污点中不存在 effect 值为 NoSchedule 的污点 但是存在至少一个 effect 值为 PreferNoSchedule 的污点 则 Kubernetes 会 尝试 不将 Pod 调度到该节点。如果未被忽略的污点中存在至少一个 effect 值为 NoExecute 的污点 则 Kubernetes 不会将 Pod 调度到该节点如果 Pod 还未在节点上运行 并且会将 Pod 从该节点驱逐如果 Pod 已经在节点上运行。 例如假设你给一个节点添加了如下污点 kubectl taint nodes node1 key1value1:NoSchedule kubectl taint nodes node1 key1value1:NoExecute kubectl taint nodes node1 key2value2:NoSchedule假定某个 Pod 有两个容忍度 tolerations: - key: key1operator: Equalvalue: value1effect: NoSchedule - key: key1operator: Equalvalue: value1effect: NoExecute在这种情况下上述 Pod 不会被调度到上述节点因为其没有容忍度和第三个污点相匹配。 但是如果在给节点添加上述污点之前该 Pod 已经在上述节点运行 那么它还可以继续运行在该节点上因为第三个污点是三个污点中唯一不能被这个 Pod 容忍的。 通常情况下如果给一个节点添加了一个 effect 值为 NoExecute 的污点 则任何不能忍受这个污点的 Pod 都会马上被驱逐任何可以忍受这个污点的 Pod 都不会被驱逐。 但是如果 Pod 存在一个 effect 值为 NoExecute 的容忍度指定了可选属性 tolerationSeconds 的值则表示在给节点添加了上述污点之后 Pod 还能继续在节点上运行的时间。例如 tolerations: - key: key1operator: Equalvalue: value1effect: NoExecutetolerationSeconds: 3600这表示如果这个 Pod 正在运行同时一个匹配的污点被添加到其所在的节点 那么 Pod 还将继续在节点上运行 3600 秒然后被驱逐。 如果在此之前上述污点被删除了则 Pod 不会被驱逐。 例子 使用yaml启动pod [rootk8smaster taint_toleration]# cat pod.yaml apiVersion: v1 kind: Pod metadata:name: demo-podnamespace: defaultlabels:app: myappenv: dev spec:nodeName: k8snode1containers:- name: busyboximage: busybox:latestimagePullPolicy: IfNotPresentcommand:- /bin/sh- -c- sleep 3600此时k8snode1和k8snode2都没有污点都可以正常被调度但是在yaml文件在指定了要运行在那个节点上。 [rootk8smaster taint_toleration]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES demo-pod 1/1 Running 0 20s 10.244.249.24 k8snode1 none none nginx-deployment-559d658b74-75fpp 1/1 Running 0 100m 10.244.249.21 k8snode1 none none nginx-deployment-559d658b74-j6rdd 1/1 Running 0 101m 10.244.249.20 k8snode1 none none nginx-deployment-559d658b74-kh8jb 1/1 Running 0 101m 10.244.185.250 k8snode2 none none 设置污点 [rootk8smaster taint_toleration]# kubectl describe node k8smaster|grep -i taint Taints: node-role.kubernetes.io/master:NoSchedule [rootk8smaster taint_toleration]# kubectl taint nodes k8snode1 cftencent:NoExecutenode/k8snode1 tainted[rootk8smaster taint_toleration]# kubectl describe node k8snode1|grep -i taint Taints: cftencent:NoExecute demo-pod 会停止运行 [rootk8smaster taint_toleration]# cat pod.yaml apiVersion: v1 kind: Pod metadata:name: demo-podnamespace: defaultlabels:app: myappenv: dev spec:nodeName: k8snode1containers:- name: busyboximage: busybox:latestimagePullPolicy: IfNotPresentcommand:- /bin/sh- -c- sleep 3600tolerations:- key: cfoperator: Equalvalue: tencenteffect: NoExecute 将ymal文件进行修改将容忍度也设置为k8snode1可以接受的程度如下: tolerations:- key: cfoperator: Equalvalue: tencenteffect: NoExecute可以看到demo-pod 重新运行了 [rootk8smaster taint_toleration]# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES demo-pod 1/1 Running 0 13h 10.244.249.25 k8snode1 none none 基于污点的驱逐 特性状态 Kubernetes v1.18 [stable] 前文提到过污点的效果值 NoExecute 会影响已经在节点上运行的如下 Pod 如果 Pod 不能忍受这类污点Pod 会马上被驱逐。如果 Pod 能够忍受这类污点但是在容忍度定义中没有指定 tolerationSeconds 则 Pod 还会一直在这个节点上运行。如果 Pod 能够忍受这类污点而且指定了 tolerationSeconds 则 Pod 还能在这个节点上继续运行这个指定的时间长度。 当某种条件为真时节点控制器会自动给节点添加一个污点。当前内置的污点包括 node.kubernetes.io/not-ready节点未准备好。这相当于节点状况 Ready 的值为 “False”。node.kubernetes.io/unreachable节点控制器访问不到节点. 这相当于节点状况 Ready 的值为 “Unknown”。node.kubernetes.io/memory-pressure节点存在内存压力。node.kubernetes.io/disk-pressure节点存在磁盘压力。node.kubernetes.io/pid-pressure: 节点的 PID 压力。node.kubernetes.io/network-unavailable节点网络不可用。node.kubernetes.io/unschedulable: 节点不可调度。node.cloudprovider.kubernetes.io/uninitialized如果 kubelet 启动时指定了一个“外部”云平台驱动 它将给当前节点添加一个污点将其标志为不可用。在 cloud-controller-manager 的一个控制器初始化这个节点后kubelet 将删除这个污点。 在节点被排空时节点控制器或者 kubelet 会添加带有 NoExecute 效果的相关污点。 如果异常状态恢复正常kubelet 或节点控制器能够移除相关的污点。 在某些情况下当节点不可达时API 服务器无法与节点上的 kubelet 进行通信。 在与 API 服务器的通信被重新建立之前删除 Pod 的决定无法传递到 kubelet。 同时被调度进行删除的那些 Pod 可能会继续运行在分区后的节点上。 说明 控制面会限制向节点添加新污点的速率。这一速率限制可以管理多个节点同时不可达时 例如出现网络中断的情况可能触发的驱逐的数量。 你可以为 Pod 设置 tolerationSeconds以指定当节点失效或者不响应时 Pod 维系与该节点间绑定关系的时长。 比如你可能希望在出现网络分裂事件时对于一个与节点本地状态有着深度绑定的应用而言 仍然停留在当前节点上运行一段较长的时间以等待网络恢复以避免被驱逐。 你为这种 Pod 所设置的容忍度看起来可能是这样 tolerations: - key: node.kubernetes.io/unreachableoperator: Existseffect: NoExecutetolerationSeconds: 6000说明 Kubernetes 会自动给 Pod 添加针对 node.kubernetes.io/not-ready 和 node.kubernetes.io/unreachable 的容忍度且配置 tolerationSeconds300 除非用户自身或者某控制器显式设置此容忍度。 这些自动添加的容忍度意味着 Pod 可以在检测到对应的问题之一时在 5 分钟内保持绑定在该节点上。 DaemonSet 中的 Pod 被创建时 针对以下污点自动添加的 NoExecute 的容忍度将不会指定 tolerationSeconds node.kubernetes.io/unreachablenode.kubernetes.io/not-ready 这保证了出现上述问题时 DaemonSet 中的 Pod 永远不会被驱逐。 基于节点状态添加污点 控制平面使用节点控制器自动创建 与节点状况 对应的、效果为 NoSchedule 的污点。 调度器在进行调度时检查污点而不是检查节点状况。这确保节点状况不会直接影响调度。 例如如果 DiskPressure 节点状况处于活跃状态则控制平面添加 node.kubernetes.io/disk-pressure 污点并且不会调度新的 Pod 到受影响的节点。 如果 MemoryPressure 节点状况处于活跃状态则控制平面添加 node.kubernetes.io/memory-pressure 污点。 对于新创建的 Pod可以通过添加相应的 Pod 容忍度来忽略节点状况。 控制平面还在具有除 BestEffort 之外的 QoS 类的 Pod 上添加 node.kubernetes.io/memory-pressure 容忍度。 这是因为 Kubernetes 将 Guaranteed 或 Burstable QoS 类中的 Pod甚至没有设置内存请求的 Pod 视为能够应对内存压力而新创建的 BestEffort Pod 不会被调度到受影响的节点上。 DaemonSet 控制器自动为所有守护进程添加如下 NoSchedule 容忍度以防 DaemonSet 崩溃 node.kubernetes.io/memory-pressurenode.kubernetes.io/disk-pressurenode.kubernetes.io/pid-pressure (1.14 或更高版本)node.kubernetes.io/unschedulable (1.10 或更高版本)node.kubernetes.io/network-unavailable (只适合主机网络配置) 添加上述容忍度确保了向后兼容你也可以选择自由向 DaemonSet 添加容忍度。
http://www.yutouwan.com/news/498011/

相关文章:

  • 建立网站的基本过程企业服务账号
  • 漳浦县城乡规划建设局网站福州设计网站
  • 公司企业vi设计宁波正规seo推广
  • 寿光网站建设多少钱公司简介万能模板
  • 注册网站建设公司主营项目类别手机网站做适配
  • 网站开发微信支付怎么做一考试网站
  • 东莞石碣网站建设某网站注册需要邮箱是怎么弄
  • 创意设计一个网站滴滴一年亏损109亿
  • 建设营销网站要什么云平台网站开发
  • 宁波网站开发公司杭州正规的网站建设公司
  • 用cms织梦做网站图文教程做网站销售那里找客户
  • 百度网站下拉排名如何建设网站兴田德润简介呢
  • 江西网站设计欣赏怎么进入公司网站
  • 长沙网站优化seo百度图片识别
  • 网站建设困难吗深圳网站开发电话
  • 做网站要不要学ps公司装修员工有工资吗
  • 湖南建立网站营销策划建筑材料网
  • 网站建设代理商龙华哪有做网站设计
  • 沈阳建设工程信息网官网新网站哈尔滨的网络优化能做么
  • 多用户商城网站方案网站域名查主机名
  • 中小企业门户网站的建设方案标准件网站开发
  • 外贸建设网站制作网站建设的步骤过程ppt
  • 如何做伪原创文章网站wordpress 5.3
  • 荣耀手机官网旗舰店站群网站和做seo那个号
  • 手机商城网站设计要求怎么写公司网站是不是每天要更新
  • 网站建设应重视后期的服务和维护淘宝如何做推广
  • 怎样建设影视网站在网站怎么做代销
  • 如何为自己公司做网站唐山免费自助建站模板
  • 搜索引擎的网站网站建设会计
  • 网站定制开发一般多久海外网络加速器免费