遍历匹配和指定ingress所有冲突的配置
原因
- 集群经常出现ingress调用404,原因为配置的server或者path冲突导致
#!/bin/bash
#遍历匹配和指定ingress所有冲突的配置
read -p "Enter cluster:" CLUSTER #输入集群名称
read -p "Enter namespace:" NAMESPACE #输入异常ingress的空间名
read -p "Enter ingressName:" INGRESSNAME #输入异常ingress名
echo "find the repeatHosts in $CLUSTER cluster"
REPEATHOST=`kubectl get ingress --all-namespaces -owide |egrep "<输入集群域名,如*.csdn.net|www.csdn.net>"`
echo $REPEATHOST
if [[ `echo $REPEATHOST` != "" ]];then
echo $REPEATHOST "is a repeat server,please change it!"
else
echo "Dons't have a repeat server"
fi
INGRESSADD=`kubectl get ingress -n $NAMESPACE $INGRESSNAME -owide |grep -v ADDRESS |awk '{print $3}'`
INGRESSHOST=`kubectl get ingress -n $NAMESPACE $INGRESSNAME -owide |grep -v ADDRESS |awk '{print $2}'`
INGRESSPATH=`kubectl get ingress --all-namespaces -oyaml |grep -v nginx.ingress.kubernetes.io |grep -w path:`
IFS=$'\n' #设置默认分隔符
echo "This ingress address is $INGRESSADD;"
for i in `kubectl get ingress --all-namespaces -owide |grep $INGRESSADD |grep "$INGRESSHOST" |awk '{print $1,$2}'`;do
if [[ `echo $i|awk '{print $2}'` != $INGRESSNAME ]];then
PATHALL=`kubectl get ingress --all-namespaces -oyaml |grep -v nginx.ingress.kubernetes.io |grep path:`
if [[ $INGRESSPATH =~ $PATHALL ]];then
echo $i "have a repeat path"$PATHALL
fi
else
echo "Dons't have a repeat path"
fi
done