ASP.NET Core在Azure Kubernetes Service中的部署和管理
目录
ASP.NET Core在Azure Kubernetes Service中的部署和管理目标部署:掌握将aspnetcore程序成功发布到Azure Kubernetes Service(AKS)上 准备工作注册 Azure 账户官网 Azure 免费帐户仅适用于新用户,并且仅限每个客户一个免费帐户。 AKS文档AKS文档首页 Azure有两种管理方式 Azure Cli 和 Azure 门户。 进入Azure门户(控制台)门户(控制台) 搜索 安装 Azure Cli安装文档 主要使用Cli方式管理Azure。 安装 DockerDocker首页 进入正题Azure 相关概念 资源组创建资源组az group create --name myResourceGroup --location eastasia 删除资源组az group delete --name myResourceGroup --yes --no-wait 容器注册表 Azure Container Register (ACR)使用 ACR 管理 Docker 镜像。 创建 ACRaz acr create --resource-group boot-camp-2019 --name azurebootcamp2019 --sku Basic 登录 ACRaz acr login --name azurebootcamp2019 服务主体 service principle创建服务主体az ad sp create-for-rbac --skip-assignment 记下返回信息 appId 和 password,返回格式如下 { "appId": "d67dc2f9-d8d1-4a2c-a2ef-df15cc3710c1","displayName": "azure-cli-2019-04-21-11-46-32","name": "http://azure-cli-2019-04-21-11-46-32","password": "4488581b-d297-4488-ac4a-154400df8acd","tenant": "16cdead3-aec0-4dcb-acc4-d9c862f105d3" } 给服务主体配置 ACR 的pull权限查询 ACR 的 arcId az acr show --resource-group boot-camp-2019 --name azurebootcamp2019 --query "id" --output tsv 给服务主体分配 AcrPull 角色 # az role assignment create --assignee <appId> --scope <acrId> --role acrpull az role assignment create --assignee d67dc2f9-d8d1-4a2c-a2ef-df15cc3710c1 --scope /subscriptions/5c029b59-2c2e-4b8b-b76b-8afde2753164/resourceGroups/boot-camp-2019/providers/Microsoft.ContainerRegistry/registries/azurebootcamp2019 --role acrpull K8s服务集群 Azure Kubernetes Service(AKS)创建AKS集群# az aks create # --resource-group boot-camp-2019 # --name k8s-bootcamp2019 # --node-count 1 # --enable-addons monitoring # --service-principal <appId> # --client-secret <password> # --generate-ssh-keys az aks create --resource-group boot-camp-2019 --name k8s-bootcamp2019 --node-count 1 --enable-addons monitoring --service-principal d67dc2f9-d8d1-4a2c-a2ef-df15cc3710c1 --client-secret 4488581b-d297-4488-ac4a-154400df8acd --generate-ssh-keys 连接AKS集群使用 kubectl 连接AKS集群,如果没有安装 kubectl ,使用如下指令安装。 az aks install-cli 将 kubectl 配置为连接到 Kubernetes 群集,如下命令将会创建集群配置以及 Kubernetes Context az aks get-credentials --resource-group boot-camp-2019 --name k8s-bootcamp2019 验证到群集的连接 kubectl get nodes 删除Context kubectl config delete-cluster k8s-bootcamp2019 kubectl config delete-context k8s-bootcamp2019 kubectl文档 打包 Docker 镜像可以直接使用Docker Hub中的镜像。也可以将镜像上传到ACR(推荐)。 ASP.NET Core Samplegit clone https://github.com/dotnet/dotnet-docker cd dotnet-docker/samples/aspnetapp/ docker build -t aspnetapp . docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp 标记容器映像查询acrLoginServer,需先登录ACR az acr list --resource-group boot-camp-2019 --query "[].{acrLoginServer:loginServer}" --output table 标记镜像 # docker tag aspnetapp <acrLoginServer>/bootcamp2019web:v1 docker tag aspnetapp azurebootcamp2019.azurecr.io/bootcamp2019web:v1 docker images 推送 Docker Image 到 ACR# docker push <acrLoginServer>/bootcamp2019web:v1 docker push azurebootcamp2019.azurecr.io/bootcamp2019web:v1 查询 ACR 实例的映像列表 az acr repository list --name azurebootcamp2019 --output table 发布deployment配置文件apiVersion: apps/v1 kind: Deployment metadata: name: boot-camp-2019-web spec: replicas: 1 selector: matchLabels: app: boot-camp-2019-web template: metadata: labels: app: boot-camp-2019-web spec: containers: - name: boot-camp-2019-web image: azurebootcamp2019.azurecr.io/bootcamp2019web:v1 resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: boot-camp-2019-web spec: type: LoadBalancer ports: - port: 80 selector: app: boot-camp-2019-web 发布# kubectl apply -f <配置.yaml> kubectl apply -f ~/boot-camp-2019-web.yaml kubectl get service boot-camp-2019-web --watch 扩容kubectl get pods kubectl scale --replicas=3 deployment/boot-camp-2019-web kubectl get pods 更新kubectl set image deployment boot-camp-2019-web boot-camp-2019-web=azurebootcamp2019.azurecr.io/bootcamp2019web:v2 dashboardaz aks browse --resource-group boot-camp-2019 --name k8s-bootcamp2019 权限问题 kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – MVC 4 – 如何关闭默认的Error.vbhtml页面
- asp.net-web-api – 从数据存储实现动态OAuthBearerServerO
- asp.net – Cookie域优先?
- 将列表绑定到asp.net 3.5中的列表视图
- Asp.Net Identity – 登录后更新声明
- asp.net – 在IIS7上部署MVC3应用程序总是返回Http 500 –
- asp.net-mvc – 使用Viewbag绑定DropdownlistFor
- asp.net – 动态编译的文件在.NET中使用csc.exe吗?
- asp.net – 程序或函数期望未提供的参数
- asp.net-mvc-3 – IIS挂起在ASP.NET MVC 3应用程序中的特定
- Razor 页面简化了 ASP.NET MVC 应用程序
- asp.net-mvc – ASP.NET Core中基于活动的授权
- asp.net – 在Web api控制器中手动验证模型
- asp.net-mvc-3 – 无法解析属性:User.Full_Name
- 如何在ASP.NET和WCF之间对用户进行身份验证?
- asp.net-mvc – 十进制的最佳数据注释(18,2)
- asp.net-mvc-routing – 获取错误的路由并且Acti
- Asp.Net Zero通用打印实现
- asp.net-mvc-3 – 如何使用ModelMetadata单元测试
- asp.net – 是否可以强制WebControl呈现为而不是