Kubectl: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| Line 32: | Line 32: | ||
Kubeconfig | Kubeconfig | ||
|- | |- | ||
|valign='top' | |valign='top' style='width:50%'| | ||
Kubernetes components like <code>kubelet</code>, <code>kube-controller-manager</code>, or <code>kubectl</code> use the <code>kubeconfig</code> file to interact with the Kubernetes API. Usually, the <code>kubectl</code> or <code>oc</code> commands use the <code>kubeconfig</code> file. | Kubernetes components like <code>kubelet</code>, <code>kube-controller-manager</code>, or <code>kubectl</code> use the <code>kubeconfig</code> file to interact with the Kubernetes API. Usually, the <code>kubectl</code> or <code>oc</code> commands use the <code>kubeconfig</code> file. | ||
The <code>kubeconfig</code> file's default location for <code>kubectl</code> or <code>oc</code> is the <code>~/.kube</code> directory. Instead of using the full <code>kubeconfig</code> name, the file is just named config. The default location of the <code>kubeconfig</code> file is <code>~/.kube/config</code>. There are other ways to specify the <code>kubeconfig</code> location, such as the <code>KUBECONFIG</code> environment variable or the <code>kubectl --kubeconfig</code> parameter. | The <code>kubeconfig</code> file's default location for <code>kubectl</code> or <code>oc</code> is the <code>~/.kube</code> directory. Instead of using the full <code>kubeconfig</code> name, the file is just named config. The default location of the <code>kubeconfig</code> file is <code>~/.kube/config</code>. There are other ways to specify the <code>kubeconfig</code> location, such as the <code>KUBECONFIG</code> environment variable or the <code>kubectl --kubeconfig</code> parameter. | ||
|valign='top' style='width:50%'| | |||
The <code>kubeconfig</code> file is a YAML file containing groups of clusters, users, and contexts. | The <code>kubeconfig</code> file is a YAML file containing groups of clusters, users, and contexts. | ||
| Line 45: | Line 45: | ||
|- | |- | ||
|valign='top | |valign='top'| | ||
<syntaxhighlight lang='bash'> | <syntaxhighlight lang='bash'> | ||
export KUBECONFIG=$HOME/.kube/chorke-academia-kubeconfig.yaml | export KUBECONFIG=$HOME/.kube/chorke-academia-kubeconfig.yaml | ||
| Line 51: | Line 51: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|valign='top | |valign='top'| | ||
|} | |} | ||
Latest revision as of 02:09, 24 January 2026
brew info kubectl
brew search kubectl
brew install kubectl
|
|
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key\
| sudo tee /etc/apt/keyrings/kubernetes.asc >/dev/null
cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/kubernetes.asc]\
https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /
EOF
echo 'apt-get update;echo;apt list -a --upgradable'|sudo bash
echo 'apt-get install -y kubectl'|sudo bash
kubectl version --client --output=json|jq .
|
Kubeconfig
|
Kubeconfig | |
|---|---|
|
Kubernetes components like The |
The
|
export KUBECONFIG=$HOME/.kube/chorke-academia-kubeconfig.yaml
chmod 600 $HOME/.kube/chorke-academia-kubeconfig.yaml
|
|
Kube Export
|
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
|
Swiss Knife
|
Swiss Knife | |
|---|---|
kubectl run -i --tty --rm debug --image=busybox --restart=Never -- sh
kubectl run -i --tty --rm debug --image=alpine --restart=Never -- sh
apk add inetutils-telnet
kubectl config view --minify -o jsonpath='{.clusters[].name}'
kubectl cluster-info
kubectl config view
|
|
K8s Lens
|
K8s Lens | |
|---|---|
# install from snapcraft
sudo snap install kontena-lens --classic
# license version
curl -fsSL https://downloads.k8slens.dev/keys/gpg\
| sudo gpg --dearmor -o /etc/apt/keyrings/k8slens.gpg
cat << EOF | sudo tee /etc/apt/sources.list.d/k8slens.list >/dev/null
deb [arch=$(dpkg --print-architecture)\
signed-by=/etc/apt/keyrings/k8slens.gpg]\
https://downloads.k8slens.dev/apt/debian stable main
EOF
sudo apt install lens
lens-desktop
|
|
Shortnames
|
Shortnames | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
kubectl api-resources | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Knowledge
|
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 get -n=argocd -o=yaml secret argocd-initial-admin-secret echo RE83Uk81QTU5clZyLTlsdg== | base64 --decode |
kubectl get pod academia-<hash> -n chorke -o yaml kubectl describe pod academia-<hash> -n chorke kubectl logs pod academia-<hash> -n chorke -p kubectl delete pod academia-<hash> -n chorke kubectl edit pod academia-<hash> -n chorke kubectl get pod academia-<hash> -n chorke |
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 -n=argocd -o=yaml configmap argocd-rbac-cm kubectl get -n=argocd -o=yaml configmap argocd-cm kubectl get -n=argocd -o=yaml deployment argocd-redis kubectl get -n=argocd -o=yaml service argocd-redis kubectl get -n=argocd -o=yaml secret argocd-secret kubectl get -n=argocd -o=yaml 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 kubectl describe service academia -n academia kubectl describe service academia-auth -n academia nslookup <service-name>.<namespace>.svc.<cluster-domain> |
nslookup <service-name>.<namespace>.svc.cluster.local nslookup academia-auth.academia.svc.cluster.local kubectl get all -n ingress-nginx apk add inetutils-telnet |
kubectl config set-context minikube --cluster=minikue
kubectl config set-context minikube
kubectl config get-contexts
kubectl config get-clusters
kubectl config view
|
||
References
|
References | ||
|---|---|---|