一、    先决条件

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

Azure DevOps Pipelines部署.Net Core 应用到Kubernetes的更多相关文章

  1. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(二.创建CI持续集成管道)

    前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.N ...

  2. 使用Azure DevOps Pipeline实现.Net Core程序的CD

    上一次我们讲了使用Azure DevOps Pipeline实现.Net Core程序的CI.这次我们来演示下如何使用Azure DevOps实现.Net Core程序的CD. 实现本次目标我们除了A ...

  3. 微软Azure DevOps自动化部署

    1.准备一个https://hub.docker.com账号,申请一个免费的镜像仓库(免费账户可以申请一个) 创建docker远程镜像库 2.新建一个mvc的项目 给这个项目加上Dockerfile文 ...

  4. 使用Azure DevOps Pipeline实现.Net Core程序的CI

    上次介绍了Azure Application Insights,实现了.net core程序的监控功能.这次让我们来看看Azure DevOps Pipeline功能.Azure DevOps Pip ...

  5. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(一 .简介与创建自己的代理池)

    前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 打算用三个篇幅来记录完整的全过程 觉得有帮助的朋友~可以左上 ...

  6. Azure DevOps Pipelines执行RobotFramework自动化代码

    一.Azure DevOps介绍 1.什么是 Azure DevOps? Azure DevOps其实是VSTS(Visual Studio Team Service)更名后的名字.而VSTS是TFS ...

  7. 部署Dotnet Core应用到Kubernetes(一)

    最近闲了点,写个大活:部署Dotnet应用到K8s.   写在前边的话 一直想完成这个主题.但这个主题实在太大了,各种拖延症的小宇宙不时爆发一下,结果就拖到了现在.   这个主题,会是一个系列.在这个 ...

  8. 部署Dotnet Core应用到Kubernetes(二)

    前一篇文章,概念性地介绍了K8s的一些基础组件,如Pod.部署和服务.这篇文章,我打算写写如何使用YAML清单定义和配置这些资源.   实际上,在K8s集群中创建对象有几种方式 - 命令,或声明.两种 ...

  9. 【Azure DevOps系列】使ASP.NET Core应用程序托管到Azure Web App Service

    使用Azure DevOps Project设置ASP.NET项目 我们需要先在Azure面板中创建一个Azure WebApp服务,此处步骤我将省略,然后点击部署中心如下图所示: 此处我选择的是Az ...

随机推荐

  1. 2537-springsecurity系列--关于session的管理2-session缓存和共享

    版本信息 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring ...

  2. 举重若轻流水行云,前端纯CSS3实现质感非凡的图片Logo鼠标悬停(hover)光泽一闪而过的光影特效

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_197 喜欢看电影的朋友肯定会注意到一个有趣的细节,就是电影出品方一定会在片头的Logo环节做一个小特效:暗影流动之间光泽一闪而过, ...

  3. java学习第二天面向对象.day07

    变量的生命周期 成员变量:存储在堆内存中,随着对象的销毁而销毁 局部变量:存储在栈内存中,随着所定义方法的调用结束而销毁 局部变量存储在方法中,每次调用方法都会在栈空间开辟一块内存空间--栈帧,方法调 ...

  4. Mybatis 插件使用及源码分析

    Mybatis 插件 Mybatis插件主要是通过JDK动态代理实现的,插件可以针对接口中的方法进行代理增强,在Mybatis中比较重要的接口如下: Executor :sql执行器,包含多个实现类, ...

  5. scratch制作彩虹猫病毒模拟器

    scratch制作彩虹猫病毒模拟器 hello,大家好. 编程慢慢更加接近生活,甚至小孩也开始学了,比如scratch编程,小编今天就带了一件作品(彩虹猫病毒模拟器) 我们先看一下效果| 做的还可以, ...

  6. 图床搭建|chrome插件|操作简单不要钱

    为什么需要一个图床 为了写博客 图床:专门用来存放图片,同时允许你把图片对外连接的网上空间. 用markdown格式写作,插入图片需要图片的url地址,然后博客的背景图也是要用url地址. 有段时间, ...

  7. 【java】学习路径20-Date、Calender日期与时间

    简单的说,Date和Calender基本上是差不多的. 在最开始的时候只有Date,没有Calender. 在jdk不断更新的时候,发现了Date有一点缺陷,于是推出了Calender. // Dat ...

  8. [开源精品] C#.NET im 聊天通讯架构设计 -- FreeIM 支持集群、职责分明、高性能

    FreeIM 是什么? FreeIM 使用 websocket 协议实现简易.高性能(单机支持5万+连接).集群即时通讯组件,支持点对点通讯.群聊通讯.上线下线事件消息等众多实用性功能. ImCore ...

  9. 04_Django-模板变量/标签/过滤器/继承-url反向解析

    04_Django-模板变量/标签/过滤器/继承-url反向解析 视频:https://www.bilibili.com/video/BV1vK4y1o7jH 博客:https://blog.csdn ...

  10. 如何实现Windows平台RTMP播放器/RTSP播放器播放窗口添加OSD文字叠加

    好多开发者在做Windows平台特别是单屏多画面显示时,希望像监控摄像机一样,可以在播放画面添加OSD台标,以实现字符叠加效果,大多开发者可很轻松的实现以上效果,针对此,本文以大牛直播SDK (Git ...