我需要shell脚本来获取部署在kubernetes集群上的服务的ip

问题描述 投票:-3回答:2

我在VSTS中创建了一个发布定义,我只需要获取使用Shell Script部署的服务的外部ip。我可以从命令行执行此操作,但不能从VSTS版本定义执行此操作。我将JSON存储在一个由IP组成的变量中。我需要从这个JSON中获取IP。

或者让我知道他们是否是kubernetes的任何命令,它将仅返回已部署服务的外部IP而不返回任何其他信息。

json bash shell kubernetes azure-pipelines-release-pipeline
2个回答
0
投票

假设您有LoadBalancer类型的服务:

kubectl get svc <your_service> -ao jsonpath='{..ip}'

0
投票

试试这段代码:

function readJson {  
  UNAMESTR=`uname`
  if [[ "$UNAMESTR" == 'Linux' ]]; then
    SED_EXTENDED='-r'
  elif [[ "$UNAMESTR" == 'Darwin' ]]; then
    SED_EXTENDED='-E'
  fi; 

  VALUE=`grep -m 1 "\"${2}\"" ${1} | sed ${SED_EXTENDED} 's/^ *//;s/.*: *"//;s/",?//'`

  if [ ! "$VALUE" ]; then
    echo "Error: Cannot find \"${2}\" in ${1}" >&2;
    exit 1;
  else
    echo $VALUE ;
  fi; 
}
NAME=`readJson package.json name` || exit 1;  
# $NAME is "sample-project"

Read a JSON Value in Bash

您可以通过调用echo {variable} > test.json将变量值输出到JSON文件。

© www.soinside.com 2019 - 2024. All rights reserved.