TailwindTraders后台应用使用了以下应用组件提供一套微服务架构的应用模型,运行在微软云Azure平台之上。
Azure DevOps中的构建流水线已经搭建完成,可以通过本组账号访问。
本项目的部署仍然需要手工完成,以下为部署脚本,请自行安装以下工具以便正常完成部署
以下为部署步骤
## 使用Azured订阅管理员账号登录
az login
## 设置当前订阅为默认订阅
az account set -s {subscription id}
## 创建Service Principle账号
az ad sp create-for-rbac
Retrying role assignment creation: 1/36
{
"appId": "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX",
"displayName": "azure-cli-2019-09-05-13-17-11",
"name": "http://azure-cli-2019-09-05-13-17-11",
"password": "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX",
"tenant": "XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX"
}
记录以上输出信息为 clientid/servicePrincipleID = appId ServicePrincipleKey = password
以下为建议的数据统一用户名密码,也可以自行指定 sqlServerAdministratorLogin = sqladmin sqlServerAdministratorLoginPassword = P2ssw0rd@123
## 获取k8s访问密钥
az aks get-credentials -g TailwindTradersBackend -n {aks-name}
## 测试是否可以访问k8s
kubectl get nodes
## 启用K8s仪表盘
kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard
## 测试k8s仪表盘工作正常
az aks browse -g TailwindTradersBackend -n {aks-name}
## 创建系统服务账号Tiller
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
## 初始化helm使用tiller服务账号
helm init --service-account tiller
## 检查Kube-system命名空间中已经成功部署了tiller服务端
kubectl get pods -n kube-system
## 获取ACR服务密钥
az acr credential show -n {acr-name} -g TailwindTradersBackend --output table
## 创建k8s密钥仓库对象
kubectl create secret docker-registry acr-auth --docker-server {acr-name}.azurecr.io --docker-username {acr-name} --docker-password {acr-password} --docker-email [email protected]
## 安装cert-manager服务
helm install --name cert-manager --namespace kube-system --version v0.4.1 stable/cert-manager
## 启动服务,并绑定证书
powershell .\Enable-Ssl.ps1 -sslSupport prod -aksName {aks-name} -resourceGroup TailwindTradersBackend
## 创建应用所使用的系统服务账号
kubectl create serviceaccount ttsa
## 使用从Backend-CI中下载的制品包完成部署,假设制品包被解压到D:\HelmScripts\目录
powershell .\Deploy-Images-Aks.ps1 -name "my-tt" -resourceGroup TailwindTradersBackend -aksName {aks-name} -acrName {acr-name} -tag prod -valuesFile "D:\HelmScripts\gvalue.yml" -tlsEnv prod
## 可选:此命名将删除所有部署,如果需要从新部署可以使用此命令清楚所有服务
FOR /f "tokens=*" %i IN ('helm list --short') DO helm del --purge %i
## 检查所有服务均已启动
kubectl get pods
kubectl get pod -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName --all-namespaces
## 所有商品图片将会打包在制品包中,假设制品包被解压到D:\HelmScripts\目录
powershell .\Deploy-Pictures-Azure.ps1 -resourceGroup TailwindTradersBackend -storageName {storage-account-name} -imageRootFolder "D:\HelmScripts"
https://[HTTP application routing domain]/webbff/v1 https://[HTTP application routing domain]/cart-api
如果需要更新应用,可以使用以下方式进行。因为所有应用数据均已经通过云平台PaaS服务进行持久化,所以k8s中的任何服务均可以随时安全的删除和更新。
执行步骤:
执行步骤:
Happy Coding ...