【发布时间】:2020-09-04 07:21:32
【问题描述】:
我有本地 Kubernetes 集群。我已经部署了我的应用程序并公开为ClusterIP 服务。
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
version: v1
spec:
containers:
- name: myapp
image: myrepo:5000/myapp
imagePullPolicy: Always
ports:
- containerPort: 8088
imagePullSecrets:
- name: regcred
我的服务
apiVersion: v1
kind: Service
metadata:
name: myapp
namespace: default
labels:
app: myapp
spec:
selector:
app: myapp
ports:
- protocol: TCP
port: 8088
targetPort: 8088
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: myapp
spec:
host: myapp
kubectl get svc 给出:
myapp ClusterIP 10.233.41.178 <none> 8088/TCP 13m
我可以使用ClusterIP 地址curl 到我的服务,但是当我尝试curl http://myapp:8088/api 时,它给出了。 (从我的主节点运行)
curl: (7) 连接myapp 8088端口失败:连接被拒绝
我使用istio service-mesh。我在这里错过了什么?
我尝试过以下线程:
【问题讨论】:
-
应用程序侦听端口
8088并使用0.0.0.0而不是127.0.0.1? -
@ArghyaSadhu 我没听懂,我可以使用 clusterIP 访问,唯一的问题是使用服务名称。
-
哦..好吧,那么就这些条款来说很好..你不能使用来自外部集群的
clusterip类型服务,包括节点..使用NodePort类型服务instaed。您是否在 coredns 或 cni 插件 pod 中看到任何错误? -
@ArghyaSadhu 检查了两者,看不到任何错误。我在这里错过了什么?
-
我想知道您如何从集群外部(即 kubernetes 节点)访问 clusterip。你确定吗?据我所知,您需要使用
NodePort服务。也许尝试一下
标签: kubernetes istio