From 332b531939f3e77ce54d254a28ff0dc18b29c402 Mon Sep 17 00:00:00 2001 From: Charlie Stanley Date: Mon, 13 Jul 2020 12:53:34 -0700 Subject: [PATCH] Minor style guide changes to hybrid-clusters howto stub --- howto/README.md | 1 + howto/hybrid-clusters/README.md | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/howto/README.md b/howto/README.md index 3b2a9f1bd..f21b0b454 100644 --- a/howto/README.md +++ b/howto/README.md @@ -89,6 +89,7 @@ For Actors How Tos see the SDK documentation * [Sidecar configuration on Kubernetes](./configure-k8s) * [Autoscale on Kubernetes using KEDA and Dapr bindings](./autoscale-with-keda) +* [Deploy to hybrid Linux/Windows Kubernetes clusters](./hybrid-clusters) ## Developer tooling ### Using Visual Studio Code diff --git a/howto/hybrid-clusters/README.md b/howto/hybrid-clusters/README.md index f7cba6423..2c0208190 100644 --- a/howto/hybrid-clusters/README.md +++ b/howto/hybrid-clusters/README.md @@ -1,8 +1,12 @@ -# Deploying to Hybrid Linux/Winodws K8s Clusters +# Deploy to hybrid Linux/Windows Kubernetes clusters + +If you would like to deploy dapr to a Kubernetes cluster that contains both Windows and Linux nodes, you can do so, but there are known limitiations. All dapr control plane components must be run exclusively on Linux enabled nodes. The same is currently true for all Dapr applications. Thus when deploying to hybrid Kubernetes clusters you will need to ensure that Kubernetes knows to place your application containers exclusively on Linux enabled nodes. + +> **Note:** Windows container support for Dapr applications is in progress. Please see: [dapr/dapr#842](https://github.com/dapr/dapr/issues/842). ## Installing the Dapr Control Plane -If you are installing using the Dapr CLI or via helm chart, you can simply follow our normal deployment procedures: +If you are installing using the Dapr CLI or via helm chart, you can simply follow the normal deployment procedures: [Installing Dapr on a Kubernetes cluster](../../getting-started/environment-setup.md#installing-Dapr-on-a-kubernetes-cluster) Affinity will be automatically set for kubernetes.io/os=linux. If you need to override linux to another value, you can do so by setting: @@ -11,9 +15,8 @@ helm install dapr dapr/dapr --set global.daprControlPlaneOs=YOUR_OS ``` Dapr control plane container images are only provided for Linux, so you shouldn't need to do this unless you really know what you are doing. -## Installing Dapr Apps +## Installing Dapr applications The Dapr sidecar container is currently Linux only. For this reason, if you are writing a Dapr application, you must run it in a Linux container. -> **Note:** Windows support for dapr applications is in progress. Please see: [dapr/dapr#842](https://github.com/dapr/dapr/issues/842). When deploying to a hybrid cluster, you must configure your apps to be deployed to only Linux available nodes. One of the simplest ways to do this is to add kubernetes.io/os=linux to your app's nodeSelector. @@ -23,6 +26,8 @@ spec: kubernetes.io/os: linux ``` +## Related links + Kubernetes also supports much more advanced configuration via node affinity. See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ for more examples.