我有一个ruby on rails部署,我想在前端部署中使用它,所以我创建了一个名为“flicron-backend-service”的公开端口3000的服务
以下是该服务的说明
kubectl describe svc flicron-backend-service
Name: flicron-backend-service
Namespace: default
Labels: io.kompose.service=flicron-backend-service
Annotations: kompose.cmd: kompose convert -f docker-compose.yml
kompose.version: 1.28.0 (c4137012e)
Selector: io.kompose.service=flicron-backend
Type: ClusterIP
IP Family Policy: SingleStack
IP Families: IPv4
IP: 10.107.112.244
IPs: 10.107.112.244
Port: 3000 3000/TCP
TargetPort: 3000/TCP
Endpoints: 10.244.0.144:3000
Session Affinity: None
Events: <none>
我正在尝试使用服务名称,但未得到解决。我已尝试从minikube内部 curl 后端服务名称,但未成功
curl flicron-backend-service:3000
curl: (6) Could not resolve host: flicron-backend-service
curl flicron-backend-service.default.svc.cluster.local:3000
curl: (6) Could not resolve host: flicron-backend-service.default.svc.cluster.local
但是如果我用ip的话就能正常工作
curl 10.107.112.244:3000
# some HTML
下面是我的DNS配置
kubectl describe cm coredns -n kube-system
Name: coredns
Namespace: kube-system
Labels: <none>
Annotations: <none>
Data
====
Corefile:
----
.:53 {
log
errors
health {
lameduck 5s
}
ready
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
prometheus :9153
hosts {
192.168.49.1 host.minikube.internal
fallthrough
}
forward . /etc/resolv.conf {
max_concurrent 1000
}
cache 30
loop
reload
loadbalance
}
BinaryData
====
Events: <none>
2条答案
按热度按时间kx7yvsdv1#
我已经尝试从minikube内部 curl 后端服务名称,但没有成功
如果您明确表示您已经:
minikube ssh
)curl
直接来自minikube
示例的服务名称。那它应该不工作。
它将从针对内部Kubernetes DNS解析的Pod/容器工作。
让我解释一下:
Kubernetes环境中的DNS解析由位于
kube-system
命名空间中的coredns
处理。它是托管在Kubernetes内部的容器化服务。有关如何连接到它的信息将通过Kubelet注入Pod。您可以通过以下方式查看:
kubectl run -it basic-pod --image=nginx -- /bin/bash
cat /etc/resolv.conf
minikube本身没有在
/etc/hosts
中配置核心dns。尝试使用实际的
Pod
联系您的Service
:kubectl run -it basic-pod --image=nginx -- /bin/bash
apt update && apt install dnsutils -y
-nginx
图像用于简化nslookup nginx
-在我的minikube
中有一个名为nginx
的Service
我建议您看一下以下文档:
ru9i0ody2#
我认为在使用dns时不需要指定端口。你试过- curl http://flicron-backend-service.default.svc.cluster.local吗?