Azure起步

安装SDK

微软Azure API安装通过pip实现

  • 在Python virtualenv环境中安装

注意:如果在Python virtualenv环境中安装azure-cli依然会需要写入/usr/lib64/python2.7/site-packages/secretstorage目录,所以需要一定权限,临时执行命令sudo chmod 777 /usr/lib64/python2.7/site-packages授予写入权限,然后就可以执行安装

pip install azure-cli

配置账号

在 Azure 中国区使用 Azure CLI 2.0 之前,请先运行 az cloud set -n AzureChinaCloud 来改变云环境。如果想切回国际版 Azure,请再次运行 az cloud set -n AzureCloud

在使用az之前,需要先设置账号:

az login

此时会提示使用浏览器打开 https://microsoft.com/devicelogin 进行设备授权。将终端中提示的设备字符串输入,按照提示进行设备授权。完成授权之后,终端会显示JSON信息提示授权信息完成

命令行工具

微软云命令行工具az

创建虚拟机的规格参数--size可以参考Linux Virtual Machines Pricing选择,但是该规格价格页面并没有包含az创建规格参数命名列表。实际可以随便传递一个--size参数,服务端会自动返回该region所有可用规格的名称列表。

测试

在微软云Azure的Linux虚拟机价格列表中,最低价格的规格是B1S,所以首先测试最小规格的启动流程

./pkb.py --cloud=Azure --machine_type=Standard_B1s --benchmarks=cluster_boot --zones=eastus

不是所有的区域都有可用规格,所以需要通过页面先检查可用区域是否可以创建该规格

免费账号升级到 Pay-As-You-Go 付费账号

注意

Azure对免费试用账号的虚拟机规格和数量有关联性限制,默认情况下资源管理vCPU quota是受到region level和SKU family level组合限制的(参考 Azure subscription and service limits, quotas, and constraints)。

  • 免费账号限制

免费试用账号在一个region中,只能申请4个core,超过范围会返回报错信息。例如B1s规格虚拟机(1个vCPU)在申请超过4个就会报错:

Got return code (1).
STDOUT:
STDERR: ERROR: Deployment failed. Correlation ID: 0438dbf7-ebcc-48fa-b3e5-84f88040a2d5. {
  "error": {
    "code": "OperationNotAllowed",
    "message": "Operation results in exceeding quota limits of Core. Maximum allowed: 4, Current in use: 4, Additional requested: 1. Please read more about quota increase at http://aka.ms/corequotaincrease."
  }
}

对于需要超过默认Azure Resource Manager限制需要填写工单请求Resource Manager vCPU quota increase requests

对于国内世纪互联运维的Azure云,1元试用也有4 vCPU限制

Your free trial subscription isn't eligible for a quota increase. To request a quota increase, first upgrade to a Pay-As-You-Go subscription. Learn more

  • 升级Pay-As-You-Go

在用户账号的Home > Cost Management + Billing中选择New subscription添加订购:

一种方式是添加订购,但是可能需要删除掉原有的免费订阅才可以

另外一种是直接升级当前的免费订阅到 Pay-As-You-Go

最初我尝试Add Subscription一个新的订购,但是发现创建虚拟机依然在原先的"免费试用"订购组,导致无法添加超过4个vCPU的实例。所以改成将"免费试用"订购组disabled,只Active新添加的Pay-As-You-Go。但是,订购创建依然落到"免费试用"订购组中,导致提示错误:

STDERR: ERROR: The subscription 'XXXXXXXX' is disabled and therefore marked as read only. You cannot perform any write actions on this subscription until it is re-enabled.

上述报错是因为Azure的Subscription有一个IsDefault属性,当前默认是第一个创建的"免费使用"订阅组:

# az account list --output table
A few accounts are skipped as they don't have 'Enabled' state. Use '--all' to display them.
Name           CloudName    SubscriptionId                        State
-------------  -----------  ------------------------------------  -------
Pay-As-You-Go  AzureCloud   XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX  Enabled

# az account list --output table --all
Name           CloudName    SubscriptionId                        State    IsDefault
-------------  -----------  ------------------------------------  -------  -----------
免费试用       AzureCloud   XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX  Warned   True
Pay-As-You-Go  AzureCloud   XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX  Enabled

修改方法使用如下命令:

# az account set --subscription "Pay-As-You-Go"

然后再次检查就可以看到默认改为Pay-As-You-Go

# az account list --output table --all
Name           CloudName    SubscriptionId                        State    IsDefault
-------------  -----------  ------------------------------------  -------  -----------
免费试用       AzureCloud   XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX  Warned
Pay-As-You-Go  AzureCloud   XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX  Enabled  True

参考 Manage subscriptions

Quota

在订购了Pay-As-You-Go之后,默认每个区域只有10个cpu core可以申请,所以会遇到大规格测试报错:

STDOUT:
STDERR: ERROR: Deployment failed. Correlation ID: b21f362c-35b5-4d69-92f0-5d715bf071ad. {
  "error": {
    "code": "OperationNotAllowed",
    "message": "Operation results in exceeding quota limits of Core. Maximum allowed: 10, Current in use: 10, Additional requested: 2. Please read more about quota increase at http://aka.ms/corequotaincrease."
  }
}

Resource Manager vCPU quota increase requests中提供了如何申请support增加Quota,其中在选择了对应的区域以及规格后,会自动显示当前你可用的Quota量。

Last updated