SlideShare a Scribd company logo
Continuous Deployment with
Akka.Cluster and Kubernetes
By Aaron Stannard,
Petabridge CEO
Akka.NET Co-Founder
What We’re Going to Learn
Today
• Akka.Cluster Overview
• Docker & .NET Core Fundamentals
• Akka.Cluster & Docker Best Practices
• Kubernetes Concepts
• Azure Kubernetes Service
• Putting it all Together into Continuous
Deployment
Why .NET Core?
• Cross-platform
• Extremely fast
• Lightweight
• Future of .NET
• Plays well with
Docker
Why Docker?
• Ubiquitous – runs
everywhere, used
everywhere.
• Easy, reproducible
configuration format –
Dockerfiles.
• Composable.
• Easy to share output
via compiled Docker
images.
Why Kubernetes?
• Ubiquitous – runs on-
premise, on the cloud,
etc…
• Robust deployment
models – including
handling for stateful
apps.
• Rich ecosystem.
Why Azure Kubernetes
Service?
• Takes only a few
minutes to setup.
• Integrates well with
Azure DevOps.
• Great environment for
learning K8s.
Akka.Cluster Continuous
Deployment Process
Demo
View of an Akka.NET Cluster
Each node is its
own ActorSystem
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
How Akka.Cluster State Gets
Distributed: Routers
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Other State Distribution Tools
• Akka.Cluster.Tools
– Distributed Publish-Subscribe
– ClusterClient
• Akka.Cluster.Sharding
Working with .NET Core,
Akka.NET, and Docker
Docker Key Terms
• “Image” – a compiled image containing all of the files
needed to execute the process.
• “Repository” – a collection of named and tagged images
hosted at a specific URI.
• “Container” – represents a running instance of a Docker
image on a host machine.
• “Host” – a machine running the Docker engine, capable
of hosting 1 or more running containers.
DockerHub – Public Images
Docker Container Hosting
Bootstrapping Akka.Cluster
• Need to program Akka.Remote to
automatically listen to reachable host +
port inside Docker vNet.
• Need to program Akka.Cluster to contact
seed nodes inside Docker vNet.
• Need to program Akka.Cluster to leave
cluster gracefully prior to / during container
shutdown.
Akka.Bootstrap.Docker
PackageCalls Akka.Bootstrap.Docker
parser – injects runtime &
environment networking values
directly into HOCON prior to
starting ActorSystem.
1. If CLUSTER_IP environment variable is set, that becomes akka.remote.dot-
netty.tcp.public-hostname. If not, then Dns.GetHostName() is used.
2. CLUSTER_PORT environment variable is used for dot-netty.tcp.port.
3. CLUSTER_SEEDS environment variable is a comma-delimited list of addresses.
Akka.NET Dockerfile
FROM microsoft/dotnet:2.1-sdk AS base
WORKDIR /app
# should be a comma-delimited list
ENV CLUSTER_SEEDS "[]"
ENV CLUSTER_IP ""
ENV CLUSTER_PORT "5213"
#Akka.Remote inbound listening endpoint
EXPOSE 5213
COPY ./bin/Release/netcoreapp2.1/publish/ /app
# Install Petabridge.Cmd client
RUN dotnet tool install --global pbm
# Needed because https://stackoverflow.com/questions/51977474/install-dotnet-core-tool-
dockerfile
ENV PATH="${PATH}:/root/.dotnet/tools"
# RUN pbm help
CMD ["dotnet", "WebCrawler.CrawlService.dll"]
Name of the base image we’re
going to use. Taken from the
public Microsoft .NET Core
repository on DockerHub
Set of environment variables
expected by Akka.Bootstrap.Docker
The container’s port expose to the
Docker network
Copy application files from host machine
to container working directory
Execute command inside container
Container’s process entrypoint. If this
process dies, the container dies.
Using Petabridge.Cmd Inside
Docker
• Provides instrumentation to managing,
viewing cluster from inside Docker
network.
• Can be used to trigger graceful shutdowns
of containers.
• Secured inside container network – have
to be able to access host machine to
invoke pbm.
Docker Image Publish Process
Private Docker Registries
• Don’t publish your company’s code onto
DockerHub.
• Use Azure Container Registry (ACR) or
private hosts or services instead.
Kubernetes Core Concepts
• K8s is an “orchestration” platform – networks
multiple container hosts together into unified
abstraction.
• Applications are deployed to the K8s cluster –
K8s then orchestrates the instantiation of
containers across hosts.
• Applications define via configuration:
– Which parts can be exposed publicly and how.
– How different parts of application can be deployed and
managed.
Kubernetes Core Concepts
K8s Infrastructure on Azure AKS
K8s Key Terms (for
Akka.Cluster)
• “Pod” – represents a single application unit
of execution. Consists of 1 or more Docker
container.
• “Stateful set” – a deployment group of
identical pods working together as a
stateful service.
• “Service” – defines how a stateful set
exposes itself to other services within K8s
and Akka.NET cluster.
Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)
Akka.Cluster K8s Methodology
• All applications are deployed as stateful
sets
– State is fundamental to how Akka.Cluster
works
• All internal Akka.Cluster functionality is
exposed as “ClusterIp” services
• External / public functionality can exposed
as a “LoadBalancer” service or otherwise
• Petabridge.Cmd used for node exits
• Deployments / rollbacks performed by
K8s Stateful Set YAML File (pt1)
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: lighthouse
labels:
app: lighthouse
spec:
serviceName: lighthouse
replicas: 3
selector:
matchLabels:
app: lighthouse
template:
metadata:
labels:
app: lighthouse
spec:
terminationGracePeriodSeconds: 35
containers:
- name: lighthouse
image: webcrawler.lighthouse:0.2.4
lifecycle:
preStop:
exec:
command: ["/bin/sh", "-c", "pbm 127.0.0.1:9110 cluster leave"]
Declares “lighthouse” stateful set
Declares number of replicas in initial
deployment
Specifies the container name inside the pod
and the Docker image used.
Tells K8s to invoke this command prior to
Terminating any pods in this stateful set.
K8s Stateful Set YAML File (pt2)
env:
- name: ACTORSYSTEM
value: webcrawler
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: CLUSTER_IP
value: "$(POD_NAME).lighthouse"
- name: CLUSTER_SEEDS
value: akka.tcp://webcrawler@lighthouse-0.lighthouse:4053,akka.tcp://webcrawler@lighthouse-
1.lighthouse:4053,akka.tcp://webcrawler@lighthouse-2.lighthouse:4053
livenessProbe:
tcpSocket:
port: 4053
ports:
- containerPort: 4053
protocol: TCP
Populates the POD_NAME environment
variable using K8s metadata at deployment
time.
Populates unique per-node hostname
consumed by Akka.Bootstrap.Docker.
Seed nodes
Liveness probe. Terminates + restarts
container if this check fails. Using
Akka.Remote inbound port.
Container port – exposed to internal
K8s network.
K8s ClusterIP Service YAML
apiVersion: v1
kind: Service
metadata:
name: lighthouse
labels:
app: lighthouse
spec:
clusterIP: None
ports:
- port: 4053
selector:
app: lighthouse
Exposes Lighthouse services across-hosts on
their container port (4053) and host IP
addresses. Not accessible outside of K8s cluster.
Tells K8s that this service points to the
“lighthouse” stateful set we deployed earlier.
Creating the Initial K8s Cluster
kubectl apply –f k8s-lighthouse-service.yaml
kubectl apply –f k8s-crawler-service.yaml
kubectl apply –f k8s-web-service.yaml
Etc…
Azure Kubernetes Service
(AKS)
• Managed K8s on top of Azure virtual
machines and other resources.
• Easy to setup and instrument
– Azure CLI makes it easy to communicate with
AKS via kubectl.
– Works well with Azure DevOps.
– Dev Spaces make it easy to work across
multiple people & teams.
• Great environment for learning K8s.
Akka.Cluster Continuous
Deployment Process
Links and Further Reading
• Source: https://github.com/petabridge/Cluster.WebCrawler
• Petabridge.Cmd: https://cmd.petabridge.com/
• Akka.Bootstrap.Docker: https://github.com/petabridge/akkadotnet-bootstrap
• Akka.HealthCheck.Cluster: https://github.com/petabridge/akkadotnet-
healthcheck
• AKS Quickstart Tutorial: https://docs.microsoft.com/en-us/azure/aks/tutorial-
kubernetes-prepare-app
• AKS + kubectl CLI Tutorial: https://docs.microsoft.com/en-
us/azure/aks/kubernetes-walkthrough
• Akka.Cluster, Docker, K8s Training Tour:
https://trainingtour2019.petabridge.com/

