Doesn't need a running cluster! Install podman and kubectl.
kubectl- Don't write it down as a simple tool to interact with clusters.
kubectlcan create all sorts of resources like secrets, pods, deployments etc. Great for learning. kubectl run(kubectl run -i --tty --rm debug --image=registry.opensuse.org/opensuse/tumbleweed --restart=Never -- bash)kubectl exec(kubectl exec -it -n default debug -- bash)kubectl create(kubectl create deployment test --image registry.adathor.com/opensuse/tumbleweed --replicas 3 --dry-run=client -o yaml)kubectl logskubectl getkubectl applykubectl describe- etc etc etc
- Don't write it down as a simple tool to interact with clusters.
etcdpods-labelsandannotationssecurityContextenv- in pod config
- reference from
ConfigMap(CM) - reference from
Secrets
resourcescpuandramlimitsandrequests
imagePullSecretif using a private registry/repo
ConfigMapsSecretsServices
Still doesn't need a cluster
deploymentsreplicas
PersistentVolumeClaimsMountskinda ties back to podsVolumes
Local stuff for dev/learning:
-
Pick a managed kubernetes service
- GKE
- LKE
- EKS
- AKS
-
StatefullSetsand why should we avoid these (ideally) -
Ingress- Install ingress-nginx or traefik, -
LoadBalancer -
Custom resource definition
-
Kubernetes operators
Cluster side:
ArgoCD- continous delivery (GitOps)ArgoCD image updater- use the sha, not the tags for deploying imagescert-manager- sweet, sweet tlsistio- networking, a certain type of journey all by its own. Super handy, get a course on Udemy for it.kyverno- policy management
Cli:
kustomize- manifest management/templating, super great if you don't want to fork and downstream maintain helm packages
helm- manifest templating, a pain to write for complex deplyoments, not ideal if you need to do something that requires change to the helm package
k9sa tui cluster manager, super handy. No need for abstractions like Rancher or Lens.kuebctlkubectxif managing multiple clusterscosign- make your images verifyable by signing them, reject them if the signature doesn't match.
Ideal for the underlying infrastructure management. Not exactly a strict k8s requirement, should have these from the get go even for regular VMs/metal/VPS management:
AnsibleTerraform