将 JSON 文件上传到 Kubernetes Minikube 集群节点以在 pod 中的 ASP.NET 核心应用程序中使用

Upload JSON file to Kubernetes Minikube Cluster node to use in ASP.NET Core application in a pod

我的 ASP.NET 核心应用程序使用了 data-config.json

该应用程序构建为镜像,目标是创建 Kubernetes 环境(使用 Minikube 和 myapp.yaml 创建和部署 Minikube 和 pods)并复制 data-config.json 从我本地机器的特定位置到节点中的目录(我想成为的地方~/app/publish/data-config.json,换句话说,在节点的根目录中)。

我阅读了很多文档,我认为 ConfigMap 在这种情况下会很有用。我也已经实施了一个卷。但我不认为在 ConfigMap 配置中写入 json 内容是最好的方法,我只想依赖 data-config.json 文件和 YAML。

docker-compose.yml 文件中,在 Docker 桌面上进行测试,它可以工作,代码如上所示:

    dataService:
        image: webapp
        build:
          context: ../..
          dockerfile: webapp
        container_name: webapp-container
        ports:
            - "9000:8080"
        volumes:
            - "../data-service/data-config.json:/app/publish/data-config.json"

它奏效了。现在我需要翻译或想办法复制这个文件并保存在我节点的/app/publish/目录中。

你不会做这些事。

volumes:
    - "../data-service/data-config.json:/app/publish/data-config.json"

我想您可能会在您的项目中使用 data-config.json。因此,您可以使用 ItemGroup 通过修改 your_project_name.csproj 文件来包含特定文件。

您也可以在下面的帖子中参考我的回答:

我通过创建一个将 data-config.json 从我的本地计算机目录映射到容器 pod 的 ConfigMap 解决了这个问题。该示例显示了 Minikube 用于创建和启动集群的 YAML 文件的实现:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: data-deployment
  labels:
    app: data-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: data-app
  template:
    metadata:
      labels:
        app: data-app
    spec:
      imagePullSecrets:
      - name: regcred
      containers:
      - name: data-app
        image: validation-image:latest
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
        env:
        - name: DataSettings_ConfigPath
          value: /app/publish/data-config.json
        volumeMounts:
        - name: data-config-dir
          mountPath: /app/publish/data-config.json
          subPath: data-config.json
      restartPolicy: Always
      hostname: data-service
      volumes: 
      - name: data-config-dir
        configMap:
           name: data-configmap
           items:
             - key: data-config.json
               path: data-config.json

PS:您必须在终端中运行以下命令来为数据创建 ConfigMap-config.json 文件:

$ kubectl create configmap data-configmap --from-file ../data-service/data-config.json