kubernetes - 无法在外部IP Kubernetes上访问服务

标签 kubernetes kubectl

我有一个问题,尽管我有外部IP,但我无法使用curl访问服务。我满足超时请求。这是我的服务
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个服务是否可以相互连接,非常感谢。

最佳答案

与其通过IP地址进行服务通信,不如使用其DNS名称进行通信。

“Normal” (not headless) Services are assigned a DNS A record for a name of the form my-svc.my-namespace.svc.cluster.local. This resolves to the cluster IP of the Service.

“Headless” (without a cluster IP) Services are also assigned a DNS A record for a name of the form my-svc.my-namespace.svc.cluster.local. Unlike normal Services, this resolves to the set of IPs of the pods selected by the Service. Clients are expected to consume the set or else use standard round-robin selection from the set.


有关更多信息,请检查Kubernetes DNS for Services

关于kubernetes - 无法在外部IP Kubernetes上访问服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54288281/

相关文章:

azure - Kubernetes 使用 Azure Blob 存储

kubernetes - 如何向 Kubernetes(kubectl)添加用户?

Kubernetes 上的 Angular(入口路由)

kubernetes - 创建Pod沙箱失败: rpc error: code = Unknown desc = NetworkPlugin cni failed to set up pod network

kubernetes - 在金丝雀部署策略中,将特定用户重定向到具有新版本的 pod

kubernetes - Kubernetes 中没有 AWS 卷但 "bound"PVC

kubernetes - 在高负载情况下将k8s部署卸载到其他集群

kubernetes - Kubernetes编辑 secret 错误: “cannot restore slice from…”

kubernetes - 在工作时间之外降低 EKS 集群的成本

amazon-web-services - 有没有办法防止 kubectl 注销 kubernetes 节点?