将 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
我的 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