Home / Companies / Pulumi / Blog / July 2020

July 2020 Summaries

6 posts from Pulumi

Filter
Month: Year:
Post Summaries Back to Blog
The article delves into the complexities of networking within Kubernetes, focusing on how applications communicate both internally and externally in a cluster environment. Using a hypothetical web application deployed as microservices in Kubernetes, it explains the necessity of container communication, emphasizing the role of Pods, Services, and network namespaces in managing these interactions. It details how Pods are assigned IP addresses and how Kubernetes uses Service objects to abstract and manage dynamic IP addresses, ensuring reliable communication through methods like iptables and IPVS. The article further explores Pod-to-Pod and Pod-to-Service networking, highlighting the use of virtual ethernet devices and network bridges to facilitate communication across different Nodes. It also covers the concepts of egress and ingress, describing how Kubernetes manages data movement to and from the Internet using Layer 4 and Layer 7 load balancers and Ingress controllers. The article concludes by encouraging readers to explore the Kubernetes documentation for more detailed information on Container Network Interface (CNI) implementations, while also suggesting that prior articles in the series could provide additional foundational knowledge on building and deploying Kubernetes clusters.
Jul 30, 2020 1,863 words in the original blog post.
The fourth installment in a series on deploying applications with Kubernetes using infrastructure as code focuses on stateful applications, such as databases, and how they differ from stateless ones by requiring persistent storage, which poses unique scaling and availability challenges. In Kubernetes, StatefulSets are used to manage stateful applications, providing stable and unique network identifiers and persistent storage, essential for applications needing ordered deployment and updates. The article illustrates this with a MariaDB deployment example, highlighting the use of StatefulSets to maintain persistent identifiers for pods, Headless Services to assign direct IP addresses, and volumeClaimTemplates to manage storage access. It further discusses configuring health checks like liveness and readiness probes to ensure pod reliability and explores pod scheduling rules to manage deployment locations, ensuring that resources maintain stable connections. The article concludes by emphasizing the importance of Kubernetes' StatefulSets in routing traffic to stable resources and encourages readers to explore the full example on GitHub and further their Kubernetes knowledge with suggested resources.
Jul 21, 2020 1,308 words in the original blog post.
Itay Podhajcer, Chief Architect at Velocity Career Labs, outlines a comprehensive approach to deploying a geo-redundant serverless RabbitMQ cluster using Pulumi and C# on Azure. The deployment involves setting up a complex network infrastructure across three regions, utilizing Azure Container Instances, virtual networks, firewalls, and DNS zones. This setup includes two peered virtual networks per region—one for internal container communication and another for external connections—overcoming Azure's limitation of supporting only one peered network per container instance. The process involves creating resources like storage accounts, route tables, and DNS records, with a focus on RabbitMQ's DNS-based cluster peer discovery. Podhajcer also emphasizes deploying the resources in a specific order to ensure that the nodes start correctly, given Azure's current constraints on IP address allocation. This detailed guide is intended to serve as a foundational example for building more complex, scalable cloud solutions on Azure, highlighting the importance of structuring deployment code for maintainability and clarity.
Jul 16, 2020 1,240 words in the original blog post.
Developers can streamline their workflow by using containers to avoid installing software and dependencies directly on their machines, and the Visual Studio Code Remote - Containers extension facilitates this process by allowing development within a containerized environment. This guide explains how to set up a development environment using VS Code, Docker Desktop, and the Remote - Containers extension to work with Pulumi's infrastructure as code engine without requiring the Pulumi CLI installation. It details the steps to create a devcontainer using a Pulumi Dockerfile, configure container credentials securely, and use Pulumi to deploy resources such as an S3 bucket or a Kubernetes cluster. The setup allows for efficient infrastructure management and can be shared through a repository, encouraging collaboration and experimentation with infrastructure as code examples.
Jul 14, 2020 1,121 words in the original blog post.
The article is the third in a series focused on using infrastructure as code to deploy applications with Kubernetes, transitioning from simple to complex deployments with multiple containers and Pods. It reviews three application deployment scenarios, beginning with a 12-factor microservices application featuring frontend and backend services and a messaging queue. The second scenario simplifies the Kubernetes guestbook by combining Service and Deployment into a single component, demonstrating an alternative pattern for stack organization. The third scenario involves deploying a popular web application using Helm, Kubernetes' package manager. The article discusses the Sock Shop microservices reference application, highlighting its polyglot nature with microservices in Java, Go, and Node, and how they communicate via REST calls. The use of infrastructure as code is explored through components that abstract Kubernetes resources into higher-level objects, illustrated by the Guestbook application. Additionally, Helm charts are presented as a straightforward method for deploying standard applications. The article emphasizes that infrastructure as code can simplify complex deployments by abstracting resources, applying software development practices, and facilitating robust deployments. The next installment will address stateful services requiring persistent storage.
Jul 09, 2020 2,308 words in the original blog post.
Pulumi extends its support for managing Kubernetes resources by incorporating Kustomize into its suite of tools, enabling users to manage resources without needing to overhaul existing configurations. The v2.4.0 release of Pulumi's Kubernetes provider allows for the use of Kustomize across all supported SDKs, including Go, TypeScript, .NET, and Python, thus meeting the needs of users who prefer different methods like Helm and YAML. Pulumi facilitates the deployment of Kustomize configurations from both local directories and remote git repositories, offering flexibility in how resources are managed. Notably, Pulumi's Kubernetes SDK allows for transformations of resource definitions in memory, providing a streamlined alternative to modifying configuration files directly, which can be beneficial for making adjustments without altering the original files. This approach underscores Pulumi's commitment to providing versatile and efficient tools for modern application deployment in Kubernetes environments.
Jul 07, 2020 1,088 words in the original blog post.