More Related Content

DOCX
It8073 information security syllabus
PPTX
Technology for national security.ppt
PPT
Chapter 16 2-8-2024 12345678945612322.ppt
PPTX
Data mining and knowledge discovery
PDF
14.05.12 Analysis and Prediction of Flight Prices using Historical Pricing Da...
DOCX
Leave Management System: Software Requirements Specification Document(SRS)
PPTX
DIGITAL PERSONAL DATA PROTECTION ACT 2023-PPT-VPD.pptx
PPTX
E-learning system
It8073 information security syllabus
Technology for national security.ppt
Chapter 16 2-8-2024 12345678945612322.ppt
Data mining and knowledge discovery
14.05.12 Analysis and Prediction of Flight Prices using Historical Pricing Da...
Leave Management System: Software Requirements Specification Document(SRS)
DIGITAL PERSONAL DATA PROTECTION ACT 2023-PPT-VPD.pptx
E-learning system

Similar to Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET) (20)

PDF
Kubernetes for java developers - Tutorial at Oracle Code One 2018
PDF
Kubernetes 101
PDF
Container orchestration k8s azure kubernetes services
PDF
Get you Java application ready for Kubernetes !
PDF
Container Orchestration Integration: OpenStack Kuryr
PDF
Container Orchestration Integration: OpenStack Kuryr & Apache Mesos
PDF
Kubernetes for Java developers
PDF
Pro2516 10 things about oracle and k8s.pptx-final
PDF
Clocker - How to Train your Docker Cloud
PPTX
Introducing Docker Swarm - the orchestration tool by Docker
PDF
DEVOPS UNIT 4 docker and services commands
PPTX
Kubernetes fundamentals
PDF
Simulating Production with Clocker
PDF
DevNetCreate - ACI and Kubernetes Integration
PDF
Kubernetes Java Operator
PPTX
Best Practices for Running Kafka on Docker Containers
PPT
Docker and CloudStack
PDF
Clocker - The Docker Cloud Maker
PPTX
Kubernetes 101 for Beginners
PPTX
AKS components
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes 101
Container orchestration k8s azure kubernetes services
Get you Java application ready for Kubernetes !
Container Orchestration Integration: OpenStack Kuryr
Container Orchestration Integration: OpenStack Kuryr & Apache Mesos
Kubernetes for Java developers
Pro2516 10 things about oracle and k8s.pptx-final
Clocker - How to Train your Docker Cloud
Introducing Docker Swarm - the orchestration tool by Docker
DEVOPS UNIT 4 docker and services commands
Kubernetes fundamentals
Simulating Production with Clocker
DevNetCreate - ACI and Kubernetes Integration
Kubernetes Java Operator
Best Practices for Running Kafka on Docker Containers
Docker and CloudStack
Clocker - The Docker Cloud Maker
Kubernetes 101 for Beginners
AKS components
Ad

