Kubernetes 如何在将新映像推送到docker注册表时自动将其部署到k8s群集?
我已经将dockerhub配置为在GitHub中出现新标签时,使用标签Kubernetes 如何在将新映像推送到docker注册表时自动将其部署到k8s群集?,kubernetes,dockerhub,continuous-delivery,Kubernetes,Dockerhub,Continuous Delivery,我已经将dockerhub配置为在GitHub中出现新标签时,使用标签latest和dev-构建一个新映像。我不知道如何配置Tekton或任何其他云本机工具,以便在注册中心提供新映像时自动部署它们 以下是我的k8s配置: apiVersion: v1 kind: List items: - apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-app-ingress spec:
latest
和dev-
构建一个新映像。我不知道如何配置Tekton或任何其他云本机工具,以便在注册中心提供新映像时自动部署它们
以下是我的k8s配置:
apiVersion: v1
kind: List
items:
- apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-ingress
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app-service
port:
number: 80
- apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
ports:
- port: 80
targetPort: 8000
selector:
app: my-app
type: LoadBalancer
- apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-local-deployment
labels:
app: my-app
type: web
spec:
replicas: 2
minReadySeconds: 15
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25%
maxSurge: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
imagePullSecrets:
- name: regcred
containers:
- name: backend
image: zuber93/my-app:dev-latest
imagePullPolicy: IfNotPresent
envFrom:
- secretRef:
name: my-app-local-secret
ports:
- containerPort: 8000
readinessProbe:
httpGet:
path: /flvby
port: 8000
initialDelaySeconds: 10
periodSeconds: 5
- name: celery
image: zuber93/my-app:dev-latest
imagePullPolicy: IfNotPresent
workingDir: /code
command: [ "/code/run/celery.sh" ]
envFrom:
- secretRef:
name: my-app-local-secret
- name: redis
image: redis:latest
imagePullPolicy: IfNotPresent
简言之,答案是:
或者使用触发器设置从dockerhub()到tekton的webhook
或者(取决于您的安全性,以及您的群集是否可以从www访问)
在新图像检测时轮询dockerhub并触发tekton。
(在k8s中,这可以通过许多不同的方式完成,如简单即时服务、定时cronjob等)
所以,你可以选择推或拉
我会问“为什么不直接从你的git回购中触发?”最后,我探讨了一下。它可以处理新映像的出现并将它们部署到集群中。谢谢您的回答。我不想从git repo触发,因为我在任何情况下都会使用docker hub来存储我的图像,它可以自行触发git repo,因此我只需要配置这些图像自动部署。如果您想要这样的解决方案,我建议使用ArgoCD,它在定制方面更成熟、更灵活,更多的使用和令人敬畏的用户界面。我是它的忠实粉丝。