Kubectl
sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg\
https://packages.cloud.google.com/apt/doc/apt-key.gpg
cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg]\
https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt update
sudo apt install kubectl
Kubeconfig
Kubernetes components like kubelet
, kube-controller-manager
, or kubectl
use the kubeconfig
file to interact with the Kubernetes API. Usually, the kubectl
or oc
commands use the kubeconfig
file.
The kubeconfig
file's default location for kubectl
or oc
is the ~/.kube
directory. Instead of using the full kubeconfig
name, the file is just named config. The default location of the kubeconfig
file is ~/.kube/config
. There are other ways to specify the kubeconfig
location, such as the KUBECONFIG
environment variable or the kubectl --kubeconfig
parameter.
The kubeconfig
file is a YAML file containing groups of clusters, users, and contexts.
- A cluster is a Kubernetes or OpenShift cluster.
- A user is a credential used to interact with the Kubernetes API.
- A context is a combination of a cluster and a user. Every time you execute an
oc
orkubectl
command, you reference a context insidekubeconfig
.
export KUBECONFIG=$HOME/.kube/chorke-academia-kubeconfig.yaml
chmod 600 $HOME/.kube/chorke-academia-kubeconfig.yaml
Kube Export
for n in $(kubectl get -o=name pvc,configmap,serviceaccount,\
secret,ingress,service,deployment,statefulset,hpa,job,cronjob);do
mkdir -p $(dirname $n); kubectl get -o=yaml --export $n > $n.yaml
done
for n in $(kubectl get -o=name pvc,configmap,ingress,service,secret,\
deployment,statefulset,hpa,job,cronjob | grep -v 'secret/default-token');do
kubectl get -o=yaml --export $n > $(dirname $n)_$(basename $n).yaml
done
Knowledge
kubectl get deployment -A kubectl get configmap -A kubectl get service -A kubectl get secret -A kubectl get event -A kubectl get pod -A |
kubectl config --kubeconfig=./demo-config view --minify kubectl config view --minify kubectl config view |
kubectl edit deployment -n my-namespace my-app |
| ||
kubectl get -n argocd configmap kubectl get -n argocd deployment kubectl get -n argocd service kubectl get -n argocd secret kubectl get -n argocd event kubectl get -n argocd pod |
kubectl edit -n argocd configmap argocd-rbac-cm kubectl edit -n argocd configmap argocd-cm kubectl edit -n argocd deployment argocd-redis kubectl edit -n argocd service argocd-redis kubectl edit -n argocd secret argocd-secret kubectl edit -n argocd pod argocd-app-ctrl-0 |
kubectl get -o yaml -n argocd configmap argocd-rbac-cm kubectl get -o yaml -n argocd configmap argocd-cm kubectl get -o yaml -n argocd deployment argocd-redis kubectl get -o yaml -n argocd service argocd-redis kubectl get -o yaml -n argocd secret argocd-secret kubectl get -o yaml -n argocd pod argocd-app-ctrl-0 |
| ||
sudo ss -tulwn | grep LISTEN sudo ss -tulpn | grep LISTEN sudo ss -tulpn | grep LISTEN | grep sshd sudo ss -tulpn | grep LISTEN | grep minio sudo ss -tulpn | grep LISTEN | grep resolve |
sudo lsof -i -P -n | grep LISTEN |
References
| ||