<p>I am trying to install RabbitMQ operator from this <a href="https://www.rabbitmq.com/kubernetes/operator/install-operator.html" rel="nofollow noreferrer">link</a> on K8S cluster</p>
<p>I created the following setup on our environment</p>
<p>Example</p>
<pre><code>K8S Control Plane (Cent OS)   - 192.168.1.2
Worker Node - 1   (Cent OS)   - 192.168.1.3
Worker Node - 2   (WindowS)   - 192.168.1.4
</code></pre>
<p>When I execute <code>kubectl apply -f https://github.com/rabbitmq/cluster-operator/releases/latest/download/cluster-operator.yml</code> by default it tries to install <code>RabbitMQ on Windows Node</code></p>
<p>As the RabbitMQ Operator YAML file is too big I am not sure where and all nodeSelector should be changed</p>
<p>However, I want to install <code>RabbitMQ on Linux node</code> and I don't know how to change / set the default node for Kubernetes</p>
<p><strong>EDIT</strong></p>
<pre><code>[root@re-ctrl1 ~]# kubectl get nodes -o wide --show-labels
NAME                                    STATUS   ROLES                  AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                       KERNEL-VERSION          CONTAINER-RUNTIME   LABELS
re-devcentos                            Ready    &lt;none&gt;                 83d   v1.21.0   192.168.1.3    &lt;none&gt;        CentOS Linux 7 (Core)          3.10.0-862.el7.x86_64   docker://1.13.1     beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=re-devcentos,kubernetes.io/os=linux
re-ctrl1                                Ready    control-plane,master   91d   v1.21.0   192.168.1.2    &lt;none&gt;        CentOS Linux 7 (Core)          3.10.0-862.el7.x86_64   docker://20.10.6    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=re-ctrl1,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=
win-lj7gtbktpgg                         Ready    &lt;none&gt;                 8d    v1.21.1   192.168.1.4    &lt;none&gt;        Windows Server 2019 Standard   10.0.17763.2061         docker://20.10.7    beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=windows,kubernetes.io/arch=amd64,kubernetes.io/hostname=win-lj7gtbktpgg,kubernetes.io/os=windows,node.kubernetes.io/windows-build=10.0.17763
</code></pre>

Sathish Kumar
<p>In your <code>node</code> labels, there is an useful label called <code>kubernetes.io/os=linux</code>,you should use this label to schedule pod on the node with this label.</p>
<p>Eg: (partial file)....</p>
<pre><code>apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: rabbitmq-operator
    app.kubernetes.io/name: rabbitmq-cluster-operator
    app.kubernetes.io/part-of: rabbitmq
  name: rabbitmq-cluster-operator
  namespace: rabbitmq-system
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: rabbitmq-cluster-operator
  template:
    metadata:
      labels:
        app.kubernetes.io/component: rabbitmq-operator
        app.kubernetes.io/name: rabbitmq-cluster-operator
        app.kubernetes.io/part-of: rabbitmq
    spec:
      nodeSelector:
        kubernetes.io/os: linux #&lt;----this is making deployment's pod to choose node with this label. 
      containers:
      - command:
        - /manager
        env:
        - name: OPERATOR_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        image: rabbitmqoperator/cluster-operator:1.8.0
        name: operator
        ports:
</code></pre>
