<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>AKS on Wolkwacht</title>
    <link>https://wolkwacht.nl/tags/aks/</link>
    <description>Recent content in AKS on Wolkwacht</description>
    <image>
      <title>Wolkwacht</title>
      <url>https://wolkwacht.nl/images/branding/feature-image.png</url>
      <link>https://wolkwacht.nl/images/branding/feature-image.png</link>
    </image>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 31 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://wolkwacht.nl/tags/aks/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Production Readiness for Dapr on AKS: Upgrades, Disaster Recovery, and Lessons Learned</title>
      <link>https://wolkwacht.nl/posts/production-readiness-dapr-on-aks-upgrades-dr-lessons/</link>
      <pubDate>Sat, 31 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/posts/production-readiness-dapr-on-aks-upgrades-dr-lessons/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;A Dapr platform moving safely through upgrade, GitOps, backup, and regional recovery stages&#34; loading=&#34;lazy&#34; src=&#34;https://wolkwacht.nl/images/2026/dapr-production-readiness-feature.svg&#34;&gt;&lt;/p&gt;
&lt;p&gt;Production readiness starts where most tutorials end. Installing Dapr, deploying sidecars, and proving the building blocks are necessary milestones, but they do not answer the operational questions: How will you upgrade without moving every workload at once? Which state must survive a lost cluster? Can another region actually receive traffic? How quickly can you undo a bad change?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Securing and Scaling Dapr for Production on AKS</title>
      <link>https://wolkwacht.nl/posts/securing-and-scaling-dapr-for-production-on-aks/</link>
      <pubDate>Wed, 21 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/posts/securing-and-scaling-dapr-for-production-on-aks/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;Dapr-enabled application pods protected by identity and policy while scaling across AKS nodes&#34; loading=&#34;lazy&#34; src=&#34;https://wolkwacht.nl/images/2026/dapr-security-scaling-feature.svg&#34;&gt;&lt;/p&gt;
&lt;p&gt;A Dapr-enabled application can work perfectly with one replica and still be unprepared for production. The sidecar may have no resource requests, every application may be able to load every component, a rollout may require capacity the cluster does not have, or an autoscaler may react to application CPU while ignoring a throttled &lt;code&gt;daprd&lt;/code&gt; container.&lt;/p&gt;
&lt;p&gt;Production readiness is therefore not one switch. It is a chain of explicit decisions about identity, authorization, isolation, capacity, rollout behaviour, scaling signals, and control-plane availability.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Observability for Dapr on AKS: Traces, Metrics, and Logs</title>
      <link>https://wolkwacht.nl/posts/observability-for-dapr-on-aks-traces-metrics-and-logs/</link>
      <pubDate>Sun, 18 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/posts/observability-for-dapr-on-aks-traces-metrics-and-logs/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;A request flowing through two Dapr sidecars while traces, metrics, and logs reveal what happens&#34; loading=&#34;lazy&#34; src=&#34;https://wolkwacht.nl/images/2026/dapr-observability-feature.svg&#34;&gt;&lt;/p&gt;
&lt;p&gt;A request can fail even when every Kubernetes pod is &lt;code&gt;Running&lt;/code&gt;. The application may be waiting for a Dapr component, a retry may mask a slow dependency, or a call may reach the wrong app ID. Pod health tells us that the processes are alive; it does not explain the path a request takes.&lt;/p&gt;
&lt;p&gt;Dapr exposes three complementary signals. A trace reconstructs a single request across service boundaries. Metrics show whether a symptom is becoming a trend. Logs explain what a particular application or sidecar decided at a particular moment. The useful operational view comes from connecting all three.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bindings, Secrets, and Actors with Dapr on AKS</title>
      <link>https://wolkwacht.nl/posts/bindings-secrets-and-actors-with-dapr-on-aks/</link>
      <pubDate>Wed, 14 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/posts/bindings-secrets-and-actors-with-dapr-on-aks/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;A scheduled trigger entering a Dapr sidecar, an output binding calling an audit endpoint, a key protecting the configuration, and actor instances&#34; loading=&#34;lazy&#34; src=&#34;https://wolkwacht.nl/images/2026/dapr-bindings-secrets-actors-feature.svg&#34;&gt;&lt;/p&gt;
