The 4 Cs of cloud-native security, Code, Container, Cluster, Cloud, describe the layers that need to be addressed. Kubernetes cluster security is only one layer. A secure cluster running insecure application code or misconfigured containers does not produce a secure system. Each layer must be addressed, and weaknesses in one layer are not fully compensated by strength in another.
The primary security goal in Kubernetes is to reduce blast radius. If a container is compromised, how far can the attacker reach? Without controls, the answer is 'very far'. They can reach other workloads across all namespaces, call the Kubernetes API with the container's service account permissions, and potentially move to the cloud control plane. With controls, network policies, scoped service accounts, security contexts, and admission policies, the answer becomes 'not very far.'
Namespaces are an organizational boundary, not a security boundary by themselves. Two Pods in different namespaces can communicate freely unless NetworkPolicies prevent it. A user with cluster-admin can read Secrets from any namespace. Actual security isolation between tenants requires network policies, RBAC scoped per namespace, and potentially separate clusters for workloads with different trust levels.
The operational habit that matters most is treating security configuration as code. RBAC policies, NetworkPolicies, admission rules, and security contexts should all be in version control, reviewed like application changes, and applied through a controlled deployment process, not applied ad hoc by individuals with direct cluster access.