如何获取kubernetes服务的群集IP
我已经创建了一个封装nfs的服务,我需要为它获取集群IP,以便使用它将其设置为持久卷 我知道我可以使用以下方法获得此结果:如何获取kubernetes服务的群集IP,kubernetes,google-kubernetes-engine,kubectl,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> 204
$ 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
$kubectl获取svc nfs服务器
名称类型CLUSTER-IP外部IP端口年龄
nfs服务器群集IP 10.59.243.58 2049/TCP,20048/TCP,111/TCP 2m
我想知道的是,如何在bash脚本中提取集群IP?它是作为部署过程的一部分生成的,因此我不能只是将其键入到我的持久卷清单中。您可以解析下面类似的of
kubectl get svc
命令来获取部署的内部详细信息
export CLUSTER_IP=$(kubectl get services/nfs-server -o go-template='{{(index.spec.clusterIP)}}');echo CLUSTER_IP=$CLUSTER_IP
或者,您可以尝试任何涉及cut和awk
的shell黑客组合。一个这样的例子是
kubectl describe svc/nfs-server | grep IP: | awk '{print $2;}'
使用
go模板
输出的上一个答案失败。使用jsonpath
对我来说很有效:
#!/bin/bash
cluster_ip=$(kubectl get svc nfs-server -ojsonpath='{.spec.clusterIP}')
echo $cluster_ip