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
四、 发布应用
- Pipelines运行
- 选择对应Releases、点击Create release
- 选择对应Stage
- 选择deploy发布
相关文章
- Kubernetes-Rbac
- 有关于Kubernetes中影响Pod调度的问题
- 【K8S专栏】什么是Kubernetes
- Kubernetes 集群高可用
- Kubernetes集群配置APIServer公网访问
- Kubernetes-Web-UI-Dashboard仪表盘安装使用
- Kubernetes核心技术剖析及在DevOps落地实践
- Kubernetes零宕机滚动更新
- Kubernetes 1.26 正式发布
- Kubernetes 领进门 | 安装 longhorn 持久存储
- Kubernetes 领进门 | 安装 kubernetes-dashboard 可视化面板
- Kubernetes 领进门 | 使用 k3s 快速部署 kubernetes 集群
- K8S 生态周报| Kubernetes v1.25 将添加 user namespaces 的支持
- Kubernetes 运维遇到的问题记录(4)
- Kubernetes v1.26 新特性一览
- kubernetes集群交付一套ELK Stack日志分析
- Kubernetes运维之容器编排Deployment更新机制
- 每周开源点评:Kubernetes 傻瓜指南、低代码开发人员和其他行业趋势