zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

2023-06-13 09:14:10 时间

一、    先决条件

 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。

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

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

四、    发布应用

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