gpt4 book ai didi

azure - Azure kubernetes 上的 PVC 卷安装需要一个多小时

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

我在 Azure 上安装了 tectonic kubernetes 集群。它由 master 的 tectonic-installer GH 存储库制成(提交 0a7a1edb0a2eec8f3fb9e1e612a8ef1fd890c332)。

> kubectl version                                                                       

Client Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.2", GitCommit:"922a86cfcd65915a9b2f69f3f193b8907d741d9c", GitTreeState:"clean", BuildDate:"2017-07-21T08:23:22Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.3+coreos.0", GitCommit:"42de91f04e456f7625941a6c4aaedaa69708be1b", GitTreeState:"clean", BuildDate:"2017-08-07T19:44:31Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

在集群上,我创建了存储类、PVC 和 pod,如下所示:https://gist.github.com/mwieczorek/28b7c779555d236a9756cb94109d6695

但是 Pod 无法启动。当我运行时:

kubectl describe pod mypod

我参加事件:

FailedMount     Unable to mount volumes for pod "mypod_default(afc68bee-88cb-11e7-a44f-000d3a28f26a)": 
timeout expired waiting for volumes to attach/mount for pod "default"/"mypod". list of unattached/unmounted volumes=[mypd]

在 kubelet 日志 ( https://gist.github.com/mwieczorek/900db1e10971a39942cba07e202f3c50 ) 中我看到:

Error: Volume not attached according to node status for volume "pvc-61a8dc6a-88cb-11e7-ad19-000d3a28f2d3" 
(UniqueName: "kubernetes.io/azure-disk//subscriptions/abc/resourceGroups/tectonic-cluster-mwtest/providers/Microsoft.Compute/disks/kubernetes-dynamic-pvc-61a8dc6a-88cb-11e7-ad19-000d3a28f2d3") pod "mypod" (UID: "afc68bee-88cb-11e7-a44f-000d3a28f26a")

当我创建 PVC 时 - Azure 上会创建新光盘。创建 Pod 后 - 我在 Azure 门户上看到该光盘已附加到调度 Pod 的工作虚拟机。

> fdisk -l

显示:

Disk /dev/sdc: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

我在 GH 上发现了类似的问题(kubernetes/kubernetes/issues/50150),但我有从 master 构建的集群,所以它不是 udev 规则(我检查了 - 文件/etc/udev/rules.d/66-azure-storage .规则存在)

<小时/>

有人知道这是否是一个错误(也许知道问题)吗?

还是我做错了什么?

另外:我怎样才能进一步解决这个问题?

最佳答案

我在实验室进行了测试,使用你的yaml文件创建pod,一小时后,它仍然显示pending。

root@k8s-master-ED3DFF55-0:~# kubectl get pod
NAME READY STATUS RESTARTS AGE
mypod 0/1 Pending 0 1h
task-pv-pod 1/1 Running 0 2h

我们可以使用这个yaml文件来创建pod:

PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc
namespace: kube-public
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Gi

输出:

root@k8s-master-ED3DFF55-0:~# kubectl get pvc --namespace=kube-public
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE
mypvc Bound pvc-1b097337-8960-11e7-82fc-000d3a191e6a 100Gi RWO default 3h

Pod:

kind: Pod
apiVersion: v1
metadata:
name: task-pv-pod
spec:

volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim

containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage

输出:

root@k8s-master-ED3DFF55-0:~# kubectl get pods
NAME READY STATUS RESTARTS AGE
task-pv-pod 1/1 Running 0 3h

作为解决方法,我们可以使用default作为存储类

在 Azure 中,有托管磁盘和非托管磁盘。如果您的节点使用托管磁盘,则会创建两个存储类,以提供使用 Azure 托管磁盘创建 Kubernetes 持久卷的访问权限。

它们是托管高级托管标准,分别映射到Standard_LRSPremium_LRS托管磁盘类型.

如果您的节点使用非托管磁盘,并且持久卷资源未将存储类指定为资源定义的一部分,则将使用默认存储类。

默认存储类使用非托管 Blob 存储,并将在资源组中现有的存储帐户中配置 Blob,或配置新的存储帐户。

非托管持久卷类型适用于所有虚拟机大小。

有关托管磁盘和非托管磁盘的更多信息,请参阅此 link

测试结果如下:

root@k8s-master-ED3DFF55-0:~# kubectl get pvc --namespace=default
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE
shared Pending standard-managed 2h
shared1 Pending managed-standard 15m
shared12 Pending standard-managed 14m
shared123 Bound pvc-a379ced4-897c-11e7-82fc-000d3a191e6a 2Gi RWO default 12m
task-pv-claim Bound pvc-3cefd456-8961-11e7-82fc-000d3a191e6a 3Gi RWO default 3h
<小时/>

更新:这是我的 K8s 代理的非托管磁盘: enter image description here

关于azure - Azure kubernetes 上的 PVC 卷安装需要一个多小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45870032/

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