Azure CD Pipeline to pu sh образ в AKS (трубопровод Kubernetes) - PullRequest
0 голосов
/ 16 января 2020

Я очень новый, создавая конвейер CD для создания образа из Azure Container Registry (ACR) и pu sh его в Azure Kubernetes (AKS). В первой части, как в CI конвейере, я могу sh мой api-образ .netcore в ACR, теперь моя цель состоит в том, чтобы

создать конвейер CD, чтобы собрать этот образ и развернуть его в Kubernetes

Хотя у меня есть создал кластер Kubernetes в Azure с запущенными 3 агентами. Я хочу сделать это очень просто, без участия файла deploy.yaml и т. Д. c. Может ли кто-нибудь помочь мне в достижении этой цели и

Каковы точные задачи в моем конвейере CD ?

Спасибо за помощь заранее

Ответы [ 2 ]

1 голос
/ 16 января 2020

Создание файла YAML имеет решающее значение для возможности повторного развертывания и отслеживания происходящего. Если вы не хотите создавать YAML, у вас ограниченные возможности. Вы можете выполнить императивную команду из Azure DevOps, используя задачу kubectl.

kubectl create deployment <name> --image=<image>.azureacr.io

Или вы можете использовать провайдера Kubernetes для Terraform, чтобы избежать создания YAML напрямую.

Follow up:

Так что, если вы знакомы с императивными командами Kubernetes, вы можете использовать их для генерации YAML, используя опции - dry -run и --output. Примерно так:

kubectl create deployment <name> --image=<image>.azureacr.io --dry-run --output yaml > example.yaml

Это приведет к созданию чего-то похожего на это, которое вы можете использовать для bootstrap создания файла манифеста.

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: example
  name: example
spec:
  replicas: 1
  selector:
    matchLabels:
      app: example
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: example
    spec:
      containers:
      - image: nginx
        name: nginx
        resources: {}
status: {}

Теперь вы можете взять этот репо или артефакт, который содержит этот манифест в ваш Azure DevOps Release Pipeline и добавляет задачу «Развертывание в Kubernetes Cluster».

enter image description here

Это должно вас довольно близко к завершению конвейера.

0 голосов
/ 16 января 2020

это невозможно не имеет смысла без какого-либо файла deploy.yaml или чего-то подобного. Вы можете использовать:

kubectl create deployment %name% --image=your_image.azurecr.io

, но это не очень гибко и никуда вас не приведет. Если вы хотите использовать kubernetes, вы должны понимать развертывания \ pods \ services \ et c. Нет способа обойти это

...