Azure DevOps Pipelines部署.Net Core 应用到Kubernetes

打印 上一主题 下一主题

主题 968|帖子 968|积分 2904

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、    先决条件

  1.Azure Repos Git/Git和项目上传
    把本地的Net Core项目上传至Azure Repos Git/Git
    
  
  2.Docker Registry Service Connection/Azure subscription和Azure Container Registry以及Kubernetes Service Connection
    在Project setting配置好对应的Docker Connection和Kubernetes Connection
    
 
  3.Kubernetes deployment yaml文件
    本地配置好yaml文件,与项目一起上传至Git。
  1. apiVersion: apps/v1  # 指定api版本
  2. kind: Deployment  # 创建资源的类型   
  3. metadata:  # 资源的元数据/属性
  4.   name: demo  # 资源的名称,在同一个namespace中必须唯一
  5.   namespace: default # 部署在哪个命名空间中
  6. spec: # 资源规范/规格字段
  7.   replicas: 1 # 声明Pod副本数目
  8.   revisionHistoryLimit: 3 # 保留历史版本
  9.   selector: # 选择器
  10.     matchLabels: # 匹配标签
  11.       app: demo
  12.   strategy: # 更新策略
  13.     rollingUpdate: # 滚动更新,以下配置保证不停机更新
  14.       maxSurge: 30% # 最大额外可以存在的副本数,可以为百分比,也可以为整数
  15.       maxUnavailable: 30% # 示在更新过程中能够进入不可用状态的 Pod 的最大值,可以为百分比,也可以为整数
  16.     type: RollingUpdate # 滚动更新策略
  17.   template: # 部署模版
  18.     metadata: # 资源的元数据/属性
  19.       labels: # 设定资源的标签
  20.         app: demo
  21.     spec: # 资源规范/规格字段<br>    nodeSelector: #节点筛选器。节点筛选器与指定调度器一起使用。<br>      agentpool: demonodepool #指定节点池<br>    schedulerName: default-scheduler #指定调度器<br>    nodeName: demonode1 #指定节点,如果指定节点池可去除当前行命令
  22.       containers:
  23.       - name: demo # 容器的名字   
  24.         image: demo:v1 # 镜像地址   
  25.         imagePullPolicy: IfNotPresent # 每次Pod启动拉取镜像策略,三个选择 Always(总是拉取镜像)、Never(从不拉取镜像,仅使用本地镜像)、IfNotPresent(本地无镜像是拉取)
  26.         resources: # 资源管理
  27.           limits: # 最大可使用资源限制
  28.             cpu: 300m # CPU,1核心 = 1000m
  29.             memory: 500Mi # 内存,1G = 1024Mi
  30.           requests:  # 最低使用资源需求
  31.             cpu: 100m
  32.             memory: 100Mi
  33.         ports:
  34.           - containerPort: 80 # 容器开发对外的端口<br>
复制代码
  1. [/code] 
  2. [code]apiVersion: v1 # 指定api版本
  3. kind: Service # 指定创建资源的类型
  4. metadata: # 资源的元数据/属性
  5.   name: demo # 资源的名字,可与上面的保持一直
  6.   namespace: default # 部署在哪个命名空间
  7. spec: # 资源规范/规格字段
  8.   type: ClusterIP # ClusterIP (自动分配IP,仅在集群中访问) 、NodePort、 LoadBalance
  9.   ports:
  10.   - port: 80 # service 端口
  11.   selector: # 选择器
  12.     app: demo
复制代码
 
  
二、    创建Pipelines

1.Other Git
    
 
2.Azure Repos Git/Git Hub
    
 
3.Docker container
    
4.Build an Image配置
5.Push an Image配置
    
 
 
三、    创建Releases Pipelines

  1.选择artifact为对应Pipelines
      
  
  2.Add Azure Repos Git 选择对应仓库及详细信息
      
  
  3.Stage选择Deploy to a Kubernetes cluster
      
  
  4.修改Job为Deploy to Kubernetes
      
 
  5.配置 deploy 
         
四、    发布应用


  • Pipelines运行
  • 选择对应Releases、点击Create release
  • 选择对应Stage
  • 选择deploy发布
生命不息、战斗不止!
欢迎大家扫描下方二维码,和我一起共同学习进步!
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表