4.4 KiB
| title | description | weight | skip_seealso | keywords | ||
|---|---|---|---|---|---|---|
| Azure | Instructions to setup an Azure cluster for Istio. | 6 | true |
|
Follow these instructions to prepare an Azure cluster for Istio.
You can deploy a Kubernetes cluster to Azure via AKS or ACS-Engine which fully supports Istio.
AKS
You can create an AKS cluster via the az cli or the Azure portal.
For the az cli option, complete az login authentication OR use cloud shell, then run the following commands below.
-
Determine the desired region name which supports AKS
{{< text bash >}} $ az provider list --query "[?namespace=='Microsoft.ContainerService'].resourceTypes[] | [?resourceType=='managedClusters'].locations[]" -o tsv {{< /text >}}
-
Verify the supported Kubernetes versions for the desired region
Replace
my locationusing the desired region value from the above step, and then execute:{{< text bash >}} $ az aks get-versions --location "my location" --query "orchestrators[].orchestratorVersion" {{< /text >}}
Ensure
1.10.5is listed or choose a different value greater than or equal to1.9.6. -
Create the resource group and deploy the AKS cluster
Replace
myResourceGroupandmyAKSClusterwith desired names,my locationusing the value from step 1,1.10.5if not supported in the region, and then execute:{{< text bash >}} $ az group create --name myResourceGroup --location "my location" $ az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 3 --kubernetes-version 1.10.5 --generate-ssh-keys {{< /text >}}
-
Get the AKS
kubeconfigcredentialsReplace
myResourceGroupandmyAKSClusterwith the names from the previous step and execute:{{< text bash >}} $ az aks get-credentials --resource-group myResourceGroup --name myAKSCluster {{< /text >}}
ACS-Engine
-
Follow the instructions to get and install the
acs-enginebinary. -
Download the
acs-engineAPI model definition that supports deploying Istio:{{< text bash >}} $ wget https://raw.githubusercontent.com/Azure/acs-engine/master/examples/service-mesh/istio.json {{< /text >}}
Note: It is possible to use other api model definitions which will work with Istio. The MutatingAdmissionWebhook and ValidatingAdmissionWebhook admission control flags and RBAC are enabled by default on 1.9 or later clusters. See acs-engine api model default values for further information.
-
Deploy your cluster using the
istio.jsontemplate. You can find references to the parameters in the official docs.Parameter Expected value subscription_idAzure Subscription Id dns_prefixCluster DNS Prefix locationCluster Location {{< text bash >}} $ acs-engine deploy --subscription-id <subscription_id>
--dns-prefix <dns_prefix> --location --auto-suffix
--api-model istio.json {{< /text >}}After a few minutes, you can find your cluster on your Azure subscription in a resource group called
<dns_prefix>-<id>. Assumingdns_prefixhas the valuemyclustername, a valid resource group with a unique cluster ID ismycluster-5adfba82. Theacs-enginegenerates yourkubeconfigfile in the_outputfolder. -
Use the
<dns_prefix>-<id>cluster ID, to copy yourkubeconfigto your machine from the_outputfolder:{{< text bash >}} $ cp _output/<dns_prefix>-/kubeconfig/kubeconfig..json
~/.kube/config {{< /text >}}For example:
{{< text bash >}} $ cp _output/mycluster-5adfba82/kubeconfig/kubeconfig.westus2.json
~/.kube/config {{< /text >}}