K8s: Difference between revisions
Jump to navigation
Jump to search
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==K8s Lens== | ==K8s Lens== | ||
< | <syntaxhighlight lang="bash"> | ||
# install from snapcraft | # install from snapcraft | ||
sudo snap install kontena-lens --classic | sudo snap install kontena-lens --classic | ||
Line 16: | Line 16: | ||
sudo apt install lens | sudo apt install lens | ||
lens-desktop | lens-desktop | ||
</ | </syntaxhighlight> | ||
==Kind== | ==Kind== | ||
Line 49: | Line 49: | ||
{| | {| | ||
|valign='top'| | |valign='top'| | ||
< | <syntaxhighlight lang="properties"> | ||
cat <<EOF | kubectl apply -f - | cat <<EOF | kubectl apply -f - | ||
apiVersion: v1 | apiVersion: v1 | ||
Line 86: | Line 86: | ||
storageClassName: chorke-local-storage | storageClassName: chorke-local-storage | ||
EOF | EOF | ||
</ | </syntaxhighlight> | ||
|valign='top'| | |valign='top'| | ||
< | <syntaxhighlight lang="properties"> | ||
cat <<EOF | kubectl delete -f - | cat <<EOF | kubectl delete -f - | ||
apiVersion: v1 | apiVersion: v1 | ||
Line 126: | Line 126: | ||
storageClassName: chorke-local-storage | storageClassName: chorke-local-storage | ||
EOF | EOF | ||
</ | </syntaxhighlight> | ||
|- | |- | ||
Line 221: | Line 221: | ||
|valign="top"| | |valign="top"| | ||
< | <syntaxhighlight lang='bash'> | ||
minikube addons enable default-storageclass | minikube addons enable default-storageclass | ||
minikube addons enable metrics-server | minikube addons enable metrics-server | ||
minikube addons enable metallb | minikube addons enable metallb | ||
</ | </syntaxhighlight> | ||
|valign="top"| | |valign="top"| | ||
< | <syntaxhighlight lang='bash'> | ||
minikube addons configure metallb | minikube addons configure metallb | ||
minikube addons enable olm | minikube addons enable olm | ||
minikube addons list | minikube addons list | ||
</ | </syntaxhighlight> | ||
|- | |- | ||
Line 313: | Line 313: | ||
* [https://itnext.io/deciphering-the-kubernetes-networking-maze-navigating-load-balance-bgp-ipvs-and-beyond-7123ef428572 K8s » Deciphering the Networking Maze] | * [https://itnext.io/deciphering-the-kubernetes-networking-maze-navigating-load-balance-bgp-ipvs-and-beyond-7123ef428572 K8s » Deciphering the Networking Maze] | ||
* [https://www.hostafrica.com/blog/new-technologies/install-kubernetes-cluster-windows-server-worker-nodes/ K8s » Windows Server Worker Nodes] | * [https://www.hostafrica.com/blog/new-technologies/install-kubernetes-cluster-windows-server-worker-nodes/ K8s » Windows Server Worker Nodes] | ||
* [https://aws.amazon.com/blogs/aws/introducing-karpenter-an-open-source-high-performance-kubernetes-cluster-autoscaler/ K8s » Introducing Karpenter] | |||
* [https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands K8s » Kubectl Command] | * [https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands K8s » Kubectl Command] | ||
* [https://kubernetes.io/docs/reference/kubectl/#resource-types K8s » Resource types] | * [https://kubernetes.io/docs/reference/kubectl/#resource-types K8s » Resource types] | ||
Line 321: | Line 322: | ||
| valign="top" | | | valign="top" | | ||
* [[K8s/CSI Hostpath Driver|K8s » CSI Hostpath Driver]] | |||
| valign="top" | | | valign="top" | |
Latest revision as of 09:01, 1 August 2024
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
Kind
|
||
| ||
Volume
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolume
metadata:
name: chorke-pv
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: chorke-local-storage
hostPath:
path: /home/shahed/.chorke/academia/var/k8s
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: k8s.io/minikube-hostpath
operator: In
values:
- node-hostname
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: chorke-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: chorke-local-storage
EOF
|
cat <<EOF | kubectl delete -f -
apiVersion: v1
kind: PersistentVolume
metadata:
name: chorke-pv
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: chorke-local-storage
hostPath:
path: /home/shahed/.chorke/academia/var/k8s
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: k8s.io/minikube-hostpath
operator: In
values:
- node-hostname
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: chorke-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: chorke-local-storage
EOF
|
| |
| |
Storage
- Ceph RBD
- GlusterFS
- OpenEBS
- Longhorn
- Rook
Argo CD
kubectl create namespace argocd kubectl get namespace -A kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml kubectl get -n=argocd pod kubectl get -n=argocd service -n argocd kubectl port-forward -n=argocd service/argocd-server 8080:80 kubectl get -n=argocd -o=yaml secret argocd-initial-admin-secret echo RE83Uk81QTU5clZyLTlsdg== | base64 --decode https://localhost:8080/login
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 |
Docker Config
kubectl create secret -n chorke generic image-pull-secret --from-file=.dockerconfigjson=${HOME}/.docker/config.json --type=kubernetes.io/dockerconfigjson kubectl get secret -n chorke image-pull-secret -o "jsonpath={.data.\.dockerconfigjson}" | base64 --decode kubectl get secret -n chorke image-pull-secret -o yaml kubectl delete secret -n chorke image-pull-secret
kubectl get pods -A -o jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.containers[*]}{.image}{", "}{end}{end}' |sort kubectl get pods -A -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s 'space:' '\n' |sort |uniq -c
kubectl delete pod academia-<hash> -n chorke --force --grace-period=0 kubectl delete pod academia-<hash> -n chorke
kubectl get pod academia-<hash> -n chorke -o yaml kubectl describe pod academia-<hash> -n chorke kubectl edit pod academia-<hash> -n chorke kubectl get pod academia-<hash> -n chorke kubectl logs academia-<hash> -n chorke kubectl get events -n chorke
Knowledge
snap services maas snap services juju snap services lxd |
minikube addons enable default-storageclass
minikube addons enable metrics-server
minikube addons enable metallb
|
minikube addons configure metallb
minikube addons enable olm
minikube addons list
|
| ||
kubectl exec -it <pod-nmae-hash> -- bash kubectl exec -it <pod-name-hash> -n <ns> -- bash kubectl exec -it <pod-name-hash> -n <ns> -- printenv |
kubectl logs <pod-nmae-hash> kubectl logs <pod-nmae-hash> -n <ns> kubectl logs <pod-nmae-hash> -n <ns> -p |
minikube addons enable ingress kubectl get pods -n ingress-nginx kubectl logs <pod-nmae-hash> -c <image-name> -n <ns> |
| ||
minikube addons enable ingress-dns nslookup academia.local $(minikube ip) kubectl get configmap coredns -n kube-system -o yaml |
References
| ||
| ||
| ||