More from petabridge (20)

PPTX
Diagnosing Production Akka.NET Problems with OpenTelemetry.pptx
PPTX
Leveraging AI for Software Developer Productivity.pptx
PPTX
NET Systems Programming Learned the Hard Way.pptx
PPTX
DotNext 2020 - When and How to Use the Actor Model and Akka.NET
PPTX
.NET Conf 2019 When and How to Use the Actor Model: an Introduction to Akka...
PPTX
Introduction to Distributed Tracing
PPTX
Akka.NET: Concurrency without the Pain
PPTX
Introduction to Akka.NET and Akka.Cluster
PPTX
Automed .NET Performance Testing with NBench
PPTX
We're all distributed systems devs now: a crash course in distributed program...
PPTX
The New .NET Enterprise Stack
PDF
Full-Stack, Message-oriented Programming w/ Akka.NET Actors
PDF
OSS From the Outside In - A Personal Journey With Akka.NET
PDF
Concurrency, Without the Pain: An Intro to Akka.NET @ Bay.NET
PDF
Syncromatics Akka.NET Case Study
PDF
Akka.NET @ London.NET
PDF
Akka.NET Fundamentals — #ProgNet15
PDF
Slides - Intro to Akka.Cluster
PDF
Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)
PDF
Distributed Transactions in Akka.NET
Diagnosing Production Akka.NET Problems with OpenTelemetry.pptx
Leveraging AI for Software Developer Productivity.pptx
NET Systems Programming Learned the Hard Way.pptx
DotNext 2020 - When and How to Use the Actor Model and Akka.NET
.NET Conf 2019 When and How to Use the Actor Model: an Introduction to Akka...
Introduction to Distributed Tracing
Akka.NET: Concurrency without the Pain
Introduction to Akka.NET and Akka.Cluster
Automed .NET Performance Testing with NBench
We're all distributed systems devs now: a crash course in distributed program...
The New .NET Enterprise Stack
Full-Stack, Message-oriented Programming w/ Akka.NET Actors
OSS From the Outside In - A Personal Journey With Akka.NET
Concurrency, Without the Pain: An Intro to Akka.NET @ Bay.NET
Syncromatics Akka.NET Case Study
Akka.NET @ London.NET
Akka.NET Fundamentals — #ProgNet15
Slides - Intro to Akka.Cluster
Akka.NET: Concurrency Without the Pain (Intro to the Actor Model)
Distributed Transactions in Akka.NET
Ad

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Encapsulation theory and applications.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Big Data Technologies - Introduction.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
cuic standard and advanced reporting.pdf
PDF
Electronic commerce courselecture one. Pdf
PPTX
sap open course for s4hana steps from ECC to s4
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Encapsulation theory and applications.pdf
Spectroscopy.pptx food analysis technology
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Digital-Transformation-Roadmap-for-Companies.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Big Data Technologies - Introduction.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
20250228 LYD VKU AI Blended-Learning.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Review of recent advances in non-invasive hemoglobin estimation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
cuic standard and advanced reporting.pdf
Electronic commerce courselecture one. Pdf
sap open course for s4hana steps from ECC to s4
“AI and Expert System Decision Support & Business Intelligence Systems”
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx

