向GKE中的fluentd-gcp容器添加PodDisruptionBudget

时间:2019-08-07 00:24:38

标签: kubernetes google-kubernetes-engine

我的fluentd-gcp吊舱如下所示:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    scheduler.alpha.kubernetes.io/critical-pod: ""
  creationTimestamp: 2019-08-06T23:41:17Z
  generateName: fluentd-gcp-v3.1.1-
  labels:
    controller-revision-hash: 7cbbc7496
    k8s-app: fluentd-gcp
    kubernetes.io/cluster-service: "true"
    pod-template-generation: "4"
    version: v3.1.1
  name: fluentd-gcp-v3.1.1-jpd5x
  namespace: kube-system

我试图像这样添加广告连播中断预算

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: fluentd-gcp
spec:
  minAvailable: 1
  selector:
    matchLabels:
      app: fluentd-gcp    

但是,allowed disruptions的值为0

$ kubectl get pdb
NAME               MIN AVAILABLE   MAX UNAVAILABLE   ALLOWED DISRUPTIONS   AGE
fluentd-gcp        1               N/A               0                     9s

表示此处https://kubernetes.io/docs/tasks/run-application/configure-pdb/#check-the-status-of-the-pdb

中没有与该标签匹配的吊舱

我想念什么吗?

1 个答案:

答案 0 :(得分:0)

ALLOWED DISRUPTIONS描述了可以驱逐的豆荚,而不是豆荚的数量 PDB已经看到。

如果您进行$ kubectl describe pdb NAME,则会看到current字段,该字段使用上述标签准确描述PDB匹配了多少个吊舱。

尽管您的问题中未指定,但请注意,默认情况下,GKE fluentd-gcp是作为DaemonSet运行的,这意味着number of replicas depends on the number of nodes in the cluster

这将防止PDB将这些吊舱标记为可收回,因为它们取决于节点而不是ReplicaSet中的编号。