我是一个非常新的创建CD管道,用于从Azure容器注册表(ACR)到葡萄映像并将其推送到Azure Kubernetes(AKS), 像CI管道一样,在第一部分中,我能够将.netcore api映像推送到ACR中,现在我的目标是
创建CD管道以获取该映像并将其部署到Kubernetes
尽管我已经在运行3个代理的Azure中创建了Kubernetes集群。我想使其非常简单,而不涉及任何deployment.yaml文件等, 谁能帮助我实现目标和
CD管道中的确切任务是什么?
非常感谢您的帮助
答案 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群集”任务。
这应该使您接近完成管道。
答案 1 :(得分:0)
如果没有任何deployment.yaml文件或类似文件,这是不可能的并没有任何意义。您可以使用:
kubectl create deployment %name% --image=your_image.azurecr.io
但是这不是很灵活,无法带您到任何地方。如果要使用kubernetes,则必须了解Deployments \ pods \ services \ etc。没办法解决