tnblog
首页
视频
资源
登录

.netcore 通过Flurl验证k8s内部访问与获取环境变量 (二)

8438人阅读 2020/4/20 10:26 总访问:3467187 评论:0 收藏:0 手机
分类: 容器编排

Kubernetes

.netcore验证k8s内部访问与获取环境变量 (二)


修改k8s-name项目


NameController.cs

  1. [ApiController]
  2. [Route("[controller]")]
  3. public class NameController : ControllerBase
  4. {
  5. [HttpGet]
  6. public ActionResult<string> Get(){
  7. var host = Environment.GetEnvironmentVariable("HOSTNAME_COMMAND");
  8. if(string.IsNullOrEmpty(host))
  9. return "empty";
  10. return host;
  11. }
  12. }


修改YAML文件并自定义ENV(环境变量)

注意:这里的 HOSTNAME_COMMAND 环境变量获取的是自身pod节点的名称

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: name-api
  5. namespace: netcore
  6. labels:
  7. name: name-api
  8. spec:
  9. replicas: 3
  10. selector:
  11. matchLabels:
  12. name: name-api
  13. template:
  14. metadata:
  15. labels:
  16. name: name-api
  17. spec:
  18. containers:
  19. - name: name-api
  20. env:
  21. - name: HOSTNAME_COMMAND
  22. valueFrom:
  23. fieldRef:
  24. fieldPath: metadata.name
  25. image: aidasi/name-api:v2
  26. ports:
  27. - containerPort: 80
  28. imagePullPolicy: Always
  29. ---
  30. kind: Service
  31. apiVersion: v1
  32. metadata:
  33. name: name-api
  34. namespace: netcore
  35. spec:
  36. type: NodePort
  37. ports:
  38. - port: 80
  39. targetPort: 80
  40. selector:
  41. name: name-api


通过Docker发布 name-api:v2 版本

参考以往文章
https://www.tnblog.net/hb/article/details/3499
Docker Hub 地址:
https://hub.docker.com/repository/docker/aidasi/name-api


覆盖已经发布的Yaml文件与请求测试

执行命令:
kubectl apply -f deploy.yaml

kubectl get pod,svc,deploy -o wide -n netcore



Result

发布成功!
然后我们通过关联节点请求相关Service
curl http://192.168.255.218/Name



Result

但有时候,由于我们请求得太快 导致HTTP请求保持着连接
然后一直访问的是同一个Pod


所以有时候不得不换一种方式进行请求
curl -H "Connection: KeepAlive=false" -H "Keep-Alive: timeout=0" http://192.168.255.218/Name

Result


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

.netcore 使用缓存

1.Startup.csservices.AddMemoryCache(); services.AddMvc();2.封装Logger类[Route(&quot;api/todo&quot;)] [Authorize] ...

.netcore 使用分布式缓存(docker+redis)

1. 通过docker创建 Redis执行命令:dockerrun--nameasp-redis-p6379:6379-dredis查看redis状态:dockerps可以发现alreadywo...

.netcore3.0 Ocelot 制作简单负载均衡 (一)

开发环境环境版本:vs2019框架版本:.netCore 3.0注意:.netCore 3.1 Ocelot 暂时不支持我这种方式!1.项目创建创建的项目...

.netcore3.1 Abp+vue 实战 (一)

ABP前言一个应用程序框架和起点的ASP.NET MVC web应用程序与最佳实践和最流行的工具!(它是这样说的)1.项目的创建创建项...

.netcore3.1 consul服务集群

前言Consul是一种服务网络解决方案,可跨任何运行时平台以及公共或私有云连接和保护服务简而言之:集群下载地址环境版本:v...

.netcore3.1 Ocelot 与 Consul 熔断限流与缓存

目录与前言目录链接:.net core Ocelot 简单网关集群熔断架构整合目录基于上一篇文章展开 Ocelot 与 Consul 进行合并创建一...

.netcore 3.x 与 grpc

目录 本篇文章主要讲解如下内容 一。grpc在 .Net Core 3.x 中的应用 二。grpc如何分段上传图片 代码与实现过程比较简单,...

.netcore运用IServiceScope实现全局服务持续化注入

IServiceScope实现全局服务持续化注入[TOC] 创建 GloablePullWorkFlow.cs 类 public class GloablePullWorkFlow { ...

.netcore 通过Flurl验证k8s内部访问与获取环境变量

.netcore验证k8s内部访问与获取环境变量[TOC] 创建k8s-name项目 项目结构如下 实验过程 st=>start: k8s-demo项...

.netcore配置MarkDown的学习之路 (一)

前言MarkDown讲述 (开始使用)现在很多人都自己开发一个博客平台分享技术,老程序员都说干程序员如果没有开发出来一个...

netcore项目时,Debug文件夹下多一个netcoreapp文件夹的解决办法

解决办法:编辑.csproj文件,在 &lt;TargetFramework&gt;netcoreapp2.1&lt;/TargetFramework&gt; 后加入“是否追加目标框...

netcore加Consul实现简单服务实例负载

今天,总结一下之前学习的Consul基础(后续如果有时间的话,再加上Ocelot部分):新建一个WebApi项目:模拟服务创建一个Web...

.netcore 3.1 运用 Json Patch 时的常见问题

.netcore 3.1 运用Json Patch[TOC] JSON Patch是一种使用API显式更新文档的方法。它本身是一种契约,用于描述如何修改文...

.netcore 解析JWT中间Base64报错

.netcore 解析JWT中间Base64报错[TOC] 解析时改为var jsonPayload = Base64UrlEncoder.Decode(basepayload); var claim...
这一世以无限游戏为使命!
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术