K8s storage, ingress
creating and connecting Volumes: 2 types
Volumes
- Tied to lifecycle of a Pod
- All containers in a single Pod can share them
Persistent Volumes
- Created at the cluster level, outlives a Pod
- Separates storages config from Pod using it
- Multiple Pods can share them
CSI plugins way to connect to storage (i.e : aws storage plugins provided by CSI )
Ingress
How do we route outside connections based on hostname or URL?
ingress Controllers (optional) do this with 3rd party proxies
Nginx is popular, but Traefik , HaProxy, F5 etc
Higher Deployment Abstractions
all our kubectl commands just talk to the Kubernetes API
Kubernetes has limited built in templating, versioning, tracking, and management of your apps
many other 3rd party tools but
Helm is the popular
“compose on Kubernetes” comes with Docker desktop (enterprice feature ) which convert docker compose file to Kubernetes yml (but not supports all feature of Kubernetes)
K8s Namespaces and context
Namespaces limit scope, aka “virtual clusters”
Not related to Docker/Linux namespaces
Won’t need them in small clusters
There are some built-in, to hide system stuff from kubectl ”users”
kubectl get namespaces
kubectl get all —all-namespaces
Context changes kubectl cluster and namespace
See ~/.kube/config file
Kubectl config get-contexts
kubectl config set*
knative - serverless workloads on Kubernetes
k3s - mini, simple Kubernetes
K3OS - Minimal Linux OS for k3s 😍
Service Mesh - New layer in distributed app traffic for better control, security, and monitoring