无法访问外部IP Kubernetes上的服务

9nvpjoqh  于 2022-11-21  发布在  Kubernetes
关注(0)|答案(2)|浏览(175)

我有一个问题,我不能访问服务与curl虽然我有外部IP.我遇到了超时请求.这里是我的服务
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE crawler-manager-1 NodePort 10.103.18.210 192.168.0.10 3001:30029/TCP 2h redis NodePort 10.100.67.138 192.168.0.11 6379:30877/TCP 5h,这里是我yaml服务文件:

apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe
      convert -f docker-compose.yml
    kompose.version: 1.17.0 (a74acad)
  creationTimestamp: null
  labels:
    io.kompose.service: crawler-manager-1
  name: crawler-manager-1
  namespace: cbpo-example
spec:
  type: NodePort
  externalIPs:
    - 192.168.0.10
  ports:
  - name: "3001"
    port: 3001
    targetPort: 3001
  selector:
    io.kompose.service: crawler-manager-1
    run: redis
status:
  loadBalancer: {}

这里是我的部署yml文件

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: C:\ProgramData\chocolatey\lib\kubernetes-kompose\tools\kompose.exe
      convert -f docker-compose.yml
    kompose.version: 1.17.0 (a74acad)
  creationTimestamp: null
  labels:
    io.kompose.service: crawler-manager-1
  name: crawler-manager-1
  namespace: cbpo-example
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: crawler-manager-1
    spec:
      hostNetwork: true
      containers:
      - args:
        - npm
        - start
        env:
        - name: DB_HOST
          value: mysql
        - name: DB_NAME
        - name: DB_PASSWORD
        - name: DB_USER
        - name: REDIS_URL
          value: redis://cbpo-redis
        image: localhost:5000/manager
        name: crawler-manager-1
        ports:
        - containerPort: 3001
        resources: {}
      restartPolicy: Always
status: {}

任何人都有一个问题,像我一样,当与kubernetes工作?我需要访问检查,如果2个服务在我的命名空间可以相互连接,非常感谢。

oymdgrw7

oymdgrw71#

您 可以 使用 服务 的 DNS 名称 进行 通信 , 而 不是 通过 服务 的 IP 地址 进行 通信 。
为 " 正常 " ( 非 无头 ) 服务 分配 一 个 名称 形式 为 my-svc . my - namespace.svc.cluster.local 的 DNS A 记录 。 这 将 解析 为 服务 的 群集 IP 。
" Headless " ( 无 群集 IP ) 服务 还 分配 了 一 个 DNS A 记录 , 其 名称 格式 为 my-svc . my - namespace.svc.cluster.local 。 与 普通 服务 不同 , 这 将 解析 为 服务 所 选 单元 的 IP 集 。 客户 机 应 使用 该 IP 集 , 否则 使用 从 该 IP 集中 进行 的 标准 循环 选择 。
更多 信息 , 请 查看 Kubernetes DNS 服务

dohp0rv5

dohp0rv52#

确保您看到应用程序的端点。发生这种情况的一个原因是pod名称不匹配..如果我没记错,应该是selector.name

kubectl get endpoints
 NAME         ENDPOINTS            AGE
 kubernetes   192.168.63.13:8080   1d

相关问题