微软云 Azure 填过的坑

  1. azure 的 docker 容器中没有 /.dockerenv 文件。根据此文件判断是否是 docker 会有问题。
  2. azure 的 docker 容器,直接点 “Restart”,与点击 “Stop”、“Start” 是不一样的。直接点 "Restart",不会重新拉取镜像(docker 仓库中会有两行 GET /v2/azure-xxx/blobs/sha256:0a63065feb4fc4052e0b7cf82bb89c63cee4e250214f4438df6db54690130352 HTTP/1.1 之类的请求,应该是判断镜像是否有变化,如果没有变化则不会重新拉取)。而 "Stop/Start" 会重新拉取镜像。
  3. az container create 之后,如果容器一直卡在 Waiting 状态,可能是某个配置项有错误。通过 az container show --resource-group xxx-rg --name xxx-nginx-test 看下容器状态,如果有错误,输出中会有提示。
  4. az container create 如果指定的 --vnet 参数不正确,会自动创建 vnet。如果指定的 storage account 参数不正确,容器会卡在 Waiting 状态。需要使用 az container show 才能查看到错误信息。
  5. azure.cn 访问 docker hub 会有问题。需要换成国内镜像。azure.cn 也有自己的镜像库,例如 nginx: dockerhub.azk8s.cn/library/nginx。但是不全,很多镜像都没有。如果没有,可以在自己的镜像库放一个,共 azure cn 拉取。
  6. application gateway 的 设置、后端设置、请求超时 中,要把 请求超时(秒) 改大。默认 20 秒,websocket 会断掉(应用层30秒才会发一次心跳,因此长链接会被断掉)。可以改成 300 秒。

Application gateway 的坑

创建 Application Gateway 的时候,前端 public id,后端 virtual network,都需要设置角色,否则会报错,类似于:

The client with object id '15863479-f51e-xxx-xxx-7ebb37331539' does not have authorization to perform action 'Microsoft.Network/publicIPAddresses/join/action' over scope '/subscriptions/727f3ea5-xxxx-xxx-a872-00223b9cd125/resourceGroups/xxxx-rg-test/providers/Microsoft.Network/publicIPAddresses/xxxx-public-ip-test' or the scope is invalid. For details on the required permissions, please visit 'https://aka.ms/appgwroles'. If access was recently granted, please refresh your credentials。单击此处了解详细信息

设置方式:修改 public ip 和 virtual network 的 访问控制。

image.png

点击下面的 添加角色分配,选中角色“网络参与者”,选中当前用户,然后保存。保存后,点击上面的“查看我的访问权限”,里面应该会出现“网络参与者”。

默认自动缩放,数量为0。改成手动,数量为 1。

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容