所有node文件az.txt, 其中1为zone1, 2为zone2, 3为zone3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
az.txt 1 10.16.6.35 1 10.16.6.11 1 10.16.6.27 1 10.16.6.9 1 10.16.6.31 1 10.16.6.2 2 10.16.6.33 2 10.16.6.34 2 10.16.6.32 2 10.16.6.34 2 10.16.6.39 2 10.16.6.19 3 10.16.6.45 3 10.16.6.41 |
run.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
function label_node { cat az.txt | while read az host do if [[ $az -eq '3' ]]; then kubectl cordon $host else kubectl label node $host "az=$az" --overwrite=true fi done } function ncc { namespace="c87xxxxxxxxxxxx" kubectl get deploy -n $namespace -o json|jq -r '.items[].metadata.name'| while read deploy_name do mkdir -p ncc filename="ncc/$deploy_name.yaml" cat > $filename <<EOF spec: template: spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: labelSelector: matchExpressions: - key: app$deploy_name operator: In values: - app$deploy_name topologyKey: az weight: 100 EOF kubectl patch deployment $deploy_name --patch "$(cat $filename)" -n $namespace done } function develop_center { namespace="developer-center" kubectl get deploy -n $namespace -o json|jq -r '.items[].metadata.name'| while read deploy_name do mkdir -p develop_center filename="develop_center/$deploy_name.yaml" cat > $filename <<EOF spec: template: spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - $deploy_name topologyKey: az weight: 100 EOF kubectl patch deployment $deploy_name --patch "$(cat $filename)" -n $namespace done } function scale_deploy { kubectl get deploy --all-namespaces|egrep -v "kube-system|res-alarm-center|res-pool-manager" | sed '1d'|awk '{print $1, $2}' | while read namespace deploy_name; do #deploy_name=`kubectl get deploy --all-namespaces -o json|jq -r '.items[]|.metadata.name + " " + .metadata.namespace'` kubectl scale deploy $deploy_name -n $namespace --replicas=2 done } label_node #ncc #develop_center #scale_deploy |
0 Comments