
.netcore验证k8s内部访问与获取环境变量 (二)
修改k8s-name项目
NameController.cs
[ApiController]
[Route("[controller]")]
public class NameController : ControllerBase
{
[HttpGet]
public ActionResult<string> Get(){
var host = Environment.GetEnvironmentVariable("HOSTNAME_COMMAND");
if(string.IsNullOrEmpty(host))
return "empty";
return host;
}
}
修改YAML文件并自定义ENV(环境变量)
注意:这里的 HOSTNAME_COMMAND 环境变量获取的是自身pod节点的名称
apiVersion: apps/v1
kind: Deployment
metadata:
name: name-api
namespace: netcore
labels:
name: name-api
spec:
replicas: 3
selector:
matchLabels:
name: name-api
template:
metadata:
labels:
name: name-api
spec:
containers:
- name: name-api
env:
- name: HOSTNAME_COMMAND
valueFrom:
fieldRef:
fieldPath: metadata.name
image: aidasi/name-api:v2
ports:
- containerPort: 80
imagePullPolicy: Always
---
kind: Service
apiVersion: v1
metadata:
name: name-api
namespace: netcore
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
selector:
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
发布成功!
然后我们通过关联节点请求相关Servicecurl http://192.168.255.218/Name
但有时候,由于我们请求得太快 导致HTTP请求保持着连接
然后一直访问的是同一个Pod
所以有时候不得不换一种方式进行请求
curl -H "Connection: KeepAlive=false" -H "Keep-Alive: timeout=0" http://192.168.255.218/Name
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
2
文章
634
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术