Keep configuration out of the image: ConfigMaps for plain settings, Secrets for credentials, injected as environment variables or mounted files.
Mounted files update automatically after a short delay; environment variables do not. Restart the workload to pick up new values: kubectl rollout restart deploy/web.
Secrets are only base64-encoded, not encrypted. Enable etcd encryption at rest, restrict access with RBAC, and use Sealed Secrets, External Secrets or Vault when manifests live in Git.