Kubernetes 公共命令别名配置

Kubernetes 公共命令别名配置

# /etc/profile.d/k8s-aliases
# Kubernetes 公共命令别名配置(不包含特定项目)

# ============================================
# 基础 kubectl 别名
# ============================================
alias k='kubectl'
alias kk='kubectl -n'
alias kg='kubectl get'
alias kd='kubectl describe'
alias kl='kubectl logs'
alias kex='kubectl exec -it'
alias kdel='kubectl delete'
alias kapply='kubectl apply -f'
alias kedit='kubectl edit'

# ============================================
# 资源查看
# ============================================
alias kgall='kubectl get all'
alias kgpod='kubectl get pods'
alias kgsvc='kubectl get services'
alias kgdep='kubectl get deployments'
alias kgcm='kubectl get configmaps'
alias kgsec='kubectl get secrets'
alias kging='kubectl get ingress'
alias kgpvc='kubectl get pvc'
alias kgpv='kubectl get pv'
alias kgns='kubectl get namespaces'
alias kgno='kubectl get nodes'

# ============================================
# 资源查看(详细)
# ============================================
alias kgpwide='kubectl get pods -o wide'
alias kgpall='kubectl get pods --all-namespaces'
alias kgsall='kubectl get svc --all-namespaces'

# ============================================
# Pod 操作
# ============================================
alias klf='kubectl logs -f'
alias klt='kubectl logs --tail=100'
alias klp='kubectl logs --previous'
alias kexbash='kubectl exec -it -- /bin/bash'
alias kexsh='kubectl exec -it -- /bin/sh'
alias ktop='kubectl top pods'
alias ktopn='kubectl top nodes'

# ============================================
# 部署操作
# ============================================
alias kroll='kubectl rollout restart deployment'
alias kstatus='kubectl rollout status deployment'
alias kundo='kubectl rollout undo deployment'
alias kscale='kubectl scale deployment'

# ============================================
# 节点管理
# ============================================
alias kcordon='kubectl cordon'
alias kuncordon='kubectl uncordon'
alias kdrain='kubectl drain --ignore-daemonsets'
alias kdescnode='kubectl describe node'

# ============================================
# 事件与调试
# ============================================
alias kevents='kubectl get events --sort-by='\''.lastTimestamp'\'''
alias keventsw='kubectl get events --watch --sort-by='\''.lastTimestamp'\'''
alias kdescpod='kubectl describe pod'

# ============================================
# 健康检查
# ============================================
alias kbad='kubectl get pods --all-namespaces | grep -v Running | grep -v Completed'
alias kpending='kubectl get pods --all-namespaces | grep Pending'
alias kfail='kubectl get pods --all-namespaces | grep -E "Error|CrashLoop|ImagePull"'

# ============================================
# 资源排行
# ============================================
alias ktopcpu='kubectl top pods --all-namespaces --sort-by=cpu'
alias ktopmem='kubectl top pods --all-namespaces --sort-by=memory'

# ============================================
# 端口转发
# ============================================
alias kpf='kubectl port-forward'

# ============================================
# 辅助函数
# ============================================
# 查看指定服务的日志
klog() {
    local namespace=$1
    local service=$2
    local lines=${3:-50}
    local pod_name=$(kubectl get pods -n $namespace -l app=$service -o jsonpath='{.items[0].metadata.name}' 2>/dev/null)
    if [ -n "$pod_name" ]; then
        kubectl logs --tail=$lines -n $namespace $pod_name
    else
        echo "未找到服务: $service (命名空间: $namespace)"
    fi
}

# 进入指定服务的容器
kexec() {
    local namespace=$1
    local service=$2
    local shell=${3:-/bin/bash}
    local pod_name=$(kubectl get pods -n $namespace -l app=$service -o jsonpath='{.items[0].metadata.name}' 2>/dev/null)
    if [ -n "$pod_name" ]; then
        kubectl exec -it -n $namespace $pod_name -- $shell
    else
        echo "未找到服务: $service (命名空间: $namespace)"
    fi
}

# ============================================
# 提示信息
# ============================================
echo "✅ Kubernetes 公共别名已加载!"
echo ""
echo "📌 常用命令:"
echo "  kgpod -n <namespace>     # 查看 Pod"
echo "  klf <pod> -n <namespace> # 查看日志"
echo "  kbad                      # 查看异常 Pod"
echo "  ktopcpu                   # CPU 排行"
echo "  klog <ns> <service>       # 查看服务日志"
echo "  kexec <ns> <service>      # 进入容器"
posted @ 2026-04-21 08:24  明月心~  阅读(4)  评论(0)    收藏  举报