Doesn't need a running cluster! Install podman
and kubectl
.
kubectl
- Don't write it down as a simple tool to interact with clusters.
kubectl
can 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 logs
kubectl get
kubectl apply
kubectl describe
- etc etc etc
- Don't write it down as a simple tool to interact with clusters.
etcd
pods
-labels
andannotations
securityContext
env
- in pod config
- reference from
ConfigMap
(CM) - reference from
Secrets
resources
cpu
andram
limits
andrequests
imagePullSecret
if using a private registry/repo
ConfigMaps
Secrets
Services
Still doesn't need a cluster
deployments
replicas
PersistentVolumeClaims
Mounts
kinda ties back to podsVolumes
Local stuff for dev/learning:
-
Pick a managed kubernetes service
- GKE
- LKE
- EKS
- AKS
-
StatefullSets
and 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
k9s
a tui cluster manager, super handy. No need for abstractions like Rancher or Lens.kuebctl
kubectx
if 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:
Ansible
Terraform