首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kube服务域名不起作用,但clusterIP确实与朱庇特企业网关一起工作

kube服务域名不起作用,但clusterIP确实与朱庇特企业网关一起工作
EN

Stack Overflow用户
提问于 2022-08-28 04:18:57
回答 1查看 135关注 0票数 5

我在kubernetes集群上的jupyter名称空间中设置了一个木星笔记本,在同一集群中的enterprise-gateway命名空间中安装了木星企业网关。

如果我将笔记本配置为使用enterprise-gateway连接到clusterIP服务,它可以正常工作。

代码语言:javascript
复制
--gateway-url=http://172.20.186.249:8888

但是,如果我切换到使用服务域名,笔记本会收到一个503连接拒绝的错误。

代码语言:javascript
复制
--gateway-url=http://enterprise-gateway.enterprise-gateway.svc.cluster.local:8888

当我使用busybox复选框检查kubernetes dns时,域将按预期进行解析。

代码语言:javascript
复制
kubectl -n default exec -ti busybox nslookup enterprise-gateway.enterprise-gateway
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
Server:    172.20.0.10
Address 1: 172.20.0.10 kube-dns.kube-system.svc.cluster.local

Name:      enterprise-gateway.enterprise-gateway
Address 1: 172.20.186.249 enterprise-gateway.enterprise-gateway.svc.cluster.local

我如何使域名工作?

JEG的服务配置如下所示。

代码语言:javascript
复制
kubectl describe svc enterprise-gateway --namespace enterprise-gateway
Name:                     enterprise-gateway
Namespace:                enterprise-gateway
Labels:                   app=enterprise-gateway
                          app.kubernetes.io/managed-by=Helm
                          chart=enterprise-gateway-2.6.0
                          component=enterprise-gateway
                          heritage=Helm
                          release=enterprise-gateway
Annotations:              meta.helm.sh/release-name: enterprise-gateway
                          meta.helm.sh/release-namespace: enterprise-gateway
Selector:                 app=enterprise-gateway
Type:                     NodePort
IP Family Policy:         SingleStack
IP Families:              IPv4
IP:                       172.20.250.15
IPs:                      172.20.250.15
Port:                     http  8888/TCP
TargetPort:               8888/TCP
NodePort:                 http  31366/TCP
Endpoints:                10.1.16.136:8888,10.1.2.228:8888,10.1.30.90:8888
Port:                     response  8877/TCP
TargetPort:               8877/TCP
NodePort:                 response  31201/TCP
Endpoints:                10.1.16.136:8877,10.1.2.228:8877,10.1.30.90:8877
Session Affinity:         ClientIP
External Traffic Policy:  Cluster
Events:                   <none>
EN

回答 1

Stack Overflow用户

发布于 2022-09-01 07:51:38

好吧,我不知道从哪里开始,我有很多发现。我将从眼睛捕捉者一开始,我有一个工作测试项目,我可以分享稍后,我必须详细说明这个答案,如果需要。

Step1

我看到你们的假货不匹配了。DNS查找没有将服务DNS解析为正确的IP。地址1: 172.20.186.249与IP: 172.20.250.15

要调试DNS:

/etc/resolv.conf

  1. kubectl exec "YOURPODNAME“

  1. 验证搜索路径和名称服务器的设置是否正确

名称服务器10.96.0.10搜索default.svc.cluster.local svc.cluster.local cluster.local options ndots:5

  1. 检查kubedns/coredns荚是否正在运行

库贝克尔得到豆荚-命名空间=库贝-系统名称就绪状态重新启动年龄.运行232 133d kube-proxy-b2frq 1/1运行0 15m .

如果吊舱正在运行,则全局DNS服务可能有问题。

代码语言:javascript
复制
kubectl get svc --namespace=kube-system
NAME      TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)     AGE kube-dns ClusterIP   10.96.0.10       <none>   53/UDP,53/TCP

您还可能需要检查DNS端点是否公开:

代码语言:javascript
复制
kubectl get ep kube-dns --namespace=kube-system
NAME       ENDPOINTS                     AGE
kube-dns   172.17.0.5:53,172.17.0.5:53   133d

这些调试操作通常会指出DNS配置的问题,或者只显示您的集群配置中应该启用DNS外接程序。

步骤2

当使用busybox检查kubernetes dns时,当查找地址1: 172.20.186.249 im时,如果期望在吊舱上安装IP 10.X.X.X,这似乎是不正确的,如下所示

  1. kubectl exec -stdin-tty "YOURPODNAME“- apt更新& sudo apt-get -y install dnsutils

  1. kubectl exec -it "YOURPODNAME“- /bin/bash

  1. 在吊舱内,再次运行(奇怪)-获取安装系统(

)。

  1. 待在吊舱内,运行nslookup "YOURSERVICENAME“,您将得到一个IP和一个名称(DNS)。检查此IP,因为它需要与服务description.

的IP匹配。

#4

  1. kubectl描述svc "YOURSERVICENAME", IP应与
  2. 相同

  1. 您必须看到的:

步骤3

  1. 一旦解决了步骤#2,您将能够使用步骤2中返回的服务名称(FQDN)--

待续..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73515965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档