【问题标题】:How to get the service IP in Kubernetes?如何在 Kubernetes 中获取服务 IP?
【发布时间】:2015-11-19 01:08:27
【问题描述】:

我根据官方文档here 运行了一个本地集群。我按照这些步骤操作,它工作正常,直到我设置了一个副本并尝试公开它。我的意思是:

./kubectl expose rc nginx --port=80

输出是这样的:

NAME      LABELS      SELECTOR    IP(S)     PORT(S)
nginx     run=nginx   run=nginx             80/TCP

当我再次尝试时,它说相同的服务正在运行。怎么知道IP?

【问题讨论】:

    标签: ubuntu docker cluster-computing kubernetes


    【解决方案1】:
    kubectl get service/servicename -o jsonpath='{.spec.clusterIP}'
    

    【讨论】:

    • 最好只提取需要的信息,而不是事后进行 grepping。
    【解决方案2】:
    kubectl get svc <your-service> -o yaml | grep ip
    

    【讨论】:

      【解决方案3】:

      IP 应该是您的主节点的外部 IP。 如果你在本地运行,它应该是 localhost 或你的 VM。

      当然要添加给定的端口。

      127.0.0.1:80
      

      例如。

      PS:通过运行确保您已经运行了容器/pod:

      kubectl get pods
      

      如果这不起作用,我建议代理它,至少用于测试目的。

      Kubectl proxy

      【讨论】:

      • 感谢@NegatioN 的回答。我运行了 ./kubectl get services 这个,它给了我 ip。
      • 如何找到external IP of master-node
      【解决方案4】:

      有几种方法可以做到这一点:

      kubectl get svc &lt;service-name&gt; -o yaml | grep clusterIP

      或者例如:

      kubectl describe svc &lt;service-name&gt; | grep IP

      【讨论】:

        【解决方案5】:

        为了方便参考:

        curl `kc describe svc nginx | grep IP | awk '{print $2}'`
        

        作为kurl bash 函数...

        
        ## for curling services by name...
        kurl() {
          name=$1
          path=$2
          add=`kc describe svc $name | grep IP | awk '{print $2}'`$path
          # echo "hitting $add"
          curl $add
        }
        # kurl nginx :8080/some/path/you/want
        

        【讨论】:

          猜你喜欢
          • 2016-08-05
          • 1970-01-01
          • 1970-01-01
          • 2018-08-27
          • 1970-01-01
          • 1970-01-01
          • 2019-05-29
          • 1970-01-01
          • 2018-06-06
          相关资源
          最近更新 更多