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

时间:2022-10-15 17:04:57

一、    先决条件

  1.Azure Repos Git/Git和项目上传

    把本地的Net Core项目上传至Azure Repos Git/Git

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

  

  2.Docker Registry Service Connection/Azure subscription和Azure Container Registry以及Kubernetes Service Connection
    在Project setting配置好对应的Docker Connection和Kubernetes Connection

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

 

  3.Kubernetes deployment yaml文件

    本地配置好yaml文件,与项目一起上传至Git。

apiVersion: apps/v1  # 指定api版本
kind: Deployment  # 创建资源的类型   
metadata:  # 资源的元数据/属性 
  name: demo  # 资源的名称,在同一个namespace中必须唯一
  namespace: default # 部署在哪个命名空间中
spec: # 资源规范/规格字段
  replicas: 1 # 声明Pod副本数目
  revisionHistoryLimit: 3 # 保留历史版本
  selector: # 选择器
    matchLabels: # 匹配标签
      app: demo
  strategy: # 更新策略
    rollingUpdate: # 滚动更新,以下配置保证不停机更新
      maxSurge: 30% # 最大额外可以存在的副本数,可以为百分比,也可以为整数
      maxUnavailable: 30% # 示在更新过程中能够进入不可用状态的 Pod 的最大值,可以为百分比,也可以为整数
    type: RollingUpdate # 滚动更新策略
  template: # 部署模版
    metadata: # 资源的元数据/属性 
      labels: # 设定资源的标签
        app: demo
    spec: # 资源规范/规格字段
    nodeSelector: #节点筛选器。节点筛选器与指定调度器一起使用。
      agentpool: demonodepool #指定节点池
    schedulerName: default-scheduler #指定调度器
    nodeName: demonode1 #指定节点,如果指定节点池可去除当前行命令 containers: - name: demo # 容器的名字 image: demo:v1 # 镜像地址 imagePullPolicy: IfNotPresent # 每次Pod启动拉取镜像策略,三个选择 Always(总是拉取镜像)、Never(从不拉取镜像,仅使用本地镜像)、IfNotPresent(本地无镜像是拉取) resources: # 资源管理 limits: # 最大可使用资源限制 cpu: 300m # CPU,1核心 = 1000m memory: 500Mi # 内存,1G = 1024Mi requests: # 最低使用资源需求 cpu: 100m memory: 100Mi ports: - containerPort: 80 # 容器开发对外的端口

 

apiVersion: v1 # 指定api版本
kind: Service # 指定创建资源的类型
metadata: # 资源的元数据/属性
  name: demo # 资源的名字,可与上面的保持一直
  namespace: default # 部署在哪个命名空间
spec: # 资源规范/规格字段
  type: ClusterIP # ClusterIP (自动分配IP,仅在集群中访问) 、NodePort、 LoadBalance
  ports:
  - port: 80 # service 端口
  selector: # 选择器
    app: demo

 

  

二、    创建Pipelines

1.Other Git

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

 

2.Azure Repos Git/Git Hub

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

 

3.Docker container

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

4.Build an Image配置

5.Push an Image配置

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

 

 

三、    创建Releases Pipelines

  1.选择artifact为对应Pipelines

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

  

  2.Add Azure Repos Git 选择对应仓库及详细信息

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

  

  3.Stage选择Deploy to a Kubernetes cluster

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

  

  4.修改Job为Deploy to Kubernetes

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

 

  5.配置 deploy 

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

四、    发布应用

  1. Pipelines运行
  2. 选择对应Releases、点击Create release
  3. 选择对应Stage
  4. 选择deploy发布

生命不息、战斗不止!

欢迎大家扫描下方二维码,和我一起共同学习进步!

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