&lt;p&gt;The first six parts of this series covered Dapr&amp;rsquo;s most familiar building blocks: service invocation, state management, and pub/sub. They solve application-to-application calls, state, and asynchronous messaging. Three other capabilities often appear beside them, but they solve different problems.&lt;/p&gt;
&lt;p&gt;Bindings connect an application to an external system through a trigger or an operation. Secret stores keep credentials out of component manifests. Actors give stateful entities an address and a single-threaded execution boundary. Dapr Workflow then coordinates longer-running, multi-step processes, including work performed by actors.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pub/Sub Messaging with Dapr and Azure Service Bus on AKS</title>
      <link>https://wolkwacht.nl/posts/pubsub-messaging-with-dapr-and-azure-service-bus-on-aks/</link>
      <pubDate>Sun, 11 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/posts/pubsub-messaging-with-dapr-and-azure-service-bus-on-aks/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;An order service publishing events through Dapr to a broker and several subscribers&#34; loading=&#34;lazy&#34; src=&#34;https://wolkwacht.nl/images/2026/dapr-pubsub-feature.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;A synchronous request establishes a direct dependency: the caller pauses while the destination handles the task. This approach is suitable when an immediate response is required. However, it is less ideal when multiple independent services need to respond to an event that has already occurred.&lt;/p&gt;
&lt;p&gt;An order can be accepted immediately without waiting for notification, fulfillment, analytics, or fraud services to complete. Publishing an &lt;code&gt;order placed&lt;/code&gt; event allows these consumers to operate independently, scale separately, and recover from temporary failures. However, it also introduces new responsibilities such as managing event contracts, handling duplicate deliveries, setting retry limits, dealing with poison messages, maintaining order, and managing broker operations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>State Management with Dapr on AKS</title>
      <link>https://wolkwacht.nl/posts/state-management-with-dapr-on-aks/</link>
      <pubDate>Sun, 04 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/posts/state-management-with-dapr-on-aks/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;A shopping-cart application storing data through a Dapr sidecar in a replaceable state store&#34; loading=&#34;lazy&#34; src=&#34;https://wolkwacht.nl/images/2026/dapr-state-management-feature.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Persisting a shopping cart often involves database-related tasks: choosing a client library, setting up a connection pool, managing credentials, serializing the model, retrying transient failures, and deciding on concurrent update policies. When using a different language or database, much of this integration effort varies.&lt;/p&gt;
&lt;p&gt;Dapr state management moves the infrastructure-facing layer behind a local HTTP or gRPC API. The application works with keys, values, ETags, and consistency hints. A Dapr &lt;code&gt;Component&lt;/code&gt; tells the sidecar which store to use for those operations, such as Redis, Azure Cosmos DB, PostgreSQL, or another supported store.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Service Invocation with Dapr on AKS</title>
      <link>https://wolkwacht.nl/posts/service-invocation-and-dapr-building-blocks-on-aks/</link>
      <pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/posts/service-invocation-and-dapr-building-blocks-on-aks/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;Two applications communicating through their Dapr sidecars on Kubernetes&#34; loading=&#34;lazy&#34; src=&#34;https://wolkwacht.nl/images/2026/dapr-service-invocation-feature.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;A direct HTTP call between two Kubernetes services seems simple. The caller needs a hostname, a timeout, and sufficient error handling to survive a disappearing pod. Soon it also needs retries, tracing, metrics, transport security, and an answer to which failures are safe to retry. Repeating that work in every service and language is where simple calls become distributed-systems plumbing.&lt;/p&gt;
&lt;p&gt;Dapr service invocation moves much of that plumbing into the sidecars. The caller sends a standard HTTP or gRPC request to its local Dapr endpoint and identifies the destination by app ID. Dapr discovers a healthy destination instance, preserves tracing context, communicates between sidecars using mTLS on Kubernetes, and forwards the request to the destination application.&lt;/p&gt;</description>
    </item>
    <item>
      <title>From OrbStack to AKS: Installing Dapr on a Managed Cluster</title>
      <link>https://wolkwacht.nl/posts/from-orbstack-to-aks-installing-dapr-on-a-managed-cluster/</link>
      <pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/posts/from-orbstack-to-aks-installing-dapr-on-a-managed-cluster/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;A Dapr-enabled application moving from a local Kubernetes workstation to a managed AKS cluster&#34; loading=&#34;lazy&#34; src=&#34;https://wolkwacht.nl/images/2026/dapr-orbstack-to-aks-feature.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Transferring a Dapr-enabled application from local Kubernetes to AKS should be straightforward. The annotations, app ID, application port, sidecar API, and workload manifest stay familiar. The key difference is ownership: a temporary local setup transforms into a shared runtime that requires a version policy, availability plan, network access, identity strategy, and support structure.&lt;/p&gt;
&lt;p&gt;This post moves the sample from &lt;a href=&#34;https://wolkwacht.nl/posts/installing-dapr-on-kubernetes-locally-with-orbstack/&#34;&gt;Installing Dapr on Kubernetes Locally with OrbStack&lt;/a&gt; to an existing AKS cluster. We will compare the open-source installation path with the AKS Dapr extension, install the extension, verify the control plane, and deploy the same NGINX workload.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing Dapr on Kubernetes Locally with OrbStack</title>
      <link>https://wolkwacht.nl/posts/installing-dapr-on-kubernetes-locally-with-orbstack/</link>
      <pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/posts/installing-dapr-on-kubernetes-locally-with-orbstack/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;A developer workstation running a local Kubernetes cluster with an application and Dapr sidecar&#34; loading=&#34;lazy&#34; src=&#34;https://wolkwacht.nl/images/2026/dapr-orbstack-feature.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;To quickly grasp Dapr on Kubernetes, it’s best to start locally rather than with an AKS cluster. Local setup allows for rapid pod creation in seconds, minimizes the consequences of mistakes, and keeps all control-plane components easily accessible for inspection.&lt;/p&gt;
&lt;p&gt;In this post, we&amp;rsquo;ll demonstrate setting up OrbStack&amp;rsquo;s single-node Kubernetes cluster on macOS, installing Dapr in development mode, examining the creation process, deploying a simple web app with a sidecar, and accessing it via Dapr&amp;rsquo;s HTTP API. The same annotations and runtime model apply to AKS later, with only differences in the platform and installation approach.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dapr on Kubernetes and AKS Series</title>
      <link>https://wolkwacht.nl/dapr-on-aks-series/</link>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/dapr-on-aks-series/</guid>
      <description>&lt;h1 id=&#34;dapr-on-kubernetes-and-aks&#34;&gt;Dapr on Kubernetes and AKS&lt;/h1&gt;
&lt;p&gt;Dapr gives applications a consistent set of APIs for common distributed-systems concerns while leaving the backing infrastructure replaceable. This series starts with the mental model, builds a fast local development loop, moves the same workload to Azure Kubernetes Service, and then works through the building blocks and production concerns.&lt;/p&gt;
&lt;p&gt;The series is written for developers and platform engineers who already know the basics of Kubernetes but are new to Dapr. Each post stands on its own; reading in order gives you the smoothest path from first principles to production.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What Is Dapr, and Why Run It on Kubernetes?</title>
      <link>https://wolkwacht.nl/posts/what-is-dapr-and-why-run-it-on-kubernetes/</link>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/posts/what-is-dapr-and-why-run-it-on-kubernetes/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;A cloud-native application and its Dapr sidecar connect to state, messaging, secrets, and services&#34; loading=&#34;lazy&#34; src=&#34;https://wolkwacht.nl/images/2026/dapr-on-aks-part-1-feature.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Every distributed application gathers various plumbing components. One service requires retries and timeouts, another needs a message broker client, and a third must store some state, retrieve secrets, or discover other services. Over time, each team ends up with a unique set of client libraries, connection handling methods, telemetry, and failure behaviors.&lt;/p&gt;
&lt;p&gt;Dapr, the Distributed Application Runtime, provides a uniform API for the underlying infrastructure. Your application communicates with a local Dapr process via HTTP or gRPC. Dapr then interacts with services, the state store, the broker, the secret store, or other components on your application&amp;rsquo;s behalf. While the application retains control of its business logic, Dapr offers reusable capabilities for building distributed applications.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Is Azure Container Apps Eating AKS&#39;s Lunch for Smaller Workloads?</title>
      <link>https://wolkwacht.nl/posts/2026-09-04_is-azure-container-apps-eating-akss-lunch-for-smaller-workloads/</link>
      <pubDate>Fri, 04 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://wolkwacht.nl/posts/2026-09-04_is-azure-container-apps-eating-akss-lunch-for-smaller-workloads/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;A small set of containerized services chooses between a lightweight managed platform and a more sophisticated Kubernetes platform&#34; loading=&#34;lazy&#34; src=&#34;https://wolkwacht.nl/images/2026/aca-vs-aks-feature.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Kubernetes has become so familiar that many teams don&amp;rsquo;t choose to adopt it anymore; they just start using it. When a new internal API appears, someone sets up an AKS cluster, and within weeks, the team manages node pools, upgrade channels, ingress, identity, policies, observability, and a backlog of Helm charts. None of these decisions are incorrect, but the issue is that the workload might never have required a Kubernetes platform in the first place.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
