<p>I've setup Kubernetes with the steps below. Everything looks fine - but it's running on a single node/server. </p>

<p>Now I want to take the next step for running on multiple nodes. I wonder where should I configure my physical servers ip's so I could create the pod in more than one physical server.</p>

<p>I run:</p>

<pre><code>hack/local-up-cluster.sh
</code></pre>

<p>then (In another terminal):</p>

<pre><code>cluster/kubectl.sh config set-cluster local --server=http://127.0.0.1:8080 --insecure-skip-tls-verify=true
cluster/kubectl.sh config set-context local --cluster=local
cluster/kubectl.sh config use-context local
</code></pre>

<p>And: </p>

<pre><code>cluster/kubectl.sh create -f run-aii.yaml
</code></pre>

<p><strong>my run-aii.yaml:</strong></p>

<pre><code>apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: aii
spec:
  replicas: 1
  template:
    metadata:
      labels:
        run: aii
    spec:
      containers:
      - name: aii
        image: localhost:5000/dev/aii
        ports:
        - containerPort: 5144
        env:
        - name: KAFKA_IP
          value: kafka
        volumeMounts:
        - mountPath: /root/script
          name: scripts-data
          readOnly: true
        - mountPath: /home/aii/core
          name: core-aii
          readOnly: false
        - mountPath: /home/aii/genome
          name: genome-aii
          readOnly: true
        - mountPath: /home/aii/main
          name: main-aii
          readOnly: false
      - name: kafka
        image: localhost:5000/dev/kafkazoo
        volumeMounts:
        - mountPath: /root/script
          name: scripts-data
          readOnly: true
        - mountPath: /root/config
          name: config-data
          readOnly: true
      volumes:
      - name: scripts-data
        hostPath:
          path: /home/aii/general/infra/script
      - name: config-data
        hostPath:
          path: /home/aii/general/infra/config
      - name: core-aii
        hostPath:
          path: /home/aii/general/core
      - name: genome-aii
        hostPath:
          path: /home/aii/general/genome
      - name: main-aii
        hostPath:
          path: /home/aii/general/main
        - mountPath: /home/aii/main
          name: main-aii
          readOnly: false
      - name: kafka
        image: localhost:5000/dev/kafkazoo
        volumeMounts:
        - mountPath: /root/script
          name: scripts-data
          readOnly: true
        - mountPath: /root/config
          name: config-data
          readOnly: true
      volumes:
      - name: scripts-data
        hostPath:
          path: /home/aii/general/infra/script
      - name: config-data
        hostPath:
          path: /home/aii/general/infra/config
      - name: core-aii
        hostPath:
          path: /home/aii/general/core
      - name: genome-aii
        hostPath:
          path: /home/aii/general/genome
      - name: main-aii
        hostPath:
          path: /home/aii/general/main
</code></pre>

<p>Additional info:</p>

<pre><code>[aii@localhost kubernetes]$   cluster/kubectl.sh get pod
NAME                   READY     STATUS    RESTARTS   AGE
aii-3934754246-yilg3   2/2       Running   0          59s

[aii@localhost kubernetes]$   cluster/kubectl.sh describe pod aii-3934754246-yilg3
Name:           aii-3934754246-yilg3
Namespace:      default
Node:           127.0.0.1/127.0.0.1
Start Time:     Sun, 29 May 2016 16:58:20 +0300
Labels:         pod-template-hash=3934754246,run=aii
Status:         Running
IP:             172.17.0.4
Controllers:    ReplicaSet/aii-3934754246
Containers:
  aii:
    Container ID:       docker://71609cfd8e33c01a81a36770d12d884443a12b4c2969b95e3042d9dee4fb455b
    Image:              localhost:5000/dev/aii
    Image ID:           docker://sha256:7e70fbb724962b2f23c9439a1c00356deb551fd96ffd27a8afa6340fc903e735
    Port:               5144/TCP
    QoS Tier:
      memory:           BestEffort
      cpu:              BestEffort
    State:              Running
      Started:          Sun, 29 May 2016 16:58:23 +0300
    Ready:              True
    Restart Count:      0
    Environment Variables:
      KAFKA_IP: kafka
  kafka:
    Container ID:       docker://6eb891e5968cf1106b26a9f3f7db881683a8e15dd59b1858435715580c90656c
    Image:              localhost:5000/dev/kafkazoo
    Image ID:           docker://sha256:b78e60582cbc8d3c4946807baf59552d110c7802c8204157e6fba509b96bc11c
    Port:
    QoS Tier:
      cpu:              BestEffort
      memory:           BestEffort
    State:              Running
      Started:          Sun, 29 May 2016 16:58:24 +0300
    Ready:              True
    Restart Count:      0
    Environment Variables:
Conditions:
  Type          Status
  Ready         True
Volumes:
  scripts-data:
    Type:       HostPath (bare host directory volume)
    Path:       /home/aii/general/infra/script
  config-data:
    Type:       HostPath (bare host directory volume)
    Path:       /home/aii/general/infra/config
  core-aii:
    Type:       HostPath (bare host directory volume)
    Path:       /home/aii/general/core
  genome-aii:
    Type:       HostPath (bare host directory volume)
    Path:       /home/aii/general/genome
  main-aii:
    Type:       HostPath (bare host directory volume)
    Path:       /home/aii/general/main
  default-token-5z9rd:
    Type:       Secret (a volume populated by a Secret)
    SecretName: default-token-5z9rd
Events:
  FirstSeen     LastSeen        Count   From                    SubobjectPath           Type            Reason          Message
  ---------     --------        -----   ----                    -------------           --------        ------          -------
  1m            1m              1       {default-scheduler }                            Normal          Scheduled       Successfully assigned aii-3934754246-yilg3 to 127.0.0.1
  1m            1m              1       {kubelet 127.0.0.1}     spec.containers{aii}    Normal          Pulling         pulling image "localhost:5000/dev/aii"
  1m            1m              1       {kubelet 127.0.0.1}     spec.containers{aii}    Normal          Pulled          Successfully pulled image "localhost:5000/dev/aii"
  1m            1m              1       {kubelet 127.0.0.1}     spec.containers{aii}    Normal          Created         Created container with docker id 71609cfd8e33
  1m            1m              1       {kubelet 127.0.0.1}     spec.containers{aii}    Normal          Started         Started container with docker id 71609cfd8e33
  1m            1m              1       {kubelet 127.0.0.1}     spec.containers{kafka}  Normal          Pulling         pulling image "localhost:5000/dev/kafkazoo"
  1m            1m              1       {kubelet 127.0.0.1}     spec.containers{kafka}  Normal          Pulled          Successfully pulled image "localhost:5000/dev/kafkazoo"
  1m            1m              1       {kubelet 127.0.0.1}     spec.containers{kafka}  Normal          Created         Created container with docker id 6eb891e5968c
  1m            1m              1       {kubelet 127.0.0.1}     spec.containers{kafka}  Normal          Started         Started container with docker id 6eb891e5968c
</code></pre>

<p>Sounds like you want to setup a multi-node cluster, there are numerous ways to do that (<a href="http://kubernetes.io/docs/getting-started-guides/" rel="nofollow">http://kubernetes.io/docs/getting-started-guides/</a>). </p>

<p>If you want a local solution on your machine, the vagrant way or the docker way is pretty straight forward. </p>

<p>If looking for a cloud, then GCE is the next easiest (<a href="https://cloud.google.com/container-engine/" rel="nofollow">https://cloud.google.com/container-engine/</a>). </p>

<p>Once you have your multi-node cluster setup, then when you deploy your pod, it will be scheduled to a node in the cluster. </p>

<p>The only <em>gotcha</em> to be careful of given your manifest above, is you are using <code>HostPaths</code> for all your volume mounts. This is fine when you know what machine you are running the pod on, however, you should be abstracting yourself away from that. </p>

<p>To better solve you'll need to look into some persistent volumes that are not host specific. BUT for now, you can get it working. =)</p>
