我如何与 Kubernetes 中的 sidecar 容器中的 pod 通信?
How do I talk to a pod from sidecar container in Kubernetes?
我无法从边车集装箱与 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后,我可以连接到服务和sidecar2,因为sidecar2是通过服务暴露的:
# this works
curl -L http://ADDR/sidecar2
但是,我希望能够卷曲到侧面容器,但我不能。
这就是我所做的。我通过 ssh 进入 sidecar 容器。并使用 localhost
:
卷曲位于同一位置的 pod
kubectl exec -it sidecar2 -- /bin/bash
# this doesn't work
curl -L http://localhost:32000/sidecar1
有人可以帮我解决这个问题吗?
谢谢!
如果您的 sidecar 镜像暴露了端口(重新检查您的 dokefile),您必须连接 curl localhost:port/sidecar
如果您在使用服务从容器内部连接时遇到问题,这可能与hairpin_mode。
有关
我无法从边车集装箱与 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后,我可以连接到服务和sidecar2,因为sidecar2是通过服务暴露的:
# this works
curl -L http://ADDR/sidecar2
但是,我希望能够卷曲到侧面容器,但我不能。
这就是我所做的。我通过 ssh 进入 sidecar 容器。并使用 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。
有关