mirror of https://github.com/knative/docs.git
Add AKS installation walkthrough (#210)
* Add install on AKS doc This PR adds a walkthrough providing instructions on how to install knative on Azure Kubernetes Service. It also adds a little more wording to the opening of README.md. Closes: #208 * Formatting cleanup * Small cleanup * Added missed CLI docs * Cleanup aks get credentials text * Wrap az aks line
This commit is contained in:
parent
f24d39a0ee
commit
bfc05e671f
|
@ -0,0 +1,188 @@
|
|||
# Knative Install on Azure Kubernetes Service (AKS)
|
||||
|
||||
This guide walks you through the installation of the latest version of
|
||||
Knative using pre-built images.
|
||||
|
||||
You can find [guides for other platforms here](README.md).
|
||||
|
||||
## Before you begin
|
||||
|
||||
Knative requires a Kubernetes cluster v1.10 or newer. `kubectl` v1.10 is also
|
||||
required. This guide walks you through creating a cluster with the correct
|
||||
specifications for Knative on Azure Kubernetes Service (AKS).
|
||||
|
||||
This guide assumes you are using bash in a Mac or Linux environment; some
|
||||
commands will need to be adjusted for use in a Windows environment.
|
||||
|
||||
### Installing the Azure CLI
|
||||
|
||||
1. If you already have `azure cli` version `2.0.41` or later installed, you can skip to the next section and install `kubectl`
|
||||
|
||||
Install `az` by following the instructions for your operating system.
|
||||
See the [full installation instructions](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest) if yours isn't listed below. You will need az cli version 2.0.37 or greater.
|
||||
|
||||
#### MacOS
|
||||
|
||||
```console
|
||||
brew install azure-cli
|
||||
```
|
||||
|
||||
#### Ubuntu 64-bit
|
||||
|
||||
1. Add the azure-cli repo to your sources:
|
||||
```console
|
||||
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ wheezy main" | \
|
||||
sudo tee /etc/apt/sources.list.d/azure-cli.list
|
||||
```
|
||||
1. Run the following commands to install the Azure CLI and its dependencies:
|
||||
```console
|
||||
sudo apt-key adv --keyserver packages.microsoft.com --recv-keys 52E16F86FEE04B979B07E28DB02C46DF417A0893
|
||||
sudo apt-get install apt-transport-https
|
||||
sudo apt-get update && sudo apt-get install azure-cli
|
||||
```
|
||||
|
||||
### Installing kubectl
|
||||
|
||||
1. If you already have `kubectl`, run `kubectl version` to check your client version. If you have `kubectl` v1.10 installed, you can skip to the next section and create an AKS cluster
|
||||
|
||||
```bash
|
||||
az aks install-cli
|
||||
```
|
||||
|
||||
## Cluster Setup
|
||||
|
||||
Now that we have all the tools, we need a Kubernetes cluster to install Knative.
|
||||
|
||||
### Configure your Azure account
|
||||
|
||||
First let's identify your Azure subscription and save it for use later.
|
||||
|
||||
1. Run `az login` and follow the instructions in the command output to authorize `az` to use your account
|
||||
1. List your Azure subscriptions:
|
||||
```bash
|
||||
az account list -o table
|
||||
```
|
||||
### Create a Resource Group for AKS
|
||||
|
||||
To simplify the command lines for this walkthrough, we need to define a few
|
||||
environment variables. First determine which region you'd like to run AKS in, along with the resource group you'd like to use.
|
||||
|
||||
1. Set `RESOURCE_GROUP` and `LOCATION` variables:
|
||||
```bash
|
||||
export LOCATION=east-us
|
||||
export RESOURCE_GROUP=knative-group
|
||||
export CLUSTER_NAME=knative-cluster
|
||||
```
|
||||
|
||||
2. Create a resource group with the az cli using the following command if you are using a new resource group.
|
||||
```bash
|
||||
az group create --name $RESOURCE_GROUP --location $LOCATION
|
||||
```
|
||||
|
||||
### Create a Kubernetes cluster using AKS
|
||||
|
||||
Next we will create a managed Kubernetes cluster using AKS. To make sure the cluster is large enough to host all the Knative and Istio components, the recommended configuration for a cluster is:
|
||||
|
||||
* Kubernetes version 1.10 or later
|
||||
* Three or more nodes
|
||||
* Standard_DS3_v2 nodes
|
||||
* RBAC enabled
|
||||
|
||||
1. Enable AKS in your subscription, use the following command with the az cli:
|
||||
```bash
|
||||
az provider register -n Microsoft.ContainerService
|
||||
```
|
||||
You should also ensure that the `Microsoft.Compute` and `Microsoft.Network` providers are registered in your subscription. If you need to enable them:
|
||||
```bash
|
||||
az provider register -n Microsoft.Compute
|
||||
az provider register -n Microsoft.Network
|
||||
```
|
||||
1. Create the AKS cluster!
|
||||
```bash
|
||||
az aks create --resource-group $RESOURCE_GROUP \
|
||||
--name $CLUSTER_NAME \
|
||||
--generate-ssh-keys \
|
||||
--kubernetes-version 1.10.5 \
|
||||
--enable-rbac \
|
||||
--node-vm-size Standard_DS3_v2
|
||||
```
|
||||
|
||||
1. Configure kubectl to use the new cluster.
|
||||
```bash
|
||||
az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --admin
|
||||
```
|
||||
|
||||
1. Verify your cluster is up and running
|
||||
```bash
|
||||
kubectl get nodes
|
||||
```
|
||||
|
||||
## Installing Istio
|
||||
|
||||
Knative depends on Istio.
|
||||
|
||||
1. Install Istio:
|
||||
```bash
|
||||
kubectl apply -f https://storage.googleapis.com/knative-releases/latest/istio.yaml
|
||||
```
|
||||
1. Label the default namespace with `istio-injection=enabled`:
|
||||
```bash
|
||||
kubectl label namespace default istio-injection=enabled
|
||||
```
|
||||
|
||||
1. Monitor the Istio components until all of the components show a `STATUS` of
|
||||
`Running` or `Completed`:
|
||||
```bash
|
||||
kubectl get pods -n istio-system
|
||||
```
|
||||
|
||||
It will take a few minutes for all the components to be up and running; you can
|
||||
rerun the command to see the current status.
|
||||
|
||||
> Note: Instead of rerunning the command, you can add `--watch` to the above
|
||||
command to view the component's status updates in real time. Use CTRL + C to exit watch mode.
|
||||
|
||||
## Installing Knative Serving
|
||||
|
||||
1. Next, we will install [Knative Serving](https://github.com/knative/serving)
|
||||
and its dependencies:
|
||||
```bash
|
||||
kubectl apply -f https://storage.googleapis.com/knative-releases/latest/release.yaml
|
||||
```
|
||||
1. Monitor the Knative components, until all of the components show a `STATUS` of
|
||||
`Running`:
|
||||
```bash
|
||||
kubectl get pods -n knative-serving
|
||||
```
|
||||
|
||||
Just as with the Istio components, it will take a few seconds for the Knative
|
||||
components to be up and running; you can rerun the command to see the current status.
|
||||
|
||||
> Note: Instead of rerunning the command, you can add `--watch` to the above
|
||||
command to view the component's status updates in real time. Use CTRL + C to exit watch mode.
|
||||
|
||||
You are now ready to deploy an app to your new Knative cluster.
|
||||
|
||||
## Deploying an app
|
||||
|
||||
Now that your cluster has Knative installed, you're ready to deploy an app.
|
||||
|
||||
You have two options for deploying your first app:
|
||||
|
||||
* You can follow the step-by-step
|
||||
[Getting Started with Knative App Deployment](getting-started-knative-app.md)
|
||||
guide.
|
||||
|
||||
* You can view the available [sample apps](../serving/samples/README.md) and
|
||||
deploy one of your choosing.
|
||||
|
||||
## Cleaning up
|
||||
|
||||
Running a cluster costs money, so you might want to delete the cluster when you're done if
|
||||
you're not using it. Deleting the cluster will also remove Knative, Istio,
|
||||
and any apps you've deployed.
|
||||
|
||||
To delete the cluster, enter the following command:
|
||||
```bash
|
||||
az aks delete --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --yes --no-wait
|
||||
```
|
|
@ -9,7 +9,7 @@ sure which Kubernetes platform is right for you, see
|
|||
[Picking the Right Solution](https://kubernetes.io/docs/setup/pick-right-solution/).
|
||||
|
||||
We provide information for installing Knative on
|
||||
[Google Kubernetes Engine](https://cloud.google.com/kubernetes-engine/docs/) and
|
||||
[Google Kubernetes Engine](https://cloud.google.com/kubernetes-engine/docs/), [IBM Cloud Kubernetes Service](https://www.ibm.com/cloud/container-service), [Azure Kubernetes Service](https://docs.microsoft.com/en-us/azure/aks/) and
|
||||
[Minikube](https://kubernetes.io/docs/setup/minikube/) clusters.
|
||||
|
||||
## Installing Knative
|
||||
|
@ -20,6 +20,7 @@ Knative components on the following platforms:
|
|||
* [Knative Install on Gardener](Knative-with-Gardener.md)
|
||||
* [Knative Install on Google Kubernetes Engine](Knative-with-GKE.md)
|
||||
* [Knative Install on IBM Cloud Kubernetes Service](Knative-with-IKS.md)
|
||||
* [Knative Install on Azure Kubernetes Service](Knative-with-AKS.md)
|
||||
* [Knative Install on Minikube](Knative-with-Minikube.md)
|
||||
|
||||
## Deploying an app
|
||||
|
|
Loading…
Reference in New Issue