Continuous Deployment with Akka.Cluster and Kubernetes (Akka.NET)

  • 1. Continuous Deployment with Akka.Cluster and Kubernetes By Aaron Stannard, Petabridge CEO Akka.NET Co-Founder
  • 2. What We’re Going to Learn Today • Akka.Cluster Overview • Docker & .NET Core Fundamentals • Akka.Cluster & Docker Best Practices • Kubernetes Concepts • Azure Kubernetes Service • Putting it all Together into Continuous Deployment
  • 3. Why .NET Core? • Cross-platform • Extremely fast • Lightweight • Future of .NET • Plays well with Docker
  • 4. Why Docker? • Ubiquitous – runs everywhere, used everywhere. • Easy, reproducible configuration format – Dockerfiles. • Composable. • Easy to share output via compiled Docker images.
  • 5. Why Kubernetes? • Ubiquitous – runs on- premise, on the cloud, etc… • Robust deployment models – including handling for stateful apps. • Rich ecosystem.
  • 6. Why Azure Kubernetes Service? • Takes only a few minutes to setup. • Integrates well with Azure DevOps. • Great environment for learning K8s.
  • 9. View of an Akka.NET Cluster Each node is its own ActorSystem
  • 11. How Akka.Cluster State Gets Distributed: Routers
  • 18. Other State Distribution Tools • Akka.Cluster.Tools – Distributed Publish-Subscribe – ClusterClient • Akka.Cluster.Sharding
  • 19. Working with .NET Core, Akka.NET, and Docker
  • 20. Docker Key Terms • “Image” – a compiled image containing all of the files needed to execute the process. • “Repository” – a collection of named and tagged images hosted at a specific URI. • “Container” – represents a running instance of a Docker image on a host machine. • “Host” – a machine running the Docker engine, capable of hosting 1 or more running containers.
  • 23. Bootstrapping Akka.Cluster • Need to program Akka.Remote to automatically listen to reachable host + port inside Docker vNet. • Need to program Akka.Cluster to contact seed nodes inside Docker vNet. • Need to program Akka.Cluster to leave cluster gracefully prior to / during container shutdown.
  • 24. Akka.Bootstrap.Docker PackageCalls Akka.Bootstrap.Docker parser – injects runtime & environment networking values directly into HOCON prior to starting ActorSystem. 1. If CLUSTER_IP environment variable is set, that becomes akka.remote.dot- netty.tcp.public-hostname. If not, then Dns.GetHostName() is used. 2. CLUSTER_PORT environment variable is used for dot-netty.tcp.port. 3. CLUSTER_SEEDS environment variable is a comma-delimited list of addresses.
  • 25. Akka.NET Dockerfile FROM microsoft/dotnet:2.1-sdk AS base WORKDIR /app # should be a comma-delimited list ENV CLUSTER_SEEDS "[]" ENV CLUSTER_IP "" ENV CLUSTER_PORT "5213" #Akka.Remote inbound listening endpoint EXPOSE 5213 COPY ./bin/Release/netcoreapp2.1/publish/ /app # Install Petabridge.Cmd client RUN dotnet tool install --global pbm # Needed because https://stackoverflow.com/questions/51977474/install-dotnet-core-tool- dockerfile ENV PATH="${PATH}:/root/.dotnet/tools" # RUN pbm help CMD ["dotnet", "WebCrawler.CrawlService.dll"] Name of the base image we’re going to use. Taken from the public Microsoft .NET Core repository on DockerHub Set of environment variables expected by Akka.Bootstrap.Docker The container’s port expose to the Docker network Copy application files from host machine to container working directory Execute command inside container Container’s process entrypoint. If this process dies, the container dies.
  • 26. Using Petabridge.Cmd Inside Docker • Provides instrumentation to managing, viewing cluster from inside Docker network. • Can be used to trigger graceful shutdowns of containers. • Secured inside container network – have to be able to access host machine to invoke pbm.
  • 28. Private Docker Registries • Don’t publish your company’s code onto DockerHub. • Use Azure Container Registry (ACR) or private hosts or services instead.
  • 29. Kubernetes Core Concepts • K8s is an “orchestration” platform – networks multiple container hosts together into unified abstraction. • Applications are deployed to the K8s cluster – K8s then orchestrates the instantiation of containers across hosts. • Applications define via configuration: – Which parts can be exposed publicly and how. – How different parts of application can be deployed and managed.
  • 32. K8s Key Terms (for Akka.Cluster) • “Pod” – represents a single application unit of execution. Consists of 1 or more Docker container. • “Stateful set” – a deployment group of identical pods working together as a stateful service. • “Service” – defines how a stateful set exposes itself to other services within K8s and Akka.NET cluster.
  • 34. Akka.Cluster K8s Methodology • All applications are deployed as stateful sets – State is fundamental to how Akka.Cluster works • All internal Akka.Cluster functionality is exposed as “ClusterIp” services • External / public functionality can exposed as a “LoadBalancer” service or otherwise • Petabridge.Cmd used for node exits • Deployments / rollbacks performed by
  • 35. K8s Stateful Set YAML File (pt1) apiVersion: apps/v1 kind: StatefulSet metadata: name: lighthouse labels: app: lighthouse spec: serviceName: lighthouse replicas: 3 selector: matchLabels: app: lighthouse template: metadata: labels: app: lighthouse spec: terminationGracePeriodSeconds: 35 containers: - name: lighthouse image: webcrawler.lighthouse:0.2.4 lifecycle: preStop: exec: command: ["/bin/sh", "-c", "pbm 127.0.0.1:9110 cluster leave"] Declares “lighthouse” stateful set Declares number of replicas in initial deployment Specifies the container name inside the pod and the Docker image used. Tells K8s to invoke this command prior to Terminating any pods in this stateful set.
  • 36. K8s Stateful Set YAML File (pt2) env: - name: ACTORSYSTEM value: webcrawler - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: CLUSTER_IP value: "$(POD_NAME).lighthouse" - name: CLUSTER_SEEDS value: akka.tcp://webcrawler@lighthouse-0.lighthouse:4053,akka.tcp://webcrawler@lighthouse- 1.lighthouse:4053,akka.tcp://webcrawler@lighthouse-2.lighthouse:4053 livenessProbe: tcpSocket: port: 4053 ports: - containerPort: 4053 protocol: TCP Populates the POD_NAME environment variable using K8s metadata at deployment time. Populates unique per-node hostname consumed by Akka.Bootstrap.Docker. Seed nodes Liveness probe. Terminates + restarts container if this check fails. Using Akka.Remote inbound port. Container port – exposed to internal K8s network.
  • 37. K8s ClusterIP Service YAML apiVersion: v1 kind: Service metadata: name: lighthouse labels: app: lighthouse spec: clusterIP: None ports: - port: 4053 selector: app: lighthouse Exposes Lighthouse services across-hosts on their container port (4053) and host IP addresses. Not accessible outside of K8s cluster. Tells K8s that this service points to the “lighthouse” stateful set we deployed earlier.
  • 38. Creating the Initial K8s Cluster kubectl apply –f k8s-lighthouse-service.yaml kubectl apply –f k8s-crawler-service.yaml kubectl apply –f k8s-web-service.yaml Etc…
  • 39. Azure Kubernetes Service (AKS) • Managed K8s on top of Azure virtual machines and other resources. • Easy to setup and instrument – Azure CLI makes it easy to communicate with AKS via kubectl. – Works well with Azure DevOps. – Dev Spaces make it easy to work across multiple people & teams. • Great environment for learning K8s.
  • 41. Links and Further Reading • Source: https://github.com/petabridge/Cluster.WebCrawler • Petabridge.Cmd: https://cmd.petabridge.com/ • Akka.Bootstrap.Docker: https://github.com/petabridge/akkadotnet-bootstrap • Akka.HealthCheck.Cluster: https://github.com/petabridge/akkadotnet- healthcheck • AKS Quickstart Tutorial: https://docs.microsoft.com/en-us/azure/aks/tutorial- kubernetes-prepare-app • AKS + kubectl CLI Tutorial: https://docs.microsoft.com/en- us/azure/aks/kubernetes-walkthrough • Akka.Cluster, Docker, K8s Training Tour: https://trainingtour2019.petabridge.com/