AKS集群重启后可能会导致节点的重建,这可能会导致Pods运行在不存在的节点上。为了避免这种情况发生,可以使用Taints和Tolerations来控制Pods运行的节点。在节点重启后,任何未关联到新节点的Pods将在启动阶段失败。以下是一个示例,使用Taints和Tolerations来确保Pods只在特定的节点上运行。
首先,为将要在其中运行Pods的节点添加一个taint:
kubectl taint nodes
然后,在Pods的Deployment或StatefulSet中添加tolerations:
apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: replicas: 2 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: tolerations: - key: "key" operator: "Equal" value: "value" effect: "NoSchedule" containers: - name: my-container image: my-image ports: - containerPort: 80
这将确保Pods只在有“key=value:NoSchedule”污点的节点上运行,并且重启后不会跑到不存在的节点上。
下一篇:AKS卷的长附加时间