4.4 KiB
title | description | weight | skip_seealso | aliases | keywords | ||||
---|---|---|---|---|---|---|---|---|---|
Azure | 为 Istio 设置一个 Azure 集群的指令。 | 9 | true |
|
|
跟随这些指令来为 Istio 准备一个 Azure 集群。
你可以通过完全支持 Istio 的 AKS 或者 AKS-Engine,部署一个 Kubernetes 集群到 Azure 上。
AKS
你可以通过 the az cli 或者 the Azure portal 创建一个 AKS 集群。
对于 az
cli 的选项,完成 az login
认证或者使用 cloud shell,然后运行下面的命令。
-
确定支持 AKS 的期望 region 名
{{< text bash >}} $ az provider list --query "[?namespace=='Microsoft.ContainerService'].resourceTypes[] | [?resourceType=='managedClusters'].locations[]" -o tsv {{< /text >}}
-
证实对于期望的 region 有支持的 Kubernetes 版本
使用从上面步骤中期望的 region 值替换
my location
,然后执行:{{< text bash >}} $ az aks get-versions --location "my location" --query "orchestrators[].orchestratorVersion" {{< /text >}}
确保最小值
1.10.5
被列出。 -
创建 resource group 和部署 AKS 集群
使用期望的名字替换
myResourceGroup
和myAKSCluster
,使用第一步中的名字替换mylocation
,替换1.10.5
如果其在 region 中不被支持,然后执行:{{< 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 >}}
-
取得 AKS
kubeconfig
证书使用从之前步骤中获得的名字替换
myResourceGroup
和myAKSCluster
并且执行:{{< text bash >}} $ az aks get-credentials --resource-group myResourceGroup --name myAKSCluster {{< /text >}}
AKS-Engine
-
跟随这些命令来获取和安装
aks-engine
的二进制版本。 -
下载支持部署 Istio 的
aks-engine
API 模型定义:{{< text bash >}} $ wget https://raw.githubusercontent.com/Azure/aks-engine/master/examples/service-mesh/istio.json {{< /text >}}
注意:可能使用其他可以和 Istio 一起工作的 api 模型定义。MutatingAdmissionWebhook 和 ValidatingAdmissionWebhook 准入控制标识和 RBAC 被默认打开。从 aks-engine api 模型默认值获取更多信息。
-
使用
istio.json
模板来部署你的集群。你能发现对于参数的参考在 官方文档中。参数 期望值 subscription_id
Azure Subscription Id dns_prefix
集群 DNS 前缀 location
集群位置 {{< text bash >}} $ aks-engine deploy --subscription-id <subscription_id>
--dns-prefix <dns_prefix> --location --auto-suffix
--api-model istio.json {{< /text >}}{{< tip >}} 几分钟之后,你能发现你的集群在你的 Azure subscription 上的 resource group 里被叫做
<dns_prefix>-<id>
。假设dns_prefix
有这样的值myclustername
,一个带着唯一集群 IDmycluster-5adfba82
的有效的 resource group。aks-engine
在_output
文件夹中生成你的kubeconfig
文件。 {{< /tip >}} -
使用
<dns_prefix>-<id>
集群 ID,为了从_output
文件夹复制你的kubeconfig
到你的机器:{{< text bash >}} $ cp _output/<dns_prefix>-/kubeconfig/kubeconfig..json
~/.kube/config {{< /text >}}比如:
{{< text bash >}} $ cp _output/mycluster-5adfba82/kubeconfig/kubeconfig.westus2.json
~/.kube/config {{< /text >}}