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
}