本文是对 《.NET Tutorial - Deploy a microservice to Azure》 的翻译和实践。入门级踩坑实践,k8s 大佬请回避,以免浪费您宝贵的时间。
介绍
本文的目的是:通过使用 DockerHub 和 Azure Kubernetes Service (AKS) 将之前 使用 .NET 和 Docker 构建的微服务 部署到微软 Azure 云上,来介绍微服务的基本部署过程。
推送到 Docker Hub
Docker Hub 是世界上最大的容器镜像库和社区。许多产品,包括微软 Azure,都可以基于 Docker Hub 中的镜像创建容器。
登录 Docker Hub
如果还没有 Docker Hub 账号,可以到 https://hub.docker.com/ 注册一个, 注册步骤可以参考 Docker 快速入门(三) 中的说明。
在命令提示符窗口,运行以下命令:
docker login
输入您的 Docker ID 和密码,如果输出如下错误:
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:xxxxxx
Password:
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
表示登录超时,可以尝试设置首选 DNS 服务器为 8.8.8.8
(Google 提供的免费 DNS),命令行修改 DNS 的命令为:
# 使用时请将 "WLAN" 改为实际的本地链接名称,需要以管理员身份运行命令提示符窗口
netsh interface ip set dnsservers "WLAN" static 8.8.8.8 primary
然后再次登录,若输出 Login Succeeded
,表示登录成功了。
将镜像推送到 Docker Hub
根据您的 Docker ID 重新标记(重命名)您的 Docker 镜像,并使用以下命令将其推送到 Docker Hub:
docker tag mymicroservice [YOUR DOCKER ID]/mymicroservice
docker push [YOUR DOCKER ID]/mymicroservice
等待推送完成,在 Docker Hub 中访问您的仓库 https://hub.docker.com/repositories,可以看到刚推送的镜像,如下图:
镜像完成推送后,如果前面有修改过 DNS,务必将 DNS 地址改回原来的动态获取,不然可能会影响网络访问速度:
# 使用时请将 "WLAN" 改为实际的本地连接名称,需要以管理员身份运行命令提示符窗口
# 改为动态获取 DNS 地址
netsh interface ip set dnsservers "WLAN" source=dhcp
# 或者将 DNS 改为 114.114.114.114(国内移动、电信和联通通用的DNS)
netsh interface ip set dnsservers "WLAN" static 114.114.114.114 primary
# 还可以添加第二个 DNS 地址
netsh interface ip add dnsservers "WLAN" 8.8.8.8 index=2
安装 Azure 工具
创建 Azure 账户
如果您是 Azure 云的新手,可以创建一个免费帐户。如果您有一个现有的帐户,可以跳过这一步。
创建账户的步骤,请查看 『