Azure CD管道将映像推送到AKS(Kubernetes管道)

时间:2020-01-16 11:06:21

标签: kubernetes azure-devops devops

我是一个非常新的创建CD管道,用于从Azure容器注册表(ACR)到葡萄映像并将其推送到Azure Kubernetes(AKS), 像CI管道一样,在第一部分中,我能够将.netcore api映像推送到ACR中,现在我的目标是

创建CD管道以获取该映像并将其部署到Kubernetes

尽管我已经在运行3个代理的Azure中创建了Kubernetes集群。我想使其非常简单,而不涉及任何deployment.yaml文件等, 谁能帮助我实现目标和

CD管道中的确切任务是什么?

非常感谢您的帮助

2 个答案:

答案 0 :(得分:1)

创建YAML文件对于能够重新部署和跟踪正在发生的事情至关重要。如果您不想创建YAML,则只能使用有限的选项。您可以使用kubectl任务从Azure DevOps执行命令性命令。

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

或者您可以将Kubernetes提供程序用于Terraform以避免直接创建YAML。

跟进:

因此,如果您熟悉Kubernetes命令命令,则可以使用--dry-run和--output选项将其用于生成YAML。像这样:

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

这将产生类似如下的内容,您可以使用它来引导创建清单文件。

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发布管道,并添加“部署到Kubernetes群集”任务。

enter image description here

这应该使您接近完成管道。

答案 1 :(得分:0)

如果没有任何deployment.yaml文件或类似文件,这是不可能的并没有任何意义。您可以使用:

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

但是这不是很灵活,无法带您到任何地方。如果要使用kubernetes,则必须了解Deployments \ pods \ services \ etc。没办法解决