gpt4 book ai didi

google-cloud-storage - 为什么在kubernetes容器中安装GCE卷会导致延迟?

转载 作者:行者123 更新时间:2023-12-02 12:23:57 25 4
gpt4 key购买 nike

我有一个kubernetes pods ,使用持久性卷声明将GCE持久性卷附加到该kubernetes pods 。 (对于更严重的问题,没有批量声明,请参阅:Mounting a gcePersistentDisk kubernetes volume is very slow)

如果没有附加的卷,则 Pane 将在无时间(最多2秒)内启动。但是,如果Pod具有GCE持久卷安装,则Running状态会在20到60秒之间到达。我正在使用不同的磁盘大小(10、200、500 GiB)和创建多个Pod进行测试,该大小似乎与延迟无关。

而且这种延迟不仅是,而且不仅是开始的中出现,而且是在复制 Controller 上执行滚动更新时,或者当代码在运行时使崩溃时。

下面我有kubernetes规范:

复制 Controller

{
"apiVersion": "v1",
"kind": "ReplicationController",
"metadata": {
"name": "a1"
},
"spec": {
"replicas": 1,
"template": {
"metadata": {
"labels": {
"app": "a1"
}
},
"spec": {
"containers": [
{
"name": "a1-setup",
"image": "nginx",
"ports": [
{
"containerPort": 80
},
{
"containerPort": 443
}
]
}
]
}
}
}
}

批量 claim
{
"apiVersion": "v1",
"kind": "PersistentVolumeClaim",
"metadata": {
"name": "myclaim"
},
"spec": {
"accessModes": [
"ReadWriteOnce"
],
"resources": {
"requests": {
"storage": "10Gi"
}
}
}
}

和音量
{
"apiVersion": "v1",
"kind": "PersistentVolume",
"metadata": {
"name": "mydisk",
"labels": {
"name": "mydisk"
}
},
"spec": {
"capacity": {
"storage": "10Gi"
},
"accessModes": [
"ReadWriteOnce"
],
"gcePersistentDisk": {
"pdName": "a1-drive",
"fsType": "ext4"
}
}
}

最佳答案

GCE(以及AWS和OpenStack)必须先将磁盘/卷附加到节点,然后才能将其挂载并暴露到您的Pod。连接所需的时间取决于云提供商。

对于由ReplicationController创建的Pod,必须执行附加的分离操作。同一磁盘不能连接到多个节点(至少不能以读/写模式)。分离和pod清理发生在与连接不同的线程中。具体来说,在节点上运行的Kubelet必须将其当前具有的Pod(及其体积的总和)与节点上当前存在的体积进行协调。孤立的卷将被卸载和分离。如果您的Pod已安排在其他节点上,则它必须等待,直到原始节点分离该卷为止。

群集最终会达到正确的状态,但是每个组件可能要花一些时间才能到达那里。这是您的等待时间。

关于google-cloud-storage - 为什么在kubernetes容器中安装GCE卷会导致延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34854472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com