This presentation was for the Singapore Oracle meetup to highlight the benefits of adopting Kubernetes but also make people aware about some challenges in Kubernetes adoption and when it might not make sense to use Kubernetes.
the containers run? - Resource Optimisation: How much resources does each container really need? - Monitoring: What’s happening with the containers? - Lifecycle and health: Keep containers running despite failures - Auth{n,z}: Control who can do what with the containers? - Scaling: Handle higher load by adding more instances - Discovery: How can I connect to the containers? - … Source
i<2;i++){ run "replica" } - Desired state + Actual State => Convergence Concept: controllers per resource type (extensible) - One time job (native) - Cron job (native) - Long running stateless process (native) - Let's Encrypt Certificate (extension) - Reverse Proxy Virtual Route (~native)
label queries - i.e : Find all the long running processes that can service an "orders" API request → Decouple where things are through dynamic discovery (embrace failure / change)
abstractions (!), insights, dev tooling - Ops job becomes a lot more flexible if you keep state out of the cluster (cluster upgrades / migrations / failure zones / … ) - App maturity (Autoscaling) If you can't autoscale (horizontally)…. Kube may not be the right option - Do you have the resources? small startup? kube may be too much of an overhead (get support from cloud provider dedicated architects & use managed solution)