Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetes Quest: Unveiling 3 Pathways to Rome'...

Angel Ramirez
September 28, 2023

Kubernetes Quest: Unveiling 3 Pathways to Rome's Clusters!

Hello Kubernetes Enthusiasts! 🚀

I’m thrilled to invite you to an enlightening session titled, "Kubernetes Quest: Unveiling 3 Pathways to Rome's Clusters!" We're embarking on an intriguing expedition to explore diverse strategies for creating Kubernetes clusters, aiming to empower both seasoned professionals and beginners with varied, robust approaches to Kubernetes installation.

What’s in Store?
We’ll kick-start our journey with The Vanilla Odyssey, unraveling the intricacies of manual installations, where you’ll get to craft each component meticulously, gaining profound insights into the essence of Kubernetes.

Next, we’ll hop aboard The Automated Caravan, traversing through cloud provider installers. Here, you'll witness the ease of deploying scalable, resilient clusters, allowing you to channel your focus on crafting impeccable applications.

Lastly, join us on The OpenTofu Expedition to experience the marvels of Infrastructure as Code. You'll learn to define and provision infrastructures programmatically, ensuring uniformity, automation, and advanced management across diverse environments.

Takeaways
By the end of our session, you’ll be well-versed with three distinct Kubernetes installation methods, understanding the nuances, benefits, and challenges each one presents. Whether you value deep comprehension, ease of management, automation, and consistency, you’ll find a pathway that resonates with your needs.

Let’s Dive In!
Regardless of your experience with Kubernetes, this session promises a wealth of knowledge, insightful discussions, and hands-on examples to elevate your Kubernetes journey. So, let’s come together to learn, share, and explore the myriad pathways to Kubernetes mastery! See you at the expedition! 🌟

Angel Ramirez

September 28, 2023
Tweet

More Decks by Angel Ramirez

Other Decks in Technology

Transcript

  1. Who am I? CEO @Cuemby | FHCN Co-Founder, Speaker, CNCF

    Ambassador • • • Seasoned Technology Leader with over 15 years of experience in software architecture, infrastructure, DevOps, and security. Passionate about helping organizations achieve successful cloud transformation journeys. Frequent speaker and mentor on cloud-native technologies. Member of the Technology Advisory Board for DevNetwork and the exam curator team for The Linux Foundation (LF) and Cloud Native Computing Foundation (CNCF). Founder of La Fundación Hispana de Cloud Native (FHCN), a non-profit organization that promotes cloud-native technologies to the Hispanic community. Angel Ramirez | @ar4mirez
  2. Installing Dependencies # Update the apt package index and install

    dependencies sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common # Install Docker sudo apt-get install -y docker.io # Setup Docker to start on boot sudo systemctl enable docker.service # Install containerd sudo apt-get install -y containerd # Configure containerd and start the service sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml sudo systemctl restart containerd
  3. Installing Kubernetes Components # Install kubeadm, kubelet, and kubectl sudo

    apt-get update && sudo apt-get install -y kubeadm kubelet kubectl # Initialize the Master Node sudo kubeadm init
  4. Deploying Worker Node and Joining the Cluster # On Worker

    Node, use the kubeadm join command generated after initializing the Master Node. sudo kubeadm join [api-server]:[port] --token [token] -- discovery-token-ca-cert-hash [hash]
  5. The Vanilla Odyssey: Takeaways • • • • • Complexity:

    Requires a more comprehensive understanding of Kubernetes components. Time-consuming: Takes more time compared to automated solutions. Maintenance Burden: More efforts needed for upgrade, scaling, and maintenance. Error-prone: Manual steps could lead to mistakes and inconsistencies. Scaling: Not as straightforward as cloud provider solutions when scaling the cluster. • • • • • In-depth Understanding: Gain extensive knowledge about Kubernetes components and architecture. Customization: Tailor the setup according to the specific needs and requirements. No Vendor Lock-in: Avoid being tied to a specific vendor’s implementation or services. Learning Experience: Ideal for learning the internals of Kubernetes for educational purposes. Control: Have complete control over the configuration and management of the cluster. Pros Cons
  6. Deploying a Cluster in DigitalOcean # Install doctl, the DigitalOcean

    CLI brew install doctl # Authenticate doctl with your DigitalOcean API Token doctl auth init # Create a Kubernetes Cluster in DigitalOcean doctl kubernetes cluster create my-cluster --region nyc1 --count 3 --auto- upgrade --tag my-cluster
  7. The Automated Caravan: Takeaways • • • • • Cost:

    Can be more expensive in the long run due to operational costs. Vendor Lock-in: Dependence on a specific provider’s services and ecosystem. Limited Customization: Some providers might impose restrictions on configurations and customizations. Overhead: Additional resources and overhead for managing the managed services. Security Concerns: Potential security concerns related to multi-tenancy and data storage. • • • • • Ease of Use: Simplifies deployment, scaling, and management of clusters. High Availability: Often offers built-in solutions for high availability and disaster recovery. Scalability: Effortless scaling with the ability to add or remove nodes as needed. Managed Upgrades and Patches: Automatic upgrades and patches to the latest Kubernetes versions. Support and SLAs: Provides professional support, service level agreements, and uptime guarantees. Pros Cons
  8. Deploying Highly Available Cluster in DigitalOcean with OpenTofu # Configure

    the DigitalOcean Provider provider "digitalocean" { token = "YOUR_DIGITALOCEAN_API_TOKEN" } # Create a new Kubernetes cluster resource "digitalocean_kubernetes_cluster" "my_cluster" { name = "my-cluster" region = "nyc1" version = "latest" node_pool { name = "worker-pool" size = "s-2vcpu-2gb" node_count = 3 } } # Output the Kubernetes config file output "kube_config" { value = digitalocean_kubernetes_cluster.my_cluster.kube_config_raw }
  9. The OpenTofu Expedition: Takeaways • • • • • Learning

    Curve: Requires knowledge of specific IaC tools and languages. Debugging: Debugging infrastructure issues can be challenging. Initial Setup Time: Initial setup and configuration can be time-consuming. Overheads: Possible overheads related to managing and maintaining IaC configurations. Complexity: Complexity can increase with the growth of the infrastructure, demanding more sophisticated management. • • • • • Consistency: Avoid configuration drift and ensure a consistent environment. Version Control: Track, manage, and collaborate on infrastructure changes with ease. Automation: Accelerate deployments and reduce manual errors. Documentation: The code serves as documentation for the infrastructure setup. Scalability: Quickly replicate infrastructure across different environments and scale efficiently. Pros Cons
  10. Choosing the Right Path: The Vanilla Odessey • • •

    When a deep understanding and control of Kubernetes components are required. Ideal for learning and educational purposes to gain insights into the internal workings of Kubernetes. When vendor neutrality is critical, and vendor lock-in must be avoided.
  11. Choosing the Right Path: The Automated Caravan • • •

    When ease of use and rapid deployment are priorities. When high availability, support, and SLAs are essential, especially for production environments. Suitable for projects that require scaling and management without extensive Kubernetes expertise.
  12. Choosing the Right Path: The OpenTofu Expedition • • •

    When consistency and version control are paramount for managing infrastructures. When there’s a need to replicate and scale infrastructures quickly across different environments. Suitable when infrastructure documentation and automation are vital.