首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes内部服务IP找不到pod

Kubernetes内部服务IP找不到pod
EN

Stack Overflow用户
提问于 2021-08-28 02:29:35
回答 2查看 274关注 0票数 1

我有下面的pod定义来运行nginx的基本实例

代码语言:javascript
复制
---
apiVersion: v1
kind: Pod
metadata:
  name: basic
  labels:
    appName: static-website
spec:
  containers:
      - image: nginx
        name: basic

我已经做了以下服务定义

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: web-service-local
spec:
  type: NodePort
  ports:
   - targetPort: 80
     port: 80
     nodePort: 30080
  selector:
    appName: static-website

❌当我试图通过服务IP访问nginx页面时,它被卡住了

  • kubectl exec --stdin --tty basic -- /bin/bash
  • curl web-service-local

我已经成功地证实了

  • ✅吊舱运行正常,就像我运行kubectl get pods时得到

一样

代码语言:javascript
复制
NAME    READY   STATUS    RESTARTS   AGE
basic   1/1     Running   0          7m22s

服务选择器与荚标签

  • kubectl describe svc web-service-local | grep Selector | awk '{print $2}'
  • kubectl describe pod basic | grep Labels | awk '{print $2}'

匹配的

nginx正在运行

  • kubectl exec --stdin --tty basic -- /bin/bash
  • curl localhost以检索标准nginx homepage.

  • kubectl get pods -l appName=static-website -o go-template='{{range .items}}{{.status.podIP}}{{"\n"}}{{end}}',返回的IP地址
    • ✅i可以连接到吊舱,而nginx正在运行,并且可以通过IP地址连接
    • IP)来自第一command

我可以验证服务和pod都在默认名称空间

  • kubectl get pod basic --namespace default中显示pod
  • kubectl get svc web-service-local --namespace default

我可以验证DNS已经安装,

  • kubectl exec --stdin --tty basic -- /bin/bash
  • apt update && apt upgrade && apt install dnsutils -y
  • nslookup web-service-localnslookup web-service-local.defaultnslookup web-service-local.default.svc.cluster.local都返回same

代码语言:javascript
复制
Server:     10.96.0.10
Address:    10.96.0.10#53

Name:   web-service-local.default.svc.cluster.local
Address: 10.106.61.252

✅我已经验证了我可以通过端点IP访问nginx

  • kubectl describe svc web-service-local | grep Endpoints | awk '{print $2}' 端点IP
  • kubectl exec --stdin --tty basic -- /bin/bash
  • curl **Endpoint IP**
EN

回答 2

Stack Overflow用户

发布于 2021-08-28 06:05:59

由于您有NodePort服务类型的实现,请尝试使用nodeIP:从浏览器中的NodePort或执行curl,因为NodePort服务是直接获取服务的外部通信量的最原始方式。顾名思义,NodePort在所有节点(VM)上打开一个特定端口,发送到该端口的任何通信都被转发到服务。

代码语言:javascript
复制
curl -kvv Nodeip:NodePort 
票数 0
EN

Stack Overflow用户

发布于 2021-10-03 09:15:42

配置起作用了。问题是我在当地安装了Minikube。我一搬到AKS就没事了

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

https://stackoverflow.com/questions/68960905

复制
相关文章

相似问题

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