当前位置: 首页 > 知识库问答 >
问题:

Kubernetes / minikube不能ping同一群集中的pod,但是nslookup可以工作

杨鸿畅
2023-03-14

迷你版⏎ minikube版本:v0.22.3

我试图在一个minikube实例中设置不同的pod。我在一个公司代理后面运行,这可以解释一些这种行为。

我使用以下方法启动minikube

minikube start-docker-env HTTP _ PROXY = HTTP://corporate-PROXY . com:80-docker-env HTTPS _ PROXY = https://corporate-PROXY:80-docker-env NO _ PROXY = localhost,127.0.0.0/8,192.0.0.0/8

否则它根本不会工作。在docker上构建了一些图像后,我创建了两个服务和两个pod:

---
apiVersion: v1
kind: Pod
metadata:
  name: app
  labels:
    name: app
spec:
  containers:
    - name: app
      image: image_app
      ports:
        - containerPort: 7777
      volumeMounts:
        - mountPath: /codeage
          name: code-volume
          readOnly: false
      imagePullPolicy: IfNotPresent
      tty: true
  volumes:
   - hostPath:
       path: /codeage
     name: code-volume
---
apiVersion: v1
kind: Pod
metadata:
  name: db
  labels:
    name: db
spec:
  containers:
    - name: db
      image: postgres
      ports:
        - containerPort: 5432
      volumeMounts:
        - mountPath: /var/lib/postgresql
          name: db-data
      imagePullPolicy: IfNotPresent
      tty: true
  volumes:
   - hostPath:
       path: /db-data
     name: db-data
---
apiVersion: v1
kind: Service
metadata:
  name: db
spec:
  type: NodePort
  ports:
  - name: 'db-port'
    port: 5432
    targetPort: 5432
  selector:
    name: db
---
apiVersion: v1
kind: Service
metadata:
  name: app
  labels:
    name: app
spec:
  type: NodePort
  ports:
   - name: apport
     port: 7777
     targetPort: 7777
  selector:
     name: app
---

我无法从“app”窗格中ping“db ”( ssh ):

sh-4.2# ping db               
PING db.default.svc.cluster.local (10.0.0.116) 56(84) bytes of data.
From chicago11-rtr-3-v411.us.corporate.com (10.60.172.X) icmp_seq=1 Destination Host Unreachable
^C

正如你可以看到,虽然nslookup工作,并提供了正确的集群IP10.0.0.116和主机名db.default.svn.cluster.local

我可以ping通节点本身。我不能ping kube-dns...

有人有什么想法吗?

除了使用内置dns服务,还有其他选择吗?

共有2个答案

林德惠
2023-03-14

@sfgroups的答案是正确的!ping是错误的工具。Telnet或实际使用psql有效。实际问题是我的服务没有指向任何东西。

我更新了我的应用程序窗格,使其具有唯一的名称,然后更新了服务的选择器。

陶鸿畴
2023-03-14

我们无法ping服务IP地址,您可以使用服务IP telnet到服务中定义的端口5432

 类似资料:
  • 问题内容: 我想清除Kubernetes命名空间中所有Pod中的缓存。我想向端点发送一个请求,然后该端点将向命名空间中的所有Pod发送HTTP调用以清除缓存。目前,我只能使用Kubernetes击中一个吊舱,我无法控制哪个吊舱会被击中。 即使负载均衡器设置为RR,连续击中Pod(n次,其中n是Pod的总数)也无济于事,因为其他一些请求可能会不断蔓延。 这里讨论了相同的问题,但是我找不到实现的解决方

  • 问题内容: 我试图在HashMap中找到一个键。我可以使用’get’打印选定的键,但是在if语句中使用’containsKey’时,找不到该键。 我知道该键存在于Map中,但它一直返回false。有什么想法的人吗? 我的代码: 这是Location类的代码: 问题答案: 您必须确保该类已正确实现其和方法(文档)。也就是说,如果两个对象实际上相等,则它们应该共享一个公共哈希码,并且它们的方法应该返回

  • 我试图找到这个问题的答案,但在kubernetes文档或任何问答论坛中都找不到。 我有一个运行有4个节点的kubernetes集群。是否可以创建第二个集群,重用前一个集群中的一个或多个节点?或者一个节点被限制在单个kubernetes集群中? 我正在使用RKE(用于部署k8集群的牧场工具)运行实际的集群,我发现这个问题让我怀疑这种可能性。 感谢您的澄清。

  • 我有一个在kubernetes集群(在AWS EKS上)上运行的mongo db副本集,比如集群-1。这在具有cidr的VPC-1中运行192.174.0.0/16. 我在一个单独的VPC中有另一个集群,比如VPC-2,在那里我将在mongo集群之上运行一些应用程序。该VPC cidr范围为192.176.0.0/16。所有VPC对等和安全组入口/出口规则都正常工作,我能够跨两个VPC ping集

  • 我有一个kubernetes集群和一个master和一个worker,我有运行一个命名空间“PG”的DB服务postgres,我有另一个运行在默认命名空间中的服务配置服务器,我无法从默认命名空间中的配置服务器服务访问postgres Kubernetes版本1.13覆盖Network-Calico根据我读到的文章,如果pods没有定义任何网络策略,那么pods可以不受任何限制地到达任何其他命名空间