kubernetes - 如何在 Kubernetes 中与 sidecar 容器中的 pod 通信?
问题描述
我无法与侧车集装箱中的吊舱交谈......任何帮助将不胜感激!
这是我的部署
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: sidecar-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: sidecar
spec:
containers:
- name: sidecar1
image: sidecar
args:
- /sidecar
- --port=32000
- --path=/sidecar1
ports:
- containerPort: 32000
- name: sidecar2
image: sidecar
args:
- /sidecar
- --port=32001
- --path=/sidecar2
ports:
- containerPort: 32001
这是我对 pod 的服务
---
apiVersion: v1
kind: Service
metadata:
name: sidecar-service
spec:
ports:
- name: http
port: 80
targetPort: 32001
protocol: TCP
selector:
app: sidecar
type: NodePort
部署好 ingress 后,我可以连接到 service 和 sidecar2,因为 sidecar2 是通过 service 暴露的:
# this works
curl -L http://ADDR/sidecar2
但是,我期待能够卷曲到侧面容器,但我不能。
这就是我所做的。我 ssh 进入 sidecar 容器。并使用以下命令卷曲位于同一位置的 pod localhost
:
kubectl exec -it sidecar2 -- /bin/bash
# this doesn't work
curl -L http://localhost:32000/sidecar1
有人可以帮我吗?
谢谢!
解决方案
如果你的 sidecar 镜像暴露了端口(重新检查你的 dokefile),你必须连接curl localhost:port/sidecar
如果您在使用该服务从容器内部连接时遇到问题,则可能与hairpin_mode相关。
推荐阅读
- azure-ad-b2c - 我可以提前禁用 Azure B2C 实例中的用户吗?
- web-scraping - Scrapy 抓取多个页面
- microsoft-graph-api - transitiveMemberOf $filter 仅在您是直接成员时有效
- macos - mac终端路径中的faroarm-laptop是什么?我的用户名@faroarm-laptop ~ %
- azure - 我可以使用 Azure Policy 来审核或强制执行 Azure 活动日志诊断设置吗?
- css - 使用 CSS 在下拉菜单中更改照片
- java - java数组字节文件到人类可读
- typescript - 为什么我收到 NoExplicitTypeError?
- reactjs - 如何从 React 上下文中只导入我需要的函数
- c# - 如何检查数据库中是否存在特定字段,如果不存在则添加记录,否则进行编辑