大佬教程收集整理的这篇文章主要介绍了Kubernetes Pod 无法使用服务与另一个 Pod 通信,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有 2 个 Pod,每个 Pod 有 1 个容器。容器名称是:
@H_888_11@mc1 容器托管一个 asp.net core razor pages 应用,而 @H_888_11@mc2 托管一个 web API 应用。现在 mc1 必须与 mc2 通信,即剃刀页面应用程序必须调用 web API 应用程序。
我试图在下图中解释它:
我为这 2 个 pod 创建了 2 个部署:
name: dep1
labels:
app: mc-app1
spec:
replicas: 1
SELEctor:
matchLabels:
app: mc-app1
template:
Metadata:
labels:
app: mc-app1
spec:
containers:
- name: mc1
image: multiapp
imagePullPolicy: Never
ports:
- containerPort: 80
---
APIVersion: apps/v1
kind: Deployment
Metadata:
name: dep2
labels:
app: mc-app2
spec:
replicas: 1
SELEctor:
matchLabels:
app: mc-app2
template:
Metadata:
labels:
app: mc-app2
spec:
containers:
- name: mc2
image: multiAPI
imagePullPolicy: Never
ports:
- containerPort: 80
我还为包含 mc2 容器(即 web API 应用程序)的 POD 创建了一个服务。
APIVersion: v1
kind: service
Metadata:
name: multi-container-service-2
spec:
type: NodePort
SELEctor:
app: mc-app2
ports:
- port: 8080
targetPort: 80
部署和服务已成功应用到 k8s 集群。
接下来,我进入容器“mc1”并尝试卷曲名为 @H_888_11@multi-container-service-2 的服务,但这不起作用。
我收到错误:
curl: (7) 无法连接到 multi-container-service-2 端口 80:连接被拒绝
在下图中,我使用以下命令进入容器 @H_888_11@mc1 的外壳:
kubectl exec -it dep1-5c78b8c889-tjzzr -c mc1 -- /bin/bash
在下一张图片中,我正在做出现错误的卷曲:
请注意,我已经使用下面给出的 2 个命令安装了 curl:
apt-get update
apt-get install curl
为什么不能使用服务调用 mc2 容器中的应用程序?我的操作系统是 windows 10。
我正在这两个教程的帮助下:
您已将服务端口设置为 8080
,但您正在端口 80(这是容器的端口)上调用服务。
这应该有效:
curl http://multi-container-service-2:8080
如official kubernetes documentation:
中所述Kubernetes 为服务和 Pod 创建 DNS 记录。您可以使用一致的 DNS 名称而不是 IP 地址联系服务。
为了通过集群中的服务进行 Pod-to-Pod 通信,您必须使用以下语法:
def login_not_required(f):
@wraps(f)
def decorated_function(*args,**kwargs):
if "logged_in" in session:
return redirect(url_for("index"))
else:
return f(*args,**kwargs)
return decorated_function
因此,在您的情况下,使用 curl 将是:
{service_name}.{namespacE}.svc.cluster.local
以上是大佬教程为你收集整理的Kubernetes Pod 无法使用服务与另一个 Pod 通信全部内容,希望文章能够帮你解决Kubernetes Pod 无法使用服务与另一个 Pod 通信所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。