My first week with Kubernetes: what nobody tells you

I thought kubectl apply was enough. Then pods died, Service existed but Endpoints were empty, and Ingress showed nothing — while every resource looked "Running".
First lesson: in K8s "Running" means the container started, not that the app is ready. Separate readinessProbe from livenessProbe — one for traffic, one for restarts.
Biggest help: kubectl describe pod and kubectl get events -n namespace. Without events you're almost working blind. Most of my issues were image pull errors, OOMKilled, or probe failures — not mystery bugs.
I underestimated networking. Service ClusterIP only works inside the cluster. Testing from outside without Ingress means port-forward — temporary, not a solution.
Learned Deployment vs StatefulSet the hard way. Stateless API? Deployment is fine. Database inside the cluster (which you probably shouldn't run there)? StatefulSet and stable network identity.
Copy-paste YAML from Stack Overflow is dangerous. Once I skipped resource limits and one pod ate the whole node. Now I always set requests and limits — even in dev clusters.
Tools that saved week one: k9s for a quick overview, stern for multi-pod logs, kubectx/kubens for switching clusters and namespaces.
Still learning, but now I know K8s is powerful and burns you fast without networking and storage basics. If you're starting out: create fewer resources, read more describe output and events.