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


     


    一、    先决条件

      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发布

    生命不息、战斗不止!

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

      

  • 相关阅读:
    125. 验证回文串 【简单题】
    微服务系列之授权认证(二) identity server 4
    vulhub redis-4-unacc
    【Pytest实战】Pytest+Allure+Jenkins自动化测试框架搭建
    一文带你实现从PDF到Word文件的相互转换
    智慧机场航线监测系统:提升航空运输安全与效率的新一步
    数据库最基础命令的大集合,四类分别有DDL、DCL、DQL、DML,让我给你解释一下吧
    微服务架构(持续更新)
    数据分析:微生物组差异丰度方法汇总
    LeetCode每日两题01:移动零 (均1200道)方法:双指针
  • 原文地址:https://www.cnblogs.com/hulizhong/p/16794317.html