我已经创建了一个包装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?它是在部署过程中生成的,因此我不能只将其键入到我的持久卷清单中。
答案 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