k8s(8) : 命令增强

本文提供了一系列针对Kubernetes环境的Shell脚本,包括获取节点信息、命名空间、配置映射、描述、删除资源等操作,简化了日常管理和故障排查工作。

default_namespace=test-ns
default_config=test-config

rm -rf config.sh
rm -rf describe.sh
rm -rf delete.sh
rm -rf exec.sh
rm -rf helm.sh
rm -rf logs.sh
rm -rf pods.sh
rm -rf services.sh
rm -rf pvs.sh
rm -rf pvcs.sh
rm -rf deploys.sh
rm -rf yaml.sh
rm -rf edit.sh
rm -rf nss.sh
rm -rf nodes.sh
rm -rf states.sh

cat > nodes.sh << 'EOF'
kubectl get nodes -o wide
EOF

cat > nss.sh << 'EOF'
kubectl get ns
EOF

cat > config.sh << 'EOF'
if [ ! -n "$1" ] ;then
    kubectl get configmap default_config -o yaml -n default_namespace
else
    kubectl get configmap $1 -o yaml -n default_namespace
fi
EOF

cat > describe.sh << 'EOF'
id=`kubectl get $1 -n default_namespace |grep  $2  | head -n 1 |awk '{print $1}'`
if [ ! $id ]; then
    echo -e "\033[31m 未根据类型[$1]关键字[$2]检索到相关资源 \033[0m"
    exit 0
else
    kubectl describe $1 $id -n default_namespace
fi
EOF

cat > delete.sh << 'EOF'
id=`kubectl get $1 -n default_namespace |grep  $2  |awk '{print $1}'`
if [ ! $id ]; then
    echo -e "\033[31m 未根据类型[$1]关键字[$2]检索到相关资源 \033[0m"
    exit 0
fi
kubectl delete $1 $id -n default_namespace
EOF

cat > exec.sh << 'EOF'
podid=`kubectl get pod -n default_namespace |grep  $1 | grep Running | head -n 1 |awk '{print $1}'`
if [ ! $podid ]; then
    echo -e "\033[31m 未检索到状态为[Running]的pod \033[0m"
else
    kubectl exec -it $podid -n default_namespace -- /bin/bash
fi

EOF

cat > helm.sh << 'EOF'
if [ -n "$1" ] ;then
    helm list -n default_namespace |grep $1
else
    helm list -n default_namespace
fi
EOF

cat > logs.sh << 'EOF'
podid=`kubectl get pod -n default_namespace |grep  $1 | grep Running | head -n 1 |awk '{print $1}'`
if [ ! $podid ]; then
    podid=`kubectl get pod -n default_namespace |grep  $1 | head -n 1 |awk '{print $1}'`
    if [ ! $podid ]; then
        echo -e "\033[31m 未检索到pod \033[0m"
    fi
else
    kubectl logs --tail=200 -f $podid -n default_namespace
fi

EOF

cat > pods.sh << 'EOF'
case $1 in
    all)
      kubectl get pod --all-namespaces -o wide
      ;;

    default)
      kubectl get pod -o wide
      ;;
    ns)
      kubectl get pod -n $2 -o wide
      ;;
    *)
      kubectl get pod -n default_namespace -o wide
      ;;
esac
EOF

cat > services.sh << 'EOF'
case $1 in
    all)
      kubectl get service --all-namespaces
      ;;
    default)
      kubectl get service
      ;;
    ns)
      kubectl get service -n $2
      ;;
    *)
      kubectl get service -n default_namespace
      ;;
esac
EOF

cat > pvs.sh << 'EOF'
case $1 in
    all)
      kubectl get pv --all-namespaces
      ;;
    default)
      kubectl get pv
      ;;
    ns)
      kubectl get pv -n $2
      ;;
    *)
      kubectl get pv -n default_namespace
      ;;
esac
EOF

cat > pvcs.sh << 'EOF'
case $1 in
    all)
      kubectl get pvc --all-namespaces
      ;;
    default)
      kubectl get pvc
      ;;
    ns)
      kubectl get pvc -n $2
      ;;
    *)
      kubectl get pvc -n default_namespace
      ;;
esac
EOF

cat > deploys.sh << 'EOF'
case $1 in
    all)
      kubectl get deploy --all-namespaces
      ;;
    default)
      kubectl get deploy
      ;;
    ns)
      kubectl get deploy -n $2
      ;;
    *)
      kubectl get deploy -n default_namespace
      ;;
esac
EOF

cat > yaml.sh << 'EOF'
type=$1
id=`kubectl get $type -n default_namespace |grep  $2  | head -n 1 |awk '{print $1}'`
if [ ! $id ]; then
    echo -e "\033[31m 未根据类型[$type]关键字[$2]检索到相关资源 \033[0m"
    exit 0
fi
kubectl get $type $id -n default_namespace -o yaml
EOF

cat > edit.sh << 'EOF'
type=$1
id=`kubectl get $type -n default_namespace |grep  $2  | head -n 1 |awk '{print $1}'`
if [ ! $id ]; then
    echo -e "\033[31m 未根据类型[$type]关键字[$2]检索到相关资源 \033[0m"
    exit 0
fi
kubectl edit $1 $id -n default_namespace
EOF

cat > states.sh << 'EOF'
case $1 in
    all)
      kubectl get StatefulSet --all-namespaces
      ;;
    default)
      kubectl get StatefulSet
      ;;
    ns)
      kubectl get StatefulSet -n $2
      ;;
    *)
      kubectl get StatefulSet -n default_namespace
      ;;
esac
EOF

sed -i "s# default_namespace# $default_namespace#g" config.sh
sed -i "s# default_namespace# $default_namespace#g" describe.sh
sed -i "s# default_namespace# $default_namespace#g" delete.sh
sed -i "s# default_namespace# $default_namespace#g" exec.sh
sed -i "s# default_namespace# $default_namespace#g" helm.sh
sed -i "s# default_namespace# $default_namespace#g" logs.sh
sed -i "s# default_namespace# $default_namespace#g" pods.sh
sed -i "s# default_namespace# $default_namespace#g" services.sh
sed -i "s# default_namespace# $default_namespace#g" yaml.sh
sed -i "s# default_namespace# $default_namespace#g" pvs.sh
sed -i "s# default_namespace# $default_namespace#g" pvcs.sh
sed -i "s# default_namespace# $default_namespace#g" deploys.sh
sed -i "s# default_namespace# $default_namespace#g" edit.sh
sed -i "s# default_namespace# $default_namespace#g" states.sh

sed -i "s# default_config# $default_config#g" config.sh


chmod +x  config.sh
chmod +x  describe.sh
chmod +x  delete.sh
chmod +x  exec.sh
chmod +x  helm.sh
chmod +x  logs.sh
chmod +x  pods.sh
chmod +x  services.sh
chmod +x  pvs.sh
chmod +x  pvcs.sh
chmod +x  deploys.sh
chmod +x  yaml.sh
chmod +x  edit.sh
chmod +x  nodes.sh
chmod +x  nss.sh
chmod +x  states.sh

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值