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
k8s(8) : 命令增强
于 2022-05-25 17:56:43 首次发布
本文提供了一系列针对Kubernetes环境的Shell脚本,包括获取节点信息、命名空间、配置映射、描述、删除资源等操作,简化了日常管理和故障排查工作。
2327

被折叠的 条评论
为什么被折叠?



