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

2022-10-15 18:01:23

一、    先決條件

  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釋出

生命不息、戰鬥不止!

歡迎大家掃描下方二維條碼,和我一起共同學習進步!