大量更新
This commit is contained in:
10
998-常用脚本/c-k8s常用脚本/获取类型为NodePort的Service.sh
Normal file
10
998-常用脚本/c-k8s常用脚本/获取类型为NodePort的Service.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
|
||||
kubectl get svc -A -o json | jq -r '
|
||||
.items[]
|
||||
| select(.spec.type=="NodePort")
|
||||
| .metadata.namespace as $ns
|
||||
| .metadata.name as $name
|
||||
| .spec.ports[]
|
||||
| [$ns, $name, .port, .nodePort]
|
||||
| @tsv' | column -t
|
||||
85
998-常用脚本/c-k8s常用脚本/部署业务-镜像-分支.sh
Normal file
85
998-常用脚本/c-k8s常用脚本/部署业务-镜像-分支.sh
Normal file
@@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
# ============================================================
|
||||
# 脚本功能:收集指定命名空间下副本数 > 0 的 Deployment 信息
|
||||
# 包含:Deployment 名称、镜像名称、GIT 相关环境变量
|
||||
# ============================================================
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# ── 配置区 ──────────────────────────────────────────────────
|
||||
NAMESPACE="scydqlh"
|
||||
OUTPUT_FILE="deployment_info_$(date +%Y%m%d_%H%M%S).txt"
|
||||
# ────────────────────────────────────────────────────────────
|
||||
|
||||
echo "=========================================="
|
||||
echo " 命名空间 : $NAMESPACE"
|
||||
echo " 输出文件 : $OUTPUT_FILE"
|
||||
echo "=========================================="
|
||||
|
||||
# 创建(清空)输出文件
|
||||
> "$OUTPUT_FILE"
|
||||
|
||||
# 获取所有 Deployment 名称(换行分隔)
|
||||
DEPLOYMENTS=$(kubectl get deployments -n "$NAMESPACE" \
|
||||
-o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' 2>/dev/null)
|
||||
|
||||
if [[ -z "$DEPLOYMENTS" ]]; then
|
||||
echo "[ERROR] 命名空间 '$NAMESPACE' 下未发现任何 Deployment,请检查命名空间是否正确。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PROCESSED=0
|
||||
SKIPPED=0
|
||||
|
||||
while IFS= read -r DEPLOY; do
|
||||
[[ -z "$DEPLOY" ]] && continue
|
||||
|
||||
# ── 1. 获取期望副本数 ──────────────────────────────────────
|
||||
REPLICAS=$(kubectl get deployment "$DEPLOY" -n "$NAMESPACE" \
|
||||
-o jsonpath='{.spec.replicas}' 2>/dev/null)
|
||||
REPLICAS="${REPLICAS:-0}"
|
||||
|
||||
if [[ "$REPLICAS" == 0 ]]; then
|
||||
echo "[SKIP] $DEPLOY (副本数=${REPLICAS},≤ 1,跳过)"
|
||||
(( SKIPPED++ )) || true
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "[INFO] 处理 Deployment: $DEPLOY (副本数=${REPLICAS})"
|
||||
|
||||
# ── 2. 获取第一个容器的镜像名称 ───────────────────────────
|
||||
IMAGE=$(kubectl get deployment "$DEPLOY" -n "$NAMESPACE" \
|
||||
-o jsonpath='{.spec.template.spec.containers[0].image}' 2>/dev/null)
|
||||
IMAGE="${IMAGE:-<未获取到镜像>}"
|
||||
|
||||
# ── 3. 在第一个副本 Pod 中执行 env | grep GIT ─────────────
|
||||
GIT_ENV=$(kubectl exec -n "$NAMESPACE" "deploy/$DEPLOY" \
|
||||
-- sh -c "env | grep GIT" 2>/dev/null || echo "")
|
||||
|
||||
# ── 4. 写入输出文件 ───────────────────────────────────────
|
||||
{
|
||||
echo "deployment名称:${DEPLOY}"
|
||||
echo "镜像名称:${IMAGE}"
|
||||
echo "环境变量:"
|
||||
if [[ -n "$GIT_ENV" ]]; then
|
||||
while IFS= read -r env_line; do
|
||||
echo " ${env_line}"
|
||||
done <<< "$GIT_ENV"
|
||||
else
|
||||
echo " (未发现 GIT 相关环境变量)"
|
||||
fi
|
||||
echo ""
|
||||
echo "------------------------------------------"
|
||||
echo ""
|
||||
} >> "$OUTPUT_FILE"
|
||||
|
||||
(( PROCESSED++ )) || true
|
||||
|
||||
done <<< "$DEPLOYMENTS"
|
||||
|
||||
# ── 汇总输出 ──────────────────────────────────────────────
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 完成!已处理: ${PROCESSED} 个,已跳过: ${SKIPPED} 个"
|
||||
echo " 结果文件: $OUTPUT_FILE"
|
||||
echo "=========================================="
|
||||
Reference in New Issue
Block a user