Aller au contenu
  1. Articles/

K8s aliases

·2 mins·
Memos - Cet article fait partie d'une série.
Partie 4: Cet article

Voici une liste d’aliases Bash que j’utilise plus ou moins fréquement pour administrer un cluster Kubernetes.

function current_k8s_namespace(){
  [[ -n "$CURRENT_K8S_NAMESPACE" ]]\
    && echo "[$CURRENT_K8S_NAMESPACE]"
}

function kgetall (){

  local namespace=""

  [[ -n "$CURRENT_K8S_NAMESPACE" ]]\
      && namespace="$CURRENT_K8S_NAMESPACE"

  [[ -n "$1" ]]\
    && namespace="$1"

  echo -e "\e[1;31mNamespace:\e[0m $namespace"

  for i in $(kubectl api-resources --verbs=list --namespaced -o name | grep -v "events.events.k8s.io" | grep -v "events" | sort | uniq); do
    echo -e "\e[1;34mResource kind:\e[0m $i"

    if [ -n "$namespace" ]; then
        kubectl -n "$namespace" get --ignore-not-found ${i}
    else
        kubectl get --ignore-not-found ${i}
    fi
  done
}

function k_set_namespace(){
  [[ -z "$1" ]]\
    && return 1
  export CURRENT_K8S_NAMESPACE="$1"
}

function k_get_namespace(){
  echo "$CURRENT_K8S_NAMESPACE"
}

function k(){

  local namespace=""

  [[ -n "$CURRENT_K8S_NAMESPACE" ]]\
    && namespace="$CURRENT_K8S_NAMESPACE"

  if [ -n "$namespace" ];then
    echo -e "\e[1;34mNamespace:\e[0m $namespace"
    kubectl --namespace "$namespace" $@
  else
    kubectl $@
  fi
}
alias kg="k get"
alias kd="k describe"

# config
alias kcfg="k config view"

# namespaces
alias kgn="kubectl get namespaces"
alias kdn="kubectl describe namespaces"
alias kcn="kubectl create namespace"
alias kdeln="kubectl delete namespaces"

# pods
alias kgp="k get pods --output=wide"
alias kdp="k describe pod"
alias kdelp="k delete pod"

# ingress
alias kgi="k get ingress --all-namespaces --output=wide"
alias kdi="k describe ingress"
alias kdeli="k delete ingress"

# nodes
alias kgnodes="k get nodes --output wide"
alias kdnodes="k describe nodes"

# deployments
alias ked="k expose deployment"
alias kgd="k get deployment"
alias kdd="k describe deployment"
alias kdeld="k delete deployments"
function klogd(){
    local deployment="$1"
    [[ -z "$deployment" ]] \
        && echo "usage: klogd <deployment-name>" \
        && return 255
    kubectl logs "deployments/$deployment"
}

# services
alias kgs="k get services"
alias kds="k describe service"
alias kdels="k delete service"

# storage
alias kgpv="k get pv"
alias kgpvc="k get pvc"
alias kdelpv="k delete pv"
alias kdelpvc="k delete pvc"

# apply from file
alias kap="kubectl apply -f"
alias kac="kubectl create -f"

# get shell to container
function kpshell(){
    local namespace="$1"
    local pod="$2"
    [[ -z "$pod" ]] \
        && echo "usage: kpshell <namespace> <pod-name>" \
        && return 255
    kubectl -n "$namespace" exec --stdin --tty "$pod" -- /bin/bash
}
Memos - Cet article fait partie d'une série.
Partie 4: Cet article