【发布时间】:2023-03-22 23:33:02
【问题描述】:
我正在使用 EKS,并且正在从存储类和持久卷声明动态创建持久卷。这是我的演示 yaml:-
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: test-storage
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
zones: us-east-1b
reclaimPolicy: Retain
allowVolumeExpansion: true
mountOptions:
- debug
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: test-storage
resources:
requests:
storage: 1Gi
我正在测试当持久卷附加到“死亡”的节点时会发生什么(我正在关闭 AWS 控制台中的 EC2 实例)。
我注意到,持久卷不会与死节点分离并重新连接到集群中的活动节点,直到节点被删除。使用 kubectl delete node 或 EKS 自动(大约 20 分钟后)。
我想知道的是,有没有办法改变这种默认行为?要么减少 EKS 自动从集群中删除节点所需的时间,要么更改分离连接控制器何时启动以将持久卷移动到活动节点。
提前致谢。
-- 编辑--
最初,我意识到 Pod 不会联机,因为两个节点(2 个节点集群)位于不同的可用区,因此卷无法连接到集群中的另一个节点,必须等待 EKS在同一可用区启动一个新节点。
我在与另一个节点相同的可用性组中启动另一个节点并再次运行测试。
Pod 仍会尝试在新 Pod 上出现,但由于卷仍附加到旧 Pod,因此仍处于挂起状态
Multi-Attach error for volume "pvc-xxxxxxxx" Volume is already used by pod(s) podname-xxxxx"
是否可以更改 EKS 终止死节点上的 pod 所需的默认时间,以便释放卷并可以附加到新 pod 挂起的新节点?
默认情况下,EKS 需要 20 分钟从集群中移除死节点,然后释放卷。
【问题讨论】:
标签: kubernetes amazon-eks persistent-volumes