相关疑难解决方法(0)

卷挂载不工作 Kubernetes 和 WSL 2 和 Docker

我无法在 Docker 和 WSL 2 中运行的 Kubernetes 中使用 HostPath 正确挂载卷。在 Docker 中运行的 Kubernetes 中挂载卷时,这似乎是 WSL 2 问题。有人知道怎么修这个东西吗?

以下是步骤:

为我的应用程序将调试版本部署到 Kubernetes。使用 Kubernetes 扩展附加 Visual Studio Code 导航到我的应用程序的项目文件夹,该应用程序使用卷挂载 <= 问题就在这里

当您查看卷挂载时,什么也没有。

C:\Windows\System32>wsl -l -v

NAME STATE VERSION
Ubuntu Running 2
docker-desktop-data Running 2
docker-desktop Running 2
Docker Desktop v2.3.0.3
Kubernetes v1.16.5
Visual Studio Code v1.46.1
Run Code Online (Sandbox Code Playgroud)
====================================================================
Dockerfile
====================================================================
#
# Base image for deploying and running based on Ubuntu
#
# Support ASP.NET and does not include .NET SDK or NodeJs
# …
Run Code Online (Sandbox Code Playgroud)

windows docker kubernetes windows-subsystem-for-linux

11
推荐指数
1
解决办法
4764
查看次数

docker for windows 上的 Kubernetes,带有 hostPath 的持久卷给出了“不允许操作”

我正在尝试将 Windows 中的文件夹连接到容器文件夹。这适用于需要读取文件夹中文件的 .NET 应用程序。在普通的 docker 容器中,使用 docker-compose,该应用程序可以正常运行,但由于这只是我们必须监视的几个不同应用程序之一,因此我们正在尝试让 kubernetes 参与其中。这也是我们失败的地方。作为 kubernetes 的初学者,我使用 kompose.exe 将 compose 文件转换为 kuberetes 风格。但是,无论我使用 hostPath 还是 permanentVolumeClaim 作为标志,我都无法让事情“开箱即用”。使用 hostPath 时,路径非常不正确,而使用 permanentVolumeClaim 时,我收到一条警告,指出不支持在主机上安装卷。因此,我尝试自己完成这一部分,但既不能使用持久卷,也不能直接在部署文件中输入安装数据。我最接近的是我可以进入该文件夹,并且可以更改为其中的子文件夹,但是一旦我尝试运行任何其他命令,无论是“ls”还是“cat”,我都会收到“不允许操作” 。这是我的 docker compose 文件,它按预期工作

version: "3.8"
services:
    test-create-hw-file:
        container_name: "testcreatehwfile"
        image: test-create-hw-file:trygg
        network_mode: "host"
        volumes:
            - /c/temp/testfiles:/app/files
Run Code Online (Sandbox Code Playgroud)

在该文件上运行 konvert compose:

PS C:\temp> .\kompose.exe convert -f .\docker-compose-tchwf.yml --volumes hostPath -v
DEBU Checking validation of provider: kubernetes
DEBU Checking validation of controller:
DEBU Docker Compose version: 3.8
WARN Service "test-create-hw-file" won't be created because 'ports' is …
Run Code Online (Sandbox Code Playgroud)

windows volumes docker kubernetes

10
推荐指数
1
解决办法
7921
查看次数

相当于带有 docker-for-desktop Kubernetes 节点的“minikube ssh”

我正在为 Mac 使用 Docker,但目前仅将其用于其 Kubernetes 集群。Kubernetes 集群的单个节点名为 docker -for-desktop

我目前正在阅读关于持久卷的 Kubernetes 教程(https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/),作为其中的一部分,我正在设置建立一个hostPath持久卷。看起来它的工作方式是,您在 Kubernetes 节点本身上创建一个路径,您可以将其用作用于开发和测试目的的持久卷。

为此,本教程会指导您通过 SSH 连接到您的 Kubernetes 节点本身并创建一个路径,然后该路径可以变成一个持久卷。唯一的问题是,我不知道如何直接通过 SSH 连接到 Kubernetes 节点本身(而不是容器)。minikube 的等价物就是minikube ssh. 我可以kubectl describe访问节点,但我只能获得一个内部 IP 地址,而不是外部 IP 地址。所以我不知道如何在ssh命令中解决它。

有任何想法吗?

docker kubernetes

8
推荐指数
2
解决办法
2559
查看次数