Skip to content

Latest commit

 

History

History
92 lines (89 loc) · 2.33 KB

File metadata and controls

92 lines (89 loc) · 2.33 KB

借助GitOps实现应用秒级自动发布和回滚

更新应用

$ kubectl set image deployment/hello-world-flask hello-world-flask=lyzhang1999/hello-world-flask:v1
deployment.apps/hello-world-flask image updated

通过本地Mainifest更新应用

$ kubectl apply -f new-hello-world-flask.yaml
deployment.apps/hello-world-flask configured

修改集群内的Mainifest更新应用

$ kubectl edit deployment hello-world-flask

从零搭建 GitOps 发布工作流

安装 FluxCD 并创建工作流

$ kubectl apply -f https://ghproxy.com/https://raw.githubusercontent.com/lyzhang1999/resource/main/fluxcd/fluxcd.yaml

创建目录

$ mkdir fluxcd-demo && cd fluxcd-demo

创建 deployment.yaml 文件

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: hello-world-flask
  name: hello-world-flask
spec:
  replicas: 2
  selector:
    matchLabels:
      app: hello-world-flask
  template:
    metadata:
      labels:
        app: hello-world-flask
    spec:
      containers:
      - image: lyzhang1999/hello-world-flask:latest
        name: hello-world-flask

为 FluxCD 创建仓库连接信息,将下面的内容保存为 fluxcd-repo.yaml:

apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: GitRepository
metadata:
  name: hello-world-flask
spec:
  interval: 5s
  ref:
    branch: main
  url: https://github.com/lyzhang1999/fluxcd-demo

使用 kubectl apply 将其 GitRepository 对象部署到集群内

$ kubectl apply -f fluxcd-repo.yaml
gitrepository.source.toolkit.fluxcd.io/hello-world-flask created

你可以使用 kubectl get gitrepository 来检查配置是否生效:

kubectl get gitrepository

我们还需要为 FluxCD 创建部署策略。将下面的内容保存为 fluxcd-kustomize.yaml

apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
  name: hello-world-flask
spec:
  interval: 5s
  path: ./
  prune: true
  sourceRef:
    kind: GitRepository
    name: hello-world-flask
  targetNamespace: default

我们再次使用 kubectl apply 将 Kustomization 对象部署到集群内:

$ kubectl apply -f fluxcd-kustomize.yaml
kustomization.kustomize.toolkit.fluxcd.io/hello-world-flask created

自动发布 更新git就可以触发重新部署,git回滚就能让项目回滚