Dotnet Core 项目生产环境配置文件在K8s上的部署
一般来说生产环境的配置文件appsetting.Production.json不会放到源代码库中。传统方式下,该文件可以在项目发布后手动添加到生产环境下。在Docker环境下,镜像中不宜包含此类敏感信息,可以通过K8s的Secret和Volume或者env变量来实现.
- 首先修改项目的Startup.cs
1 public class Startup 2 { 3 private IHostingEnvironment CurrentEnvironment { get; set; } 4 5 6 public Startup(IConfiguration configuration,IHostingEnvironment env) 7 { 8 9 //Configuration = configuration; 10 11 var builder = new ConfigurationBuilder() 12 .SetBasePath(env.ContentRootPath) 13 .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 14 .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) 15 .AddJsonFile("secrets/appsettings.secrets.json", optional: true) 16 .AddEnvironmentVariables(); 17 Configuration = builder.Build(); 18 19 CurrentEnvironment = env; 20 21 } 22 }
- 运行以下命令创建secrete
kubectl create secret generic secret-appsettings --from-file=./appsettings.secrets.json
- 编写pod.yml
apiVersion: v1 kind: Pod metadata: name: web labels: app: web spec: containers: - name: web image: xxx/project:latest ports: - containerPort: 80 volumeMounts: - name: secrets mountPath: /app/secrets readOnly: true env: - name: "ASPNETCORE_ENVIRONMENT" value: "Staging" imagePullSecrets: - name: regsecret volumes: - name: secrets secret: secretName: secret-appsettings
分类:
Kubernetes
标签:
.Net Core
, kubernetes
posted on 2019-03-18 15:01 leonworld2011 阅读(690) 评论(1) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构