当前位置: 首页 > 知识库问答 >
问题:

如何在Kubernetes中挂载带有windows容器的卷?

李睿
2023-03-14

我正试图将一个持久卷装入windows容器中,但总是会出现以下错误:

Unable to mount volumes for pod "mssql-with-pv-deployment-3263067711-xw3mx_default(....)": timeout expired waiting for volumes to attach/mount for pod "default"/"mssql-with-pv-deployment-3263067711-xw3mx". list of unattached/unmounted volumes=[blobdisk01]
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: azure-disk-sc
provisioner: kubernetes.io/azure-disk
parameters:
  skuname: Standard_LRS

my PersistentVolumeClaim:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: azure-disk-pvc
spec:
  storageClassName: azure-disk-sc
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi

和我的容器的部署:

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: mssql-with-pv-deployment
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: mssql-with-pv
    spec:
      nodeSelector:
        beta.kubernetes.io/os: windows
      terminationGracePeriodSeconds: 10
      containers:
      - name: mssql-with-pv
        image: testacr.azurecr.io/sql/mssql-server-windows-developer
        ports:
        - containerPort: 1433
        env:
        - name: ACCEPT_EULA
          value: "Y"
        - name: SA_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mssql
              key: SA_PASSWORD
        volumeMounts:
        - mountPath: "c:/volume"
          name: blobdisk01
      volumes:
      - name: blobdisk01
        persistentVolumeClaim:
          claimName: azure-disk-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: mssql-with-pv-deployment
spec:
  selector:
    app: mssql-with-pv
  ports:
    - protocol: TCP
      port: 1433
      targetPort: 1433
  type: LoadBalancer

我做错了什么?有其他方法挂载卷吗?

共有1个答案

胡野
2023-03-14

我会试着:

  1. 将API版本更改为v1:https://kubernetes.io/docs/concepts/storage/storage-classs/#azure-disk
  2. Kubectl get events查看您是否有更详细的错误(我可以在使用NFS监视事件时找出原因)
  3. 我在这篇文章中读到的,也许这是个错误?
 类似资料:
  • 问题内容: 我们正在使用一些旧代码,这些旧代码通过字母(例如,f:\)访问共享驱动器。不能使用UNC表示法。我们的Java包装器应用程序将作为服务运行,并且第一步,我想在代码中显式映射驱动器。有人做过吗? 问题答案: 考虑执行DOS命令,该命令映射网络驱动器,如以下代码所示: 查看有关net use命令的详细信息:

  • 我目前正在我的<code>Jenkinsfile 由于我使用的云托管的kubernetes是从dockerd到containerd作为容器运行时,我想问一下是否有人使用带有jenkins kubernetes插件(特别是podtemplates)的containerd。

  • 我有一个容器,我想停止,但当我做一个它挂起,永远不会停止它。 我试过正常的和

  • 问题内容: 我对Docker中的整个数据量过程有疑问。基本上,这里有两个Dockerfile及其各自的运行命令: Dockerfile 1- 命令1- Dockerfile 2- 命令2- 因此,奇怪的是第一个dockerfile和命令按预期工作。docker守护程序将目录从容器装载到主机的位置。因此,我可以根据需要编辑配置文件,它们将在重新启动后保留在容器中。 但是,对于第二个dockerfil

  • 问题内容: 我有这个容器基于(但是与我有相同的问题,这并不是很相关)。我到达需要的地方 我得到 我在任何内核日志中都找不到任何东西,而且没有任何有趣的结果。我显然可以在主机上执行此操作(使用任何其他对子树/节点)。在我上面的示例中,/ htdocs / www是Docker卷的安装点,但它似乎没有任何意义,因为容器内没有任何一对子树/节点。 问题答案: 要使用系统调用,您需要具备此功能。默认情况下

  • 问题内容: 我有一台安装了docker host的Linux服务器,内存为16GB。我想在其上部署Windows Server容器。可能吗?有人尝试过此解决方案吗? 问题答案: 更新2019 如pipe_tape_coder在评论中指出的: Microsoft 改进了容器的网络选项,现在 允许每个容器中具有改进名称空间的多个容器 。 理论上(2015年10月的原始答案): Linux主机上没有运行