2014-08-27 18:55:41 +00:00
|
|
|
## Getting started on Microsoft Azure
|
|
|
|
|
2014-11-18 22:23:03 +00:00
|
|
|
### Azure Prerequisites
|
2014-08-27 18:55:41 +00:00
|
|
|
|
|
|
|
1. You need an Azure account. Visit http://azure.microsoft.com/ to get started.
|
|
|
|
2. Install and configure the Azure cross-platform command-line interface. http://azure.microsoft.com/en-us/documentation/articles/xplat-cli/
|
|
|
|
3. Make sure you have a default account set in the Azure cli, using `azure account set`
|
|
|
|
|
2014-11-18 22:23:03 +00:00
|
|
|
### Prerequisites for your workstation
|
|
|
|
|
|
|
|
1. Be running a Linux or Mac OS X.
|
2014-11-21 00:40:35 +00:00
|
|
|
2. Get or build a [binary release](binary_release.md)
|
|
|
|
3. If you want to build your own release, you need to have [Docker
|
2014-11-18 22:23:03 +00:00
|
|
|
installed](https://docs.docker.com/installation/). On Mac OS X you can use
|
2015-01-11 17:46:41 +00:00
|
|
|
[boot2docker](http://boot2docker.io/).
|
2014-08-27 18:55:41 +00:00
|
|
|
|
|
|
|
### Setup
|
|
|
|
The cluster setup scripts can setup Kubernetes for multiple targets. First modify `cluster/kube-env.sh` to specify azure:
|
|
|
|
|
|
|
|
KUBERNETES_PROVIDER="azure"
|
|
|
|
|
2014-09-18 17:57:39 +00:00
|
|
|
Next, specify an existing virtual network in `cluster/azure/config-defualt.sh`:
|
2014-09-04 11:36:01 +00:00
|
|
|
|
|
|
|
AZ_VNET=<vnet name>
|
2014-09-18 17:57:39 +00:00
|
|
|
|
2014-09-04 11:36:01 +00:00
|
|
|
Now you're ready.
|
|
|
|
|
2014-08-27 18:55:41 +00:00
|
|
|
You can then use the `cluster/kube-*.sh` scripts to manage your azure cluster, start with:
|
|
|
|
|
|
|
|
cluster/kube-up.sh
|
|
|
|
|
2014-11-18 22:23:03 +00:00
|
|
|
The script above will start (by default) a single master VM along with 4 worker VMs. You
|
|
|
|
can tweak some of these parameters by editing `cluster/azure/config-default.sh`.
|
2014-08-27 18:55:41 +00:00
|
|
|
|
2014-11-18 22:23:03 +00:00
|
|
|
### Running a container (simple version)
|
2014-08-27 18:55:41 +00:00
|
|
|
|
2014-11-18 22:23:03 +00:00
|
|
|
The `cluster/kubecfg.sh` command below spins up two containers, running [Nginx](http://nginx.org/en/) and with port 80 mapped to 8080:
|
2014-08-27 18:55:41 +00:00
|
|
|
|
|
|
|
```
|
|
|
|
cd kubernetes
|
|
|
|
cluster/kubecfg.sh -p 8080:80 run dockerfile/nginx 2 myNginx
|
|
|
|
```
|
|
|
|
|
|
|
|
To stop the containers:
|
|
|
|
```
|
|
|
|
cluster/kubecfg.sh stop myNginx
|
|
|
|
```
|
|
|
|
|
|
|
|
To delete the containers:
|
|
|
|
```
|
|
|
|
cluster/kubecfg.sh rm myNginx
|
|
|
|
```
|
|
|
|
|
|
|
|
### Running a container (more complete version)
|
|
|
|
|
|
|
|
|
|
|
|
You can create a pod like this:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
cd kubernetes
|
2014-12-04 18:49:50 +00:00
|
|
|
cluster/kubectl.sh create -f api/examples/pod.json
|
2014-08-27 18:55:41 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Where pod.json contains something like:
|
|
|
|
|
|
|
|
```
|
|
|
|
{
|
|
|
|
"id": "php",
|
|
|
|
"kind": "Pod",
|
|
|
|
"apiVersion": "v1beta1",
|
|
|
|
"desiredState": {
|
|
|
|
"manifest": {
|
|
|
|
"version": "v1beta1",
|
|
|
|
"id": "php",
|
|
|
|
"containers": [{
|
|
|
|
"name": "nginx",
|
|
|
|
"image": "dockerfile/nginx",
|
|
|
|
"ports": [{
|
|
|
|
"containerPort": 80,
|
|
|
|
"hostPort": 8080
|
|
|
|
}],
|
|
|
|
"livenessProbe": {
|
|
|
|
"enabled": true,
|
|
|
|
"type": "http",
|
|
|
|
"initialDelaySeconds": 30,
|
|
|
|
"httpGet": {
|
|
|
|
"path": "/index.html",
|
|
|
|
"port": "8080"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"labels": {
|
|
|
|
"name": "foo"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
You can see your cluster's pods:
|
|
|
|
|
|
|
|
```
|
2014-12-04 18:49:50 +00:00
|
|
|
cluster/kubectl.sh get pods
|
2014-08-27 18:55:41 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
and delete the pod you just created:
|
|
|
|
|
|
|
|
```
|
2014-12-04 18:49:50 +00:00
|
|
|
cluster/kubectl.sh delete pods php
|
2014-08-27 18:55:41 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Look in `api/examples/` for more examples
|
|
|
|
|
|
|
|
### Tearing down the cluster
|
|
|
|
```
|
|
|
|
cluster/kube-down.sh
|
|
|
|
```
|