add
This commit is contained in:
24
998-常用脚本/uavcloud-被cmii_operator替代/K8S相关脚本.sh
Normal file
24
998-常用脚本/uavcloud-被cmii_operator替代/K8S相关脚本.sh
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 获取命令空间 uavcloud-uat 中所有部署(deployment)的镜像名称
|
||||
kubectl get deployments -n uavcloud-demo -o=jsonpath='{range .items[*]}{.spec.template.spec.containers[*].image}{"\n"}{end}'
|
||||
|
||||
# 获取命名空间 uavcloud-uat种所有的configmap,并且保存为独立的文件,文件名为configmap名
|
||||
mkdir configmaps
|
||||
kubectl get configmaps -n uavcloud-uat -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}' | while read configmap; do
|
||||
kubectl get configmap $configmap -n uavcloud-uat -o yaml > ./configmaps/$configmap.yaml
|
||||
done
|
||||
|
||||
# 获取命名空间 uavcloud-uat种所有的ingress,并且保存为独立的文件,文件名为ingress名
|
||||
mkdir ingresses
|
||||
kubectl get ingress -n uavcloud-uat -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}' | while read ingress; do
|
||||
kubectl get ingress $ingress -n uavcloud-uat -o yaml > ./ingresses/$ingress.yaml
|
||||
done
|
||||
|
||||
|
||||
# kubectl删除所有命名空间的状态不正常的pod
|
||||
kubectl get pods --all-namespaces | awk '{ if($3 != "Running" && $3 != "Completed") print "kubectl delete pod " $2 " -n " $1 }' | sh
|
||||
|
||||
|
||||
# 获取demo空间所有deployment的名称
|
||||
kubectl get deployments -n uavcloud-demo -o=jsonpath='{.items [*].metadata.name}'
|
||||
1
998-常用脚本/uavcloud-被cmii_operator替代/k8s-消灭全部状态不正常的Pod.sh
Normal file
1
998-常用脚本/uavcloud-被cmii_operator替代/k8s-消灭全部状态不正常的Pod.sh
Normal file
@@ -0,0 +1 @@
|
||||
#!/bin/bash
|
||||
39
998-常用脚本/uavcloud-被cmii_operator替代/uavcloud-删除状态为异常的Pod.sh
Normal file
39
998-常用脚本/uavcloud-被cmii_operator替代/uavcloud-删除状态为异常的Pod.sh
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
all_unhealthy_pod_list=""
|
||||
|
||||
all_cmii_name_space=(uavcloud-test uavcloud-feature uavcloud-uat uavcloud-dev uavcloud-devflight uavcloud-devoperation)
|
||||
clean_up_log="clean_unhealthy_pod_log_$(date +'%Y-%m-%d-%H-%M-%S')"
|
||||
mkdir -p /root/wdd
|
||||
touch "/root/wdd/${clean_up_log}"
|
||||
echo "clean log is => /root/wdd/$clean_up_log"
|
||||
|
||||
echo ""
|
||||
for name_space in "${all_cmii_name_space[@]}"; do
|
||||
echo "[NAMESPACE] - start to deal with namespace [$name_space]"
|
||||
if ! kubectl get ns "$name_space"; then
|
||||
echo "[NAMESPACE] - namespace of [$name_space] not exists !"
|
||||
echo ""
|
||||
continue
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2207
|
||||
all_unhealthy_pod_list=($(kubectl get pods --field-selector=status.phase!=Running,status.phase!=Succeeded -n "$name_space" -o=jsonpath='{.items[*].metadata.name}' | tr " " "\n"))
|
||||
for unhealthy_pod in "${all_unhealthy_pod_list[@]}"; do
|
||||
echo ""
|
||||
if ! echo "$unhealthy_pod" | grep -q "mysql|redis|rabbit|mongo|nacos|srs"; then
|
||||
clean_log="[clean_up] start to clean namespace [$name_space] unhealthy pod of => $unhealthy_pod"
|
||||
echo "${clean_log}" >>"/root/wdd/$clean_up_log"
|
||||
echo "${clean_log}"
|
||||
kubectl -n "$name_space" delete pod "$unhealthy_pod" --force
|
||||
else
|
||||
clean_log="[clean_up] namespace [$name_space] unhealthy pod of => $unhealthy_pod not clean !"
|
||||
echo "${clean_log}" >>"/root/wdd/$clean_up_log"
|
||||
echo "${clean_log}"
|
||||
fi
|
||||
|
||||
echo "[NAMESPACE] - accomplished!"
|
||||
echo ""
|
||||
done
|
||||
done
|
||||
94
998-常用脚本/uavcloud-被cmii_operator替代/uavcloud-副本数量.sh
Normal file
94
998-常用脚本/uavcloud-被cmii_operator替代/uavcloud-副本数量.sh
Normal file
@@ -0,0 +1,94 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 设置命名空间
|
||||
NAMESPACE="xmyd"
|
||||
|
||||
desired_deployment_name="cmii"
|
||||
|
||||
change_to_integration() {
|
||||
echo "[change_to_integration] - namespace set to uavcloud-test!"
|
||||
NAMESPACE="uavcloud-test"
|
||||
echo ""
|
||||
}
|
||||
|
||||
change_to_validation() {
|
||||
echo "[change_to_validation] - namespace set to uavcloud-feature!"
|
||||
NAMESPACE="uavcloud-feature"
|
||||
echo ""
|
||||
}
|
||||
|
||||
change_to_uat() {
|
||||
echo "[change_to_uat] - namespace set to change_to_uat!"
|
||||
NAMESPACE="uavcloud-uat"
|
||||
echo ""
|
||||
}
|
||||
|
||||
restart_deployment() {
|
||||
|
||||
local need_to_scale_up_deployments
|
||||
# shellcheck disable=SC2207
|
||||
need_to_scale_up_deployments=($(kubectl get deployments -n $NAMESPACE -o=jsonpath='{.items[*].metadata.name}' | tr " " "\n"))
|
||||
|
||||
local deployment_name
|
||||
local desired_replica_count
|
||||
for deployment_name in "${need_to_scale_up_deployments[@]}"; do
|
||||
if echo "$deployment_name" | grep -qE "${desired_deployment_name}"; then
|
||||
echo "[RESTART] - namespace of [$NAMESPACE] deployment of [$deployment_name] need to RESTART !"
|
||||
echo ""
|
||||
desired_replica_count=$(kubectl -n "$NAMESPACE" get deployment "$deployment_name" -o=jsonpath='{.spec.replicas}')
|
||||
kubectl scale deployment "$deployment_name" --replicas=0 -n "$NAMESPACE"
|
||||
echo "[SCALE] - namespace of [$NAMESPACE] deployment of [$deployment_name] desired_replica_count is $desired_replica_count"
|
||||
kubectl scale deployment "$deployment_name" --replicas="${desired_replica_count}" -n "$NAMESPACE"
|
||||
echo ""
|
||||
fi
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
change_replica_of_deployment() {
|
||||
|
||||
if [ "$1" == "" ]; then
|
||||
echo "[change_replica_of_deployment] - desired_replica_count is null , can not execute !"
|
||||
return 233
|
||||
fi
|
||||
local desired_replica_count
|
||||
desired_replica_count=$1
|
||||
|
||||
if [ "${desired_deployment_name}" == "" ]; then
|
||||
echo "[change_replica_of_deployment] - WARNING all deployment of [$NAMESPACE] will be SCALE to => [$desired_replica_count] !!"
|
||||
fi
|
||||
|
||||
local all_deployment_name_list
|
||||
# shellcheck disable=SC2207
|
||||
all_deployment_name_list=($(kubectl get deployments -n $NAMESPACE -o=jsonpath='{.items [*].metadata.name}' | tr " " "\n"))
|
||||
|
||||
local deployment_name
|
||||
for deployment_name in "${all_deployment_name_list[@]}"; do
|
||||
if echo "$deployment_name" | grep -qE "${desired_deployment_name}"; then
|
||||
echo ""
|
||||
echo "[SCALE] - namespace of [$NAMESPACE] deployment of [$deployment_name] SCALE TO => [$desired_replica_count]"
|
||||
kubectl scale deployment "$deployment_name" --replicas="${desired_replica_count}" -n "$NAMESPACE"
|
||||
echo ""
|
||||
fi
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
main() {
|
||||
|
||||
# 修改环境
|
||||
change_to_validation
|
||||
|
||||
# 模糊匹配
|
||||
# 空则匹配命名空间中的全部deployment
|
||||
# desired_deployment_name="bitbu"
|
||||
|
||||
# 重启 deployment1
|
||||
# restart_deployment
|
||||
|
||||
# 改变deployment的副本数量
|
||||
change_replica_of_deployment 1
|
||||
|
||||
}
|
||||
|
||||
main
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
\
|
||||
all_cmii_name_space=(uavcloud-test uavcloud-feature uavcloud-dev uavcloud-devflight uavcloud-devoperation)
|
||||
# shellcheck disable=SC2207
|
||||
|
||||
|
||||
for name_space in "${all_cmii_name_space[@]}"; do
|
||||
echo "[NAMESPACE] - start to deal with namespace [$name_space]"
|
||||
if ! kubectl get ns "$name_space"; then
|
||||
echo "[NAMESPACE] - namespace of [$name_space] not exists !"
|
||||
echo ""
|
||||
continue
|
||||
fi
|
||||
echo ""
|
||||
|
||||
all_zero_replicas_deployment_list=($(kubectl get deployments -n "$name_space" -o=jsonpath='{.items[?(@.spec.replicas==0)].metadata.name}' | tr " " "\n"))
|
||||
|
||||
for deployment_name in "${all_zero_replicas_deployment_list[@]}"; do
|
||||
if echo "$deployment_name" | grep -q "cmii"; then
|
||||
echo "[SCALE] - going to scale [$name_space] [$deployment_name] to 1 !!"
|
||||
kubectl scale deployment "$deployment_name" --replicas=1 -n "$name_space"
|
||||
echo ""
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
done
|
||||
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
namespace="uavcloud-demo"
|
||||
configmaps=$(kubectl get configmaps -n $namespace | grep tenant | awk '{print $1}')
|
||||
|
||||
for configmap in $configmaps
|
||||
do
|
||||
echo "ConfigMap: $configmap"
|
||||
kubectl get configmap $configmap -n $namespace -o yaml
|
||||
echo "---------------------"
|
||||
done
|
||||
20
998-常用脚本/uavcloud-被cmii_operator替代/uavcloud-消灭重启次数过多的应用.sh
Normal file
20
998-常用脚本/uavcloud-被cmii_operator替代/uavcloud-消灭重启次数过多的应用.sh
Normal file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
#all_cmii_name_space=(uavcloud-test uavcloud-feature uavcloud-uat uavcloud-dev uavcloud-devflight uavcloud-devoperation)
|
||||
all_cmii_name_space=(uavcloud-test uavcloud-feature uavcloud-dev uavcloud-devflight uavcloud-devoperation)
|
||||
|
||||
echo ""
|
||||
for name_space in "${all_cmii_name_space[@]}"; do
|
||||
echo "[NAMESPACE] - start to deal with namespace [$name_space]"
|
||||
if ! kubectl get ns "$name_space"; then
|
||||
echo "[NAMESPACE] - namespace of [$name_space] not exists !"
|
||||
echo ""
|
||||
continue
|
||||
fi
|
||||
echo ""
|
||||
|
||||
kubectl get pods --namespace="${name_space}" --sort-by='.status.containerStatuses[].restartCount' | awk '$4 > 30 {print $1} ' | sed 's/-[a-z0-9]\{9,10\}-[a-z0-9]\{5\}$//' | xargs -I {} kubectl scale -n "${name_space}" --replicas=0 deployment {}
|
||||
echo ""
|
||||
|
||||
done
|
||||
24
998-常用脚本/uavcloud-被cmii_operator替代/批量删除.sh
Normal file
24
998-常用脚本/uavcloud-被cmii_operator替代/批量删除.sh
Normal file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
batch_delete_pod() {
|
||||
local namespace=$1
|
||||
local app_name_prefix=$2
|
||||
if [ $namespace == "" ]; then
|
||||
echo "namespace is null"
|
||||
return
|
||||
fi
|
||||
if [ $app_name_prefix == "" ]; then
|
||||
echo "app_name_prefix is null"
|
||||
return
|
||||
fi
|
||||
|
||||
local app_pod_list=$(kubectl -n "$namespace" get pods -A | grep "$app_name_prefix" | awk '{print$2}'| tr "\n" " " )
|
||||
|
||||
for app in "${app_pod_list[@]}"; do
|
||||
echo "app is ${app}"
|
||||
kubectl -n "$namespace" delete pod $app
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
batch_delete_pod kube-system flannel
|
||||
29
998-常用脚本/uavcloud-被cmii_operator替代/重启所有cmii的pod.sh
Normal file
29
998-常用脚本/uavcloud-被cmii_operator替代/重启所有cmii的pod.sh
Normal file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
name_space=uavcloud-dev
|
||||
|
||||
delete_all_fronted_cmii_pod(){
|
||||
|
||||
all_pod_list=($(kubectl get pods -n "$name_space" -o=jsonpath='{.items[*].metadata.name}' | tr " " "\n"))
|
||||
for pod in "${all_pod_list[@]}"; do
|
||||
if echo "$pod" | grep -q "cmii-uav-platform"; then
|
||||
echo ""
|
||||
echo "current pod is $pod"
|
||||
kubectl -n "$name_space" delete pod "$pod" --force
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
delete_all_backend_cmii_pod(){
|
||||
all_pod_list=($(kubectl get pods -n "$name_space" -o=jsonpath='{.items[*].metadata.name}' | tr " " "\n"))
|
||||
for pod in "${all_pod_list[@]}"; do
|
||||
if echo "$pod" | grep -v "platform" | grep -q "cmii"; then
|
||||
echo ""
|
||||
echo "current pod is $pod"
|
||||
kubectl -n "$name_space" delete pod "$pod" --force
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
delete_all_backend_cmii_pod
|
||||
20
998-常用脚本/uavcloud-被cmii_operator替代/镜像sha256提取.sh
Normal file
20
998-常用脚本/uavcloud-被cmii_operator替代/镜像sha256提取.sh
Normal file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
|
||||
namespace=uavcloud-demo
|
||||
app_name_list=(uav-gateway cmii-uav-notice cmii-uas-gateway cmii-uas-lifecycle uav-platform-uas)
|
||||
|
||||
echo ""
|
||||
echo "current namespace is $namespace"
|
||||
echo ""
|
||||
|
||||
for app in ${app_name_list[@]};do
|
||||
echo "current app is $app"
|
||||
pod_name=$(kubectl -n ${namespace} get pods | grep ${app} | awk '{print$1}' | head -n1)
|
||||
|
||||
echo "pod name of app is => $pod_name"
|
||||
kubectl -n ${namespace} describe pod ${pod_name} | grep "Image ID:" | awk '{print $3}'
|
||||
|
||||
echo ""
|
||||
done
|
||||
Reference in New Issue
Block a user