k8s资源之PodDisruptionBudget

网友投稿 318 2022-09-08

k8s资源之PodDisruptionBudget

​​istio多集群探秘,部署了50次多集群后我得出的结论​​

​​istio多集群链路追踪,附实操视频​​

​​istio防故障利器,你知道几个,istio新手不要读,太难!​​

​​istio业务权限控制,原来可以这么玩​​

​​istio实现非侵入压缩,微服务之间如何实现压缩​​

​​不懂envoyfilter也敢说精通istio系列-filter-再也不用再代码里写csrf逻辑了​​

​​不懂envoyfilter也敢说精通istio系列filter​​

​​不懂envoyfilter也敢说精通istio系列-network filter-redis proxy​​

​​不懂envoyfilter也敢说精通istio系列-network filter-HttpConnectionManager​​

​​不懂envoyfilter也敢说精通istio系列-ratelimit-istio ratelimit完全手册​​

————————————————

PodDisruptionBudget:

•pod 中断 预算、

•终止pod前 通过labelSelector机制获取正常运行的pod数目的限制,目的是对主动驱逐的保护措施。

特性:

•PDB指定一个pod集合在一段时间内存活的最小实例数量或者百分比

•作用于一组被同一个控制器管理的pod。例如:RS或者statefulset

•使用PodDisruptionBudget控制器本身无法真正保障指定数量或者百分比的pod存活,PodDisruptionBudget控制器只能保证POD主动逃离的情况下业务不中断或者业务SLA不

•降级场景局限于:主动驱逐

•一个 PDB 对应一个控制器创建的 Pod,例如,Deployment、ReplicaSet或StatefulSet。

maxUnavailable 为 0%(或0)或者 minAvailable 为 100%(或与控制器的 .spec.replicas 相等)将阻止节点排空任务

舍入:

•如果指定这些值为一个百分数,其计算结果可能不会正好是一个整数。例如,假设有 7 个 Pod,minAvailable 设置为 50%,你将很难判断,到底是 3 个还是 4 个 Pod 必须始终保持可用。Kubernetes 将向上舍入(round up to the nearest integer),因此,此处必须有 4 个 Pod 始终可用。

示例:

apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deployment labels: app: nginxspec: selector: matchLabels: app: nginx replicas: 8 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80[root@master01 pdb]# cat pdb-avaliable.yaml apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: nginx-pdb spec: minAvailable: 7 selector: matchLabels: app: nginx[root@master01 pdb]# cat pdb-avaliable-noevit.yaml apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: nginx-pdb spec: minAvailable: 100% selector: matchLabels: app: nginx[root@master01 pdb]# cat pdb-unavaliable.yaml apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: nginx-pdb spec: maxUnavailable: 1 selector: matchLabels: app: nginx[root@master01 pdb]# cat pdb-unavaliable-noevit.yaml apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: nginx-pdb spec: maxUnavailable: 0% selector: matchLabels: app: nginx

命令:

•Kubectl cordon

•Kubectl uncordon

•kubectl drain

•kubectl drain foo –force

•kubectl drain foo --grace-period=900

•Kubectl drain 192.168.198.156 --ignore-daemonsets --delete-local-data

•kubectl create pdb my-pdb --selector=app=nginx --min-available=50%

•kubectl create poddisruptionbudget my-pdb --selector=app=rails --min-available=1

•Kubectl create pdb my-pdb –selector=app=nginx --max-unavailable=50%

•Kubectl create pdb my-pdb –selector=app=nginx --max-unavailable=1

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:国足胜菲律宾后抓紧恢复,对马尔代夫有望轮换!
下一篇:k8s pvc 扩容方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~