Azure

跟随这些指令来为 Istio 准备一个 Azure 集群。

你可以通过完全支持 Istio 的 AKS 或者 AKS-Engine,部署一个 Kubernetes 集群到 Azure 上。

AKS

你可以通过 the az cli 或者 the Azure portal 创建一个 AKS 集群。

对于 az cli 的选项,完成 az login 认证或者使用 cloud shell,然后运行下面的命令。

  1. 确定支持 AKS 的期望 region 名

    $ az provider list --query "[?namespace=='Microsoft.ContainerService'].resourceTypes[] | [?resourceType=='managedClusters'].locations[]" -o tsv
    
  2. 证实对于期望的 region 有支持的 Kubernetes 版本

    使用从上面步骤中期望的 region 值替换 my location,然后执行:

    $ az aks get-versions --location "my location" --query "orchestrators[].orchestratorVersion"
    

    确保最小值 1.10.5 被列出。

  3. 创建 resource group 和部署 AKS 集群

    使用期望的名字替换 myResourceGroupmyAKSCluster,使用第一步中的名字替换 mylocation,替换 1.10.5 如果其在 region 中不被支持,然后执行:

    $ 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
    
  4. 取得 AKS kubeconfig 证书

    使用从之前步骤中获得的名字替换 myResourceGroupmyAKSCluster 并且执行:

    $ az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

AKS-Engine

  1. 跟随这些命令 来获取和安装 aks-engine 的二进制版本。

  2. 下载支持部署 Istio 的 aks-engine API 模型定义:

    $ wget https://raw.githubusercontent.com/Azure/aks-engine/master/examples/service-mesh/istio.json
    

    注意:可能使用其他可以和 Istio 一起工作的 api 模型定义。MutatingAdmissionWebhook 和 ValidatingAdmissionWebhook 准入控制标识和 RBAC 被默认打开。从 aks-engine api 模型默认值 获取更多信息。

  3. 使用 istio.json 模板来部署你的集群。你能发现对于参数的参考在 官方文档 中。

    参数期望值
    subscription_idAzure Subscription Id
    dns_prefix集群 DNS 前缀
    location集群位置
    $ aks-engine deploy --subscription-id <subscription_id> \
      --dns-prefix <dns_prefix> --location <location> --auto-suffix \
      --api-model istio.json
    
  4. 使用 <dns_prefix>-<id> 集群 ID,为了从 _output 文件夹复制你的 kubeconfig 到你的机器:

    $ cp _output/<dns_prefix>-<id>/kubeconfig/kubeconfig.<location>.json \
        ~/.kube/config
    

    比如:

    $ cp _output/mycluster-5adfba82/kubeconfig/kubeconfig.westus2.json \
      ~/.kube/config