You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,18 @@
1
1
Multi-Cluster Application Dispatcher
2
2
==
3
3
4
-
The `multi-cluster-app-dispatcher` is a Kubernetes controller providing mechanisms for applications to manage batch jobs.
4
+
The `multi-cluster-app-dispatcher` is a Kubernetes controller providing mechanisms for applications to manage batch jobs in a single or mult-cluster environment.
5
5
6
-
`multi-cluster-app-dispatcher` is capable of (i) providing an abstraction for wrapping all resources of the job/application and treating them holistically, (ii) queuing job/application creation requests and applying different queuing policies, e.g., FIFO, Priority, (iii) dispatching the job to one of multiple clusters, where a queuing agent runs, using configurable dispatch policies, and (iv) auto-scaling pod sets, balancing job demands and cluster availability (future work).
6
+
The `multi-cluster-app-dispatcher`(`MCAD`) controller is capable of (i) providing an abstraction for wrapping all resources of the job/application and treating them holistically, (ii) queuing job/application creation requests and applying different queuing policies, e.g., First In First Out, Priority, (iii) dispatching the job to one of multiple clusters, where a`MCAD` queuing agent runs, using configurable dispatch policies, and (iv) auto-scaling pod sets, balancing job demands and cluster availability (future work).
7
7
8
8
9
9
## Build Information
10
10
11
-
Follow the build instructions [here](./doc/build/build.md) to build the Multi-Cluster-App-Dispatcher controller.
11
+
Follow the [build instructions here](./doc/build/build.md) to build the Multi-Cluster-App-Dispatcher controller.
12
12
13
13
## Deployment Information
14
14
15
-
Refer to [deployment](./doc/deploy/deployment.md) on how to deploy the `multi-cluster-app-dispatcher` as a controller in Kubernetes.
15
+
Refer to [deployment instructions here](./doc/deploy/deployment.md) on how to deploy the `multi-cluster-app-dispatcher` as a controller in Kubernetes.
This document will show how to build the `Multi-Cluster-App-Deployer` Kubernetes Controller that operates on an AppWrapper kubernetes custom resource definition. It is for [master](https://github.com/IBM/multi-cluster-app-dispatcher/tree/master) branch.
3
+
This document will show how to build the `Multi-Cluster-App-Deployer`(`MCAD`) Kubernetes Controller that operates on an `AppWrapper` kubernetes custom resource definition. Instructions are for the[master](https://github.com/IBM/multi-cluster-app-dispatcher/tree/master) branch.
4
4
5
5
## 1. Pre-condition
6
6
7
7
### Docker Environment
8
8
9
-
To build `Multi-Cluster-App-Deployer`, a running Docker env. must be available. Here is a document on [Getting Started with Docker](https://www.docker.com/get-started).
9
+
To build `Multi-Cluster-App-Deployer`, a running Docker environment must be available. Here is a document on [Getting Started with Docker](https://www.docker.com/get-started).
10
10
11
11
### Clone Multi-Cluster-App-Deployer Git Repo
12
12
@@ -20,22 +20,22 @@ Checking out files: 100% (####/####), done.
20
20
$
21
21
```
22
22
23
-
## 2. Building the Multi-Cluster-App-Deployer Controller
23
+
## 2. Building the Multi-Cluster-App-Deployer Controller
24
24
25
-
### Build the Executables
25
+
### Build the Executable
26
26
27
27
Run the build script `build.sh`:
28
28
```
29
29
$ cd multi-cluster-app-dispatcher/deployment/
30
30
31
-
$ ./build.sh
31
+
$ ./build.sh
32
32
...
33
33
+ cd ..
34
34
+ make generate-code
35
35
Compiling deepcopy-gen
36
36
Generating deepcopy
37
37
go build -o _output/bin/deepcopy-gen ./cmd/deepcopy-gen/
Copy file name to clipboardExpand all lines: doc/deploy/deployment.md
+15-12
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
# Deploying Multi-Cluster-App-Wrapper Controller
2
-
Follow the instructions below to deploy the __Multi-Cluster Application Wrapper__ (_MCAD_) controller in an existing Kubernetes cluster:
2
+
Follow the instructions below to deploy the __Multi-Cluster Application Dispatcher__ (_MCAD_) controller in an existing Kubernetes cluster:
3
3
4
4
## Pre-Reqs
5
5
### - Cluster running Kubernetes v1.10 or higher.
@@ -23,7 +23,7 @@ helm list
23
23
Follow the build instructions [here](../build/build.md) to build the `multi-cluster-app-dispatcher` controller docker image and push the image to a docker registry.
24
24
25
25
26
-
### Determine if the cluster has enough resources for installing the Helm chart for the Multi-Cluster-App-Dispatcher.
26
+
### Determine Resources for Installing the Helm Chart for the Multi-Cluster-App-Dispatcher.
27
27
28
28
The default memory resource demand for the `multi-cluster-app-dispatcher` controller is `2G`. If your cluster is a small installation such as MiniKube you will want to adjust the Helm installation resource requests accordingly.
29
29
@@ -74,7 +74,7 @@ Allocated resources:
74
74
Events: <none>
75
75
76
76
```
77
-
In the example above, there is only one node (`minikube`) in the cluster with the majority of the cluster memory used (`1,254Mi` used out of `1,936Mi` allocatable capacity) leaving less than `700Mi` available capacity for new pod deployments in the cluster. Since the default memory demand for the <em>Multi-Cluster Application Dispatcher</em> controller pod is `2G` the cluster has insufficient memory to deploy the controller. Instruction notes provided below show how to override the defaults according to the available capacity in your cluster.
77
+
In the example above, there is only one node (`minikube`) in the cluster with the majority of the cluster memory used (`1,254Mi` used out of `1,936Mi` allocatable capacity) leaving less than `700Mi` available capacity for new pod deployments in the cluster. Since the default memory demand for the <em>Multi-Cluster Application Dispatcher</em> controller pod is `2G` the cluster has __insufficient__ memory to deploy the controller. Instruction notes provided below show how to override the defaults according to the available capacity in your cluster.
@@ -98,7 +98,7 @@ cd multi-cluster-app-wrapper/deployment
98
98
Install the __Multi-Cluster-App-Dispatcher Controller__ using the commands below. The `--wait` parameter in the Helm command below is used to ensure all pods of the helm chart are running and will not return unless the default timeout expires (*typically 300 seconds*) or all the pods are in `Running` state.
99
99
100
100
101
-
Before submitting the command below you should ensure you have enough resources in your cluster to deploy the helm chart (*see Pre-Reqs section above*). If you do not have enough compute resources in your cluster you can adjust the resource request via the command line. See an example below.
101
+
Before submitting the command below you should ensure you have enough resources in your cluster to deploy the helm chart (*see __Pre-Reqs__ section above*). If you do not have enough compute resources in your cluster to run with the default allocation, you can adjust the resource request via the command line by using the optional parameters `--resources.*.*`. See an example[*Example 3*](#example-3) in section __3.a)__ below.
102
102
103
103
All Helm parameters are described in the table at the bottom of this section.
104
104
#### 3.a) Start the Multi-Cluster-App-Dispatcher Controller on All Target Deployment Clusters (*Agent Mode*).
@@ -107,18 +107,21 @@ __Agent Mode__: Install and set up the `multi-cluster-app-dispatcher` controller
107
107
helm install kube-arbitrator --namespace kube-system --wait --set image.repository=<image repository and name> --set image.tag=<image tag> --set imagePullSecret.name=<Name of image pull kubernetes secret> --set imagePullSecret.password=<REPLACE_WITH_REGISTRY_TOKEN_GENERATED_IN_PREREQs_STAGE1_REGISTRY.d)> --set localConfigName=<Local Kubernetes Config File for Current Cluster> --set volumes.hostPath=<Host_Path_location_of_local_Kubernetes_config_file>
108
108
```
109
109
110
-
For example (*Assuming the default for `image.repository`, `image.tag`*):
110
+
##### Example 1
111
+
*Assuming the default for `image.repository` and `image.tag` fields*:
*Assuming the MCAD controller image is already pulled onto the local target machine with the following image `image.repository=mcad-controller`, `image.tag=latest`*
#### 3.b) Start the Multi-Cluster-App-Dispatcher Controller on the Controller Cluster (*Dispatcher Mode*).
124
127
_Dispatcher Mode__: Install and set up the Multi-Cluster-App-Dispatcher Controler (_MCAD_) in *Dispatcher Mode* for the control cluster that will dispatch the _MCAD_ controller to an *Agent* cluster using Helm.
@@ -160,7 +163,7 @@ The following table lists the configurable parameters of the helm chart and thei
160
163
|`volumes.hostPath`| Full path on the host location where the `localConfigName` file is stored ||`/etc/kubernetes`|
161
164
162
165
163
-
### 5. Verify the installation.
166
+
### 4. Verify the installation.
164
167
List the Helm installation. The `STATUS` should be `DEPLOYED`.
165
168
166
169
NOTE: The `--wait` parameter in the helm installation command from *step #3* above ensures all resources are deployed and running if the `STATUS` indicates `DEPLOYED`. Installing the Helm Chart without the `--wait` parameter does not ensure all resources are successfully running but may still show a `Status` of `Deployed`.
@@ -180,7 +183,7 @@ kubectl get appwrappers
180
183
181
184
Since no `appwrapper` jobs have yet to be deployed into the current cluster you should receive a message indicating `No resources found` for `appwrappers` but your cluster now has _MCAD_ controller enabled. Use the [tutorial](../doc/usage/tutorial.md) to deploy an example `appwrapper` job.
182
185
183
-
### 6. Remove the Multi-Cluster-App-Dispatcher Controller from your cluster.
186
+
### 5. Remove the Multi-Cluster-App-Dispatcher Controller from your cluster.
184
187
185
188
List the deployed Helm charts and identify the name of the Multi-Cluster-App-Dispatcher Controller installation.
0 commit comments