如何获取kubernetes服务的集群IP

时间:2019-03-08 14:31:49

标签: kubernetes google-kubernetes-engine kubectl

我已经创建了一个包装nfs的服务,我需要为其获取群集IP,以便可以使用它将其设置为持久的容量。

我知道我可以使用以下方法来获取此信息:

$ kubectl get svc nfs-server
NAME                  TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
nfs-server   ClusterIP   10.59.243.58   <none>        2049/TCP,20048/TCP,111/TCP   2m

我想知道的是,如何在bash脚本中提取该群集IP?它是在部署过程中生成的,因此我不能只将其键入到我的持久卷清单中。

2 个答案:

答案 0 :(得分:2)

您可以像下面这样解析kubectl get svc命令的,以获取部署的内部细节。

export CLUSTER_IP=$(kubectl get services/nfs-server -o go-template='{{(index.spec.clusterIP)}}');echo CLUSTER_IP=$CLUSTER_IP

或者,您可以尝试涉及cut and awk的Shell hack的任意组合。一个这样的例子是;

kubectl describe svc/nfs-server | grep IP: | awk '{print $2;}'

答案 1 :(得分:1)

使用go-template输出的上一个答案失败。使用jsonpath对我有用:

#!/bin/bash

cluster_ip=$(kubectl get svc nfs-server -ojsonpath='{.spec.clusterIP}')
echo $cluster_ip