kubernetes各种port关系
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kubernetes各种port关系相关的知识,希望对你有一定的参考价值。
参考技术A 容易混淆的概念:1、NodePort和port
前者是将服务暴露给外部用户使用并在node上、后者则是为内部组件相互通信提供服务的,是在service上的端口。
2、targetPort
targetPort是pod上的端口,用来将pod内的container与外部进行通信的端口
3、port、NodePort、ContainerPort和targetPort在哪儿?
port在service上,负责处理对内的通信,clusterIP:port
NodePort在node上,负责对外通信,NodeIP:NodePort
ContainerPort在容器上,用于被pod绑定
targetPort在pod上、负责与kube-proxy代理的port和Nodeport数据进行通信
如何在 Kubernetes 中取消设置环境变量?
【中文标题】如何在 Kubernetes 中取消设置环境变量?【英文标题】:How can I unset an environment variable in Kubernetes? 【发布时间】:2017-12-22 21:14:11 【问题描述】:在为 Flower(Celery 监控服务)启动我的 Kubernetes 部署时,Kubernetes 会在 Flower pod 中生成以下环境变量:
FLOWER_PORT=tcp://10.67.97.89:5555
FLOWER_PORT_5555_TCP=tcp://10.67.97.89:5555
FLOWER_PORT_5555_TCP_ADDR=10.67.97.89
FLOWER_PORT_5555_TCP_PORT=5555
FLOWER_PORT_5555_TCP_PROTO=tcp
FLOWER_SERVICE_HOST=10.67.97.89
FLOWER_SERVICE_PORT=5555
FLOWER_SERVICE_PORT_5555=5555
这是由于在部署前不久启动的 Flower 服务。但是,Flower 需要 FLOWER_PORT
中的整数并中止。
如何防止创建这些环境变量?
【问题讨论】:
它没有直接回答你的问题,但是当我过去遇到这样的冲突时,我已经重命名了服务,所以它不会发生冲突(即 FLOWER -> FLOWERSVC)。不是很满意,但它解决了问题。 【参考方案1】:您无法阻止创建这些,但您可以通过在部署 pod 模板中明确设置它们来使用您自己的值覆盖它们。所以,如果你即。期望 FLOWER_PORT 的默认值是 80
而不是 tcp://...
,你需要做的就是放
env:
- name: FLOWER_PORT
value: "80"
就是这样。
【讨论】:
在一个充满 Kubernetes 不感知应用程序的世界中,这是一种不幸的情况。特别是k8s设置自动APPNAME_PORT
是自找麻烦。以上是关于kubernetes各种port关系的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes 实战 -- 泛 kubernates 导论