เบกเบทเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบปเบเบเบฐเบเบฒเบเปเบฝเบงเบเบฑเบเบซเบผเบฑเบเบเบฒเบเปเบฅเบฐเปเบเบเบเปเบฒเบฅเบญเบเบเบญเบ GitOps, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบเบปเบงเปเบเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบทเบเบเบฐเบเบดเบเบฑเบเบขเบนเปเปเบเปเบงเบเบต OpenShift. เบกเบตเบเบนเปเบกเบทเปเบเบเปเบเปเบเบญเบเบเปเบฝเบงเบเบฑเบเบซเบปเบงเบเปเปเบเบตเป
เบชเบฐเบซเบผเบธเบเปเบฅเปเบง, GitOps เปเบกเปเบเบเบธเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบฎเปเบญเบเบเปเบเบถเบ Git เปเบเบทเปเบญเบเบฑเบเบเบฒเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ. Git repository เปเบ GitOps เบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบฑเบเปเบซเบผเปเบเบเบฝเบงเบเบญเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบญเบเบฅเบฐเบเบปเบ, เปเบฅเบฐเบเบฒเบเบเปเบฝเบเปเบเบเปเบเปเบเปเปเบเบฑเบเบฅเบฑเบเบเบตเปเปเบกเปเบเบชเบฒเบกเบฒเบเบเบดเบเบเบฒเบกเปเบเปเบขเปเบฒเบเปเบเบฑเบกเบเบตเปเปเบฅเบฐเบชเบฒเบกเบฒเบเบเบงเบเบชเบญเบเปเบเป.
เปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบเบเบฒเบเบเบดเบเบเบฒเบกเบเบฒเบเบเปเบฝเบเปเบเบเปเบ GitOps เปเบกเปเบเบเปเปเปเบซเบกเป; เบงเบดเบเบตเบเบฒเบเบเบตเปเปเบเปเบเบทเบเบเปเบฒเปเบเปเบกเบฒเบเบปเบเบเบฒเบเปเบเบทเบญเบเบเบปเปเบงเปเบฅเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ. GitOps เบเบฝเบเปเบเปเบเบฐเบเบดเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบ (เบเบฒเบเบเบปเบเบเบงเบเบเบทเบ, เบเบถเบเบเปเบฒเบฎเปเบญเบเบเป, tags, เปเบฅเบฐเบญเบทเปเบเป) เปเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเปเบฅเบฐเบเบฒเบเบเบธเปเบกเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฅเบฐเปเบซเปเบเบปเบเบเบฐเปเบซเบเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบเบฑเบเบเบฒเบเบเบธเปเบกเบเบญเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ.
เบเปเปเบกเบตเบเปเบฒเบเบดเบเบฒเบกเบเบฒเบเบงเบดเบเบฒเบเบฒเบเบซเบผเบทเบเบธเบเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเปเบเปเบฎเบฑเบเบญเบฐเบเบธเบกเบฑเบเบชเปเบฒเบฅเบฑเบ GitOps, เบเบฝเบเปเบเปเบเบธเบเบเบญเบเบซเบผเบฑเบเบเบฒเบเบเบตเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบทเบเบชเปเบฒเบเบเบถเปเบ:
- เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบฒเบเบเบฐเบเบฒเบเบเบญเบเบฅเบฐเบเบปเบเบเบทเบเปเบเบฑเบเปเบงเปเปเบ Git repository (configs, เบเบฒเบเบเบดเบเบเบฒเบก, เปเบฅเบฐเบญเบทเปเบเป).
- เบเบฒเบเบเปเบฝเบเปเบเบเบเบญเบเบฅเบฑเบเปเบกเปเบเปเบฎเบฑเบเปเบเบเบเปเบฒเบเบเบฒเบเบฎเปเบญเบเบเปเบเบถเบ.
- เบชเบฐเบเบฒเบเบฐเบเบญเบเบฅเบฐเบเบปเบเบเบฒเบเปเบฅเปเบเปเบกเปเบเปเบเปเบเปเบฒเปเบญเบปเบฒเปเบเบปเปเบฒเปเบเปเบเบชเบญเบเบเปเบญเบเบเบฑเบเบเปเปเบกเบนเบเปเบ repository เปเบเบเปเบเป Git push requests.
เบซเบผเบฑเบเบเบฒเบ GitOps
- เบเปเบฒเบเบดเบเบฒเบกเบเบญเบเบฅเบฐเบเบปเบเบเบทเบเบญเบฐเบเบดเบเบฒเบเปเบเบฑเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบ
เบเบฒเบเบเบฑเปเบเบเปเบฒเบฅเบฐเบเบปเบเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบฑเบเบฅเบฐเบซเบฑเบเปเบเบทเปเบญเปเบซเปเบกเบฑเบเบชเบฒเบกเบฒเบเบเบทเบเปเบเบฑเบเปเบงเปเปเบฅเบฐเบชเบฐเบเบฑเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ Git, เปเบเบดเปเบเปเบเปเปเบเบฑเบเปเบซเบผเปเบเบเบฝเบงเบเบญเบเบเบงเบฒเบกเบเบดเบ. เบงเบดเบเบตเบเบฒเบเบเบตเปเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเปเบฒเบเบเปเปเบเบฒเบ rollout เปเบฅเบฐ rollback เบเบฒเบเบเปเบฝเบเปเบเบเปเบเบฅเบฐเบเบปเบ.
- เบฅเบฑเบเบเบตเปเบเปเบญเบเบเบฒเบเปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบฅเบฐเบเบปเบเบเบทเบเบเบฑเปเบเปเบฅเบฐเบชเบฐเบเบฑเบเบขเบนเปเปเบ Git
เปเบเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเปเบฅเบฐเบชเบฐเบเบฑเบเบเบฒเบชเบฒเบเบญเบเบฅเบฐเบเบปเบเบเบตเปเบเปเบญเบเบเบฒเบเปเบ Git, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบกเปเบงเบเบญเบญเบเปเบฅเบฐเบกเปเบงเบเบเบทเบเบเบฒเบเบเปเบฝเบเปเบเบเบฅเบฐเบเบปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบ. เบเบงเบเปเบฎเบปเบฒเบเบฑเบเบชเบฒเบกเบฒเบเปเบเปเบเบปเบเปเบเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบ Git เปเบเบทเปเบญเบเบงเบเบเบธเบกเบเบฒเบเปเบเบฑเบเปเบเบปเปเบฒเบเบญเบเบฅเบฐเบซเบฑเบ เปเบฅเบฐเบเบงเบเบชเบญเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบเบเบญเบเบกเบฑเบ.
- เบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเปเบฒเบเบเปเบฒเบฎเปเบญเบเบเปเบเบถเบ
เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบฎเปเบญเบเบเป Git pull, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบงเบเบเบธเบกเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบเบงเปเบฒเบเบฒเบเบเปเบฝเบเปเบเบเบเบทเบเบเปเบฒเปเบเปเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบ repository. เบเบปเบงเบขเปเบฒเบ, เบเบงเบเปเบเบปเบฒเบชเบฒเบกเบฒเบเบเบทเบเบกเบญเบเปเบซเปเบชเบฐเบกเบฒเบเบดเบเบเบตเบกเบญเบทเปเบเปเบเบทเปเบญเบเบปเบเบเบงเบเบซเบผเบทเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบเบเบฒเบเบเบปเบเบชเบญเบ CI, เปเบฅเบฐเบญเบทเปเบเป.
เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบ, เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบเบขเบฒเบเบญเปเบฒเบเบฒเบ admin เบเปเบฒเบเปเบฅเบฐเบเบงเบฒ. เปเบเบทเปเบญเปเบฎเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒ, เบเบนเปเปเบเปเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเปเบ Git repository เบเปเบญเบเบเบตเปเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบซเบผเบปเปเบฒเบเบฑเปเบเบเบทเบเปเบเบฑเบเปเบงเป.
- เบเบฒเบโเปเบเปโเปเบโเบเบฑเบโเบซเบฒโเบเบญเบ drift uncontrolled เบเบญเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโ
เปเบกเบทเปเบญเบชเบฐเบเบฒเบเบฐเบเบตเปเบเปเบญเบเบเบฒเบเบเบญเบเบฅเบฐเบเบปเบเบเบทเบเปเบเบฑเบเปเบงเปเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ Git, เบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเปเบฎเบฑเบเปเบกเปเบเบเบญเบเบซเบฒเบเบญเบเปเบงเบเบตเปเบเบฐเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเบชเบฐเบเบฒเบเบฐเบเบฐเบเบธเบเบฑเบเบเบญเบเบฅเบฐเบเบปเบเบเบปเบเบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบตเปเบเปเบญเบเบเบฒเบ. เบเปเบฒเบเบตเปเบเปเปเปเบกเปเบเบเปเบฅเบฐเบเบต, เบเบญเบเปเบงเบเบตเปเบเบงเบ - เบเบถเปเบเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒ - เบฅเบปเบเบฅเปเบฒเบเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบญเบเบกเบฑเบเปเบญเบ, เบซเบผเบทเปเบเปเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒ drift.
เบฎเบนเบเปเบเบ GitOps เบชเปเบฒเบฅเบฑเบ OpenShift
On-Cluster Resource Reconciler
เบญเบตเบเบเบฒเบกเบฎเบนเบเปเบเบเบเบตเป, เบเบธเปเบกเบกเบตเบเบปเบงเบเบงเบเบเบธเบกเบเบตเปเบฎเบฑเบเบเบดเบเบเบญเบเปเบเบเบฒเบเบเบฝเบเบเบฝเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ Kubernetes (เปเบเบฅเป YAML) เปเบเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบ Git เบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเปเบเปเบเบดเบเบเบญเบเบเบธเปเบก. เบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเบงเบฒเบกโเปเบเบโเบเปเบฒเบโเบเบทเบโเบเบงเบโเบเบปเบโ, เบเบนเปโเบเบงเบโเบเบธเบกโเบเบฐโเบชเบปเปเบโเปเบเปเบโเบเบฒเบโเปเบฅเบฐโเบญเบฒเบโเบเบฐโเบเปเบฒโเปเบเบตเบโเบเบฒเบโเปเบเปโเปเบโเบเบงเบฒเบกโเปเบเบโเบเปเบฒเบโเปเบเปโ. เบฎเบนเบเปเบเบ GitOps เบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบ Anthos Config Management เปเบฅเบฐ Weaveworks Flux.
Reconciler เบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฒเบเบเบญเบ (Push)
เบฎเบนเบเปเบเบเบเบตเปเบชเบฒเบกเบฒเบเบเบทเบเบเบดเบเบฒเบฅเบฐเบเบฒเปเบเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบเปเบฒเบเบกเบฒ, เปเบกเบทเปเบญเบเบงเบเปเบฎเบปเบฒเบกเบตเบซเบเบถเปเบเบซเบผเบทเบซเบผเบฒเบเบเบปเบงเบเบงเบเบเบธเบกเบเบตเปเบฎเบฑเบเบเบดเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบ synchronizing เบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบเบเบนเป "Git repository - Kubernetes cluster". เบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบตเปเบเบตเปเปเบกเปเบเบงเปเบฒเปเบเปเบฅเบฐเบเบธเปเบกเบเบตเปเบเบทเบเบเบธเปเบกเบเบญเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบกเบตเบเบปเบงเบเบงเบเบเบธเบกเปเบเบเบเปเบฒเบเบซเบฒเบเบเบญเบเบเบปเบเปเบญเบ. Git - k8s cluster pairs เบกเบฑเบเบเบฐเบเบทเบเบเปเบฒเบเบปเบเปเบเบฑเบ CRDs (เบเบฒเบเบเปเบฒเบเบปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบเปเบฒเบซเบเบปเบเปเบญเบ), เปเบเบดเปเบเบชเบฒเบกเบฒเบเบญเบฐเบเบดเบเบฒเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบเบปเบงเบเบงเบเบเบธเบกเบเบงเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ synchronization. เบเบฒเบเปเบเบเบปเบงเปเบเบเบเบตเป, เบเบนเปเบเบงเบเบเบธเบกเบเบฝเบเบเบฝเบ Git repository เบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบ CRD เบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเบเบธเปเบก Kubernetes, เปเบเบดเปเบเบเบฑเบเบฅเบฐเบเบธเปเบงเปเปเบ CRD, เปเบฅเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเปเบเบเบญเบตเบเปเบชเปเบเบปเบเบเบญเบเบเบฒเบเบเบฝเบเบเบฝเบ. เปเบเบเบชเบฐเปเบเบฒเบฐ, เบฎเบนเบเปเบเบ GitOps เบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบ ArgoCD.
GitOps เปเบเปเบงเบเบต OpenShift
เบเบฒเบเบเปเบฅเบดเบซเบฒเบเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบซเบผเบฒเบเบเบธเปเบก Kubernetes
เบเปเบงเบเบเบฒเบเปเบเปเบเบฐเบเบฒเบเบเบญเบ Kubernetes เปเบฅเบฐเบเบงเบฒเบกเบเบดเบเบปเบกเปเบเบตเปเบกเบเบถเปเบเบเบญเบเบเบธเบเบเบฐเบชเบฒเบเบซเบผเบฒเบเบเบฅเบฒเบงเปเบฅเบฐเบเบญเบกเบเบดเบงเปเบเบตเปเบเบญเบ, เบเปเบฒเบเบงเบเบเบธเปเบก OpenShift เบชเบฐเปเบฅเปเบเบเปเปเบฅเบนเบเบเปเบฒเบเปเปเปเบเบตเปเบกเบเบถเปเบ.
เบเบปเบงเบขเปเบฒเบ, เปเบกเบทเปเบญเปเบเป Edge computing, เบเบธเปเบกเบฅเบนเบเบเปเบฒเบซเบเบถเปเบเบชเบฒเบกเบฒเบเบเบทเบเบเปเบฒเปเบเปเบเปเปเบเบฑเบเบฎเปเบญเบเบซเบผเบทเบซเบผเบฒเบเบเบฑเบเบเบปเบ. เบเบฑเปเบเบเบฑเปเบ, เบฅเบฒเบงเบเบทเบเบเบฑเบเบเบฑเบเปเบซเปเบเบฑเบเบเบฒเบเบเบธเปเบก OpenShift เบเบตเปเปเบเบฑเบเปเบญเบเบฐเบฅเบฒเบเบซเบผเบทเบเบฐเบชเบฒเบเบเบฒเบเบเปเบฒเบเบงเบเบซเบเบถเปเบเปเบเบเบฅเบฒเบงเบชเบฒเบเบฒเบฅเบฐเบเบฐเปเบฅเบฐเบขเบนเปเปเบเบชเบฐเบเบฒเบเบเบตเป.
เปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเปโ, เบเบฑเบโเบซเบฒโเบเปเบฒโเบเบงเบโเบซเบผเบฒเบโเบเปเบญเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเปเบเปโเปเบโ, เปเบเบโเบชเบฐโเปเบเบฒเบฐโเปเบกเปเบโ:
- เบเบงเบเบเบธเบกเบงเปเบฒเบเบธเปเบกเบขเบนเปเปเบเบชเบฐเบเบฒเบเบฐเบเบฝเบงเบเบฑเบ (เบเบฒเบเบเบฑเปเบเบเปเบฒ, เบเบฒเบเบเบดเบเบเบฒเบก, เบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒ, เปเบฅเบฐเบญเบทเปเบเป)
- เบชเปเบฒเบ (เบซเบผเบทเบเบทเปเบเบเบน) เบเบธเปเบกเปเบเบเบญเบตเบเปเบชเปเบชเบฐเบเบฒเบเบฐเบเบตเปเบฎเบนเปเบเบฑเบ.
- เบชเปเบฒเบเบเบธเปเบกเปเบซเบกเปเปเบเบเบญเบตเบเปเบชเปเบชเบฐเบเบฒเบเบฐเบเบตเปเบฎเบนเปเบเบฑเบ.
- เปเบเบตเบเบเบปเบงเบเบฒเบเบเปเบฝเบเปเบเบเบเปเปเบเบฑเบเบซเบผเบฒเบเบเบธเปเบก OpenShift.
- เบเบฑเบเบเบทเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบเบปเปเบงเบเบธเปเบก OpenShift เบซเบผเบฒเบเบญเบฑเบ.
- เปเบเบทเปเบญเบกเบเปเปเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบกเปเปเบเบเบเบฑเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ.
เบเบฒเบเบเบฑเปเบเบเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ
เปเบเบฅเบฐเบซเบงเปเบฒเบเบงเบปเบเบเบญเบเบเบตเบงเบดเบเบเบญเบเบเบงเบเปเบเบปเบฒ, เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบกเบฑเบเบเบฐเบเปเบฒเบเบฅเบฐเบเบปเบเบเปเบญเบเปเบชเปเบเบญเบเบเบธเปเบก (dev, เบเบฑเปเบเบเบญเบ, เปเบฅเบฐเบญเบทเปเบเป) เบเปเบญเบเบเบตเปเบเบฐเบชเบดเปเบเบชเบธเบเปเบเบเบธเปเบกเบเบฒเบเบเบฐเบฅเบดเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เปเบเบทเปเบญเบเบเบฒเบเบเบงเบฒเบกเบเปเบญเบก เปเบฅเบฐเบเบงเบฒเบกเบเปเบญเบเบเบฒเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเบฐเปเบฒเบ, เบฅเบนเบเบเปเบฒเบกเบฑเบเบเบฐเบเบณเปเบเปเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบปเปเบงเบซเบผเบฒเบเบเบธเปเบกเบขเบนเปเปเบเบชเบฐเบเบฒเบเบเบตเป เบซเบผเบทเบซเบผเบฒเบเบเบปเบเปเบเบเบเบญเบเปเบเบฅเบเบเบญเบกเบเบฅเบฒเบงเบชเบฒเบเบฒเบฅเบฐเบเบฐ.
เปเบเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเบฒเบงเบเบตเป, เบงเบฝเบเบเบฒเบเบเบฑเปเบเบเปเปเปเบเบเบตเปเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเปเบเปเปเบ:
- เบฎเบฑเบเบเบฐเบเบฑเบเบเบฒเบเปเบเบทเปเบญเบเปเบซเบงเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ (binaries, configs, เปเบฅเบฐเบญเบทเปเบเป) เบฅเบฐเบซเบงเปเบฒเบ clusters (dev, stage, เปเบฅเบฐเบญเบทเปเบเป).
- เปเบเบตเบเบเบปเบงเบเบฒเบเบเปเบฝเบเปเบเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ (binaries, configs, เปเบฅเบฐเบญเบทเปเบเป) เปเบเบซเบผเบฒเบเบเบธเปเบก OpenShift.
- เบเบฑเบเบเบทเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบชเบนเปเบชเบฐเบเบฒเบเบฐเบเบตเปเบฎเบนเปเบเบฑเบเบเปเบญเบเบซเบเปเบฒเบเบตเป.
OpenShift GitOps เปเบเปเบเปเบฅเบฐเบเบต
1. เบเบณเปเบเปเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบ Git
เบเบนเปเปเบเบดเปเบเปเบเบเบเบธเปเบกเบชเบฒเบกเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒ OpenShift cluster configurations เปเบ Git repository เปเบฅเบฐเบเปเบฒเปเบเปเบเบงเบเบกเบฑเบเปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเบทเปเบญเบชเปเบฒเบ clusters เปเบซเบกเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบเปเบฅเบฐเบเปเบฒเบเบงเบเบกเบฑเบเปเบเบปเปเบฒเปเบเปเบเบชเบฐเบเบฒเบเบฐเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบฅเบฑเบเบเบตเปเบฎเบนเปเบเบฑเบเบเบตเปเปเบเบฑเบเปเบงเปเปเบ Git repository.
2. synchronization เบเบฑเบเบเบนเปเบเบฑเบเบเบฒเบเบฅเบฑเบ
เบเบนเปเปเบเบดเปเบเปเบเบเบฅเบฐเบเบปเบเบเบฑเบเบเบฐเปเบเปเบฎเบฑเบเบเบปเบเบเบฐเปเบซเบเบเบเบฒเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบ synchronize เบงเบฑเบเบเบธเบฅเบฑเบ OpenShift เบเบฑเบเบเบญเบเปเบงเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเปเบเบฑเปเบ Vault เปเบเบทเปเบญเบเบฑเบเบเบฒเบเบเบงเบเบกเบฑเบเปเบเบเปเบเปเปเบเบทเปเบญเบเบกเบทเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเบชเบฐเปเบเบฒเบฐเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเป.
3. เบเบฒเบเบเบงเบเบเบธเบกเบเบฒเบเบเบฑเปเบเบเปเบฒ drift
เบเบนเปเปเบเบดเปเบเปเบเบเบเบฝเบเปเบเปเบเบฐเบขเบนเปเปเบเบเบงเบฒเบกเปเบเบเบเบฒเบเบเปเบฒ OpenShift GitOps เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบเบเปเบฒเบเบปเบเปเบฅเบฐเปเบเบทเบญเบเบเปเบฝเบงเบเบฑเบเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเปเบเปเบเบดเบเปเบฅเบฐเบชเบดเปเบเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบ repository, เปเบเบทเปเบญเปเบซเปเบเบงเบเปเบเบปเบฒเบชเบฒเบกเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเบเปเป drift เปเบเปเบขเปเบฒเบเปเบงเบงเบฒ.
4. เบเบฒเบเปเบเปเบเปเบเบทเบญเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒ drift
เบเบงเบเบกเบฑเบเปเบเบฑเบเบเบฐเปเบซเบเบเปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเบนเปเบเปเบฅเบดเบซเบฒเบเบเปเบญเบเบเบฒเบเบฎเบฝเบเบฎเบนเปเบขเปเบฒเบเปเบงเบงเบฒเบเปเบฝเบงเบเบฑเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ drift เปเบเบทเปเบญเบเบตเปเบเบฐเปเบเปเบกเบฒเบเบเบฐเบเบฒเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบเบฅเบฒเบงเบขเปเบฒเบเปเบงเบงเบฒ.
5. synchronization เบเบนเปเบกเบทเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเปเบงเบฅเบฒเบเบตเป drifting
เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบนเปเปเบเบดเปเบเปเบเบเบฅเบฐเบเบปเบ synchronize เบเบธเปเบก OpenShift เบเบฑเบ Git repository เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒ drift, เปเบเบทเปเบญเบเบฑเบเบเบทเบ cluster เบขเปเบฒเบเปเบงเบงเบฒเบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบตเปเบฎเบนเปเบเบฑเบเบเปเบญเบเบซเบเปเบฒเบเบตเป.
6.Auto-synchronization เบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเปเบงเบฅเบฒเบเบตเป drifting
เบเบนเปเปเบเบดเปเบเปเบเบเบฅเบฐเบเบปเบเบเบฑเบเบชเบฒเบกเบฒเบเบเบณเบเบปเบเบเปเบฒ OpenShift cluster เปเบเบทเปเบญ synchronize เบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฑเบ repository เปเบกเบทเปเบญเบเบงเบเบเบปเบ drift, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒ cluster เบเบปเบเบเบฑเบ configs เปเบ Git.
7. เบซเบผเบฒเบเบเบธเปเบก - เบซเบเบถเปเบ repository
เบเบนเปเบเปเบฅเบดเบซเบฒเบเบชเบฒเบกเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบเบธเปเบก OpenShift เบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบซเบผเบฒเบเบญเบฑเบเบขเบนเปเปเบเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบ Git เปเบฅเบฐเปเบฅเบทเบญเบเปเบเปเบเบงเบเบกเบฑเบเบเบฒเบกเบเบงเบฒเบกเบเปเบญเบเบเบฒเบ.
8. เบฅเบณเบเบฑเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบธเปเบก (เบเบฒเบเบชเบทเบเบเบญเบ)
เบเบนเปเปเบเบดเปเบเปเบเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบฅเปเบฒเบเบฑเบเบเบฑเปเบเบเบญเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบธเปเบกเบขเบนเปเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ (เบเบฑเปเบเบเบญเบ, เบเบฐเบฅเบดเบเบเบฐเบเบฑเบ, เบซเบผเบฑเบเบเบฑเบเปเบญเบฑเบเบฏ, เปเบฅเบฐเบญเบทเปเบเป. เบเปเบงเบเบเบฒเบเบชเบทเบเบเบญเบ). เปเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเปเบญเบทเปเบเป, เบกเบฑเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบงเปเบฒเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบงเบเบเบทเบเบเปเบฒเปเบเปเบเบฑเบเบซเบเบถเปเบเบซเบผเบทเบซเบผเบฒเบเบเบธเปเบก.
เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบนเปเบเปเบฅเบดเบซเบฒเบเบเบฑเปเบเบฅเปเบฒเบเบฑเบเบเบฑเปเบ โเบเบธเปเบกเบเบฒเบเบเบฐเบฅเบดเบ (เบเบฐเบฅเบดเบเบเบฐเบเบฑเบ) โ เบฅเบฐเบเบปเบ X clusters โ เบเบธเปเบกเบเบฒเบเบเบฐเบฅเบดเบเบเบญเบเบฅเบฐเบเบปเบ Xโ เปเบเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบ Git, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเบฅเบงเบกเบเบฑเบเบเบญเบ configs เบเปเปเปเบเบเบตเปเบเบทเบเบเปเบฒเปเบเปเบเบฑเบเบเบธเปเบกเบเบฒเบเบเบฐเบฅเบดเบเบเบญเบเบฅเบฐเบเบปเบ X:
- เบเบณเบเบปเบเบเปเบฒเบเบปเปเบงเปเบเบเบฑเบเบเบธเบเบเบธเปเบกเบเบฒเบเบเบฐเบฅเบดเบ.
- เบเบณเบเบปเบเบเปเบฒเบชเบณเบฅเบฑเบเบฅเบฐเบเบปเบ X cluster.
- เบเบฒเบเบเบฑเปเบเบเปเบฒเบชเบณเบฅเบฑเบเบเบธเปเบกเบเบฒเบเบเบฐเบฅเบดเบเบฅเบฐเบเบปเบ X.
9. เปเบกเปเปเบเบเปเบฅเบฐเบเบฒเบเบเบฑเปเบเบเปเบฒ overrides
เบเบนเปเปเบเบดเปเบเปเบเบเบฅเบฐเบเบปเบเบชเบฒเบกเบฒเบ override เบเบธเบเบเบญเบ configs เบชเบทเบเบเบญเบเปเบฅเบฐเบเปเบฒเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ, เบเบฑเบเบเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบธเปเบกเบชเบฐเปเบเบฒเบฐเบเบตเปเบเบฐเบเปเบฒเปเบเป.
10. Selective include and exclude for configurations, เบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ
เบเบนเปเปเบเบดเปเบเปเบเบเบฅเบฐเบเบปเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเปเบเบทเปเบญเบเปเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบซเบผเบทเบเปเปเปเบกเปเบเบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบขเปเบฒเบเปเบซเปเบเบฑเบเบเบธเปเบกเบเบตเปเบกเบตเบฅเบฑเบเบชเบฐเบเบฐเบเบฒเบเบขเปเบฒเบ.
11. เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบกเปเปเบเบ
เบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบฐเปเบเปเบฎเบฑเบเบเบปเบเบเบฐเปเบซเบเบเบเบฒเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเปเบฅเบทเบญเบเบงเบดเบเบตเบเบฒเบเบเปเบฒเบเบปเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ (Helm Chart, pure Kubernetes yaml, เปเบฅเบฐเบญเบทเปเบเป) เปเบเบทเปเบญเบเปเบฒเปเบเปเบฎเบนเบเปเบเบเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเบเบตเปเบชเบธเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบชเบฐเปเบเบฒเบฐ.
เปเบเบทเปเบญเบเบกเบท GitOps เปเบเปเบงเบเบต OpenShift
ArgoCD
ArgoCD เบเบฐเบเบดเบเบฑเบเบเบปเบงเปเบเบ Reconcile เบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฒเบเบเบญเบ เปเบฅเบฐเบชเบฐเบซเบเบญเบ UI เบเบตเปเปเบเบฑเบเบชเบนเบเบเบฒเบเปเบเบทเปเบญเบเบฑเบเบงเบฒเบเบเบฒเบเบเบปเบงเบเบฑเบเปเบเบเบซเบเบถเปเบเบซเบฒเบซเบผเบฒเบเบฅเบฐเบซเบงเปเบฒเบเบเบธเปเบก เปเบฅเบฐเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบ Git. เบเปเปเปเบชเบเบเบญเบเปเบเบเบเบฒเบเบเบตเปเบฅเบงเบกเบกเบตเบเบฒเบเบเปเปเบชเบฒเบกเบฒเบเบเบฑเบเบเบฒเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบกเบทเปเบญ ArgoCD เบเปเปเปเบฎเบฑเบเบงเบฝเบ.
เปเบซเบผ
Flux เบเบฐเบเบดเบเบฑเบเบฎเบนเบเปเบเบ On-Cluster Resource Reconcile เปเบฅเบฐ, เบเบฑเปเบเบเบฑเปเบ, เบเปเปเบกเบตเบเบฒเบเบเบฑเบเบเบฒเบเบชเบนเบเบเบฒเบเบเบญเบ repository เบเปเบฒเบเบดเบเบฒเบก, เปเบเบดเปเบเปเบเบฑเบเบเบธเบเบญเปเบญเบ. เปเบเบเบฒเบเบเบปเบเบเบฑเบเบเปเบฒเบก, เปเบเปเบเบญเบ, เปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบเบฒเบเบเบฒเบเบชเบนเบเบเบฒเบ, เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเบฑเบเบเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฑเบเบเบปเบเบขเบนเปเปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบธเปเบกเบซเบเบถเปเบเบเบฐเบฅเบปเปเบกเปเบซเบฅเบง.
เบเบฒเบเบเบดเบเบเบฑเปเบ ArgoCD เปเบ OpenShift
ArgoCD เบชเบฐเบซเบเบญเบเบเบฒเบเปเบเปเบเบญเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเบตเปเบฅเบตเบเปเบฅเบฐ web console, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบเบงเบกเปเบญเบปเบฒ Flux เปเบฅเบฐเบเบฒเบเปเบฅเบทเบญเบเบญเบทเปเบเปเบขเบนเปเบเบตเปเบเบตเป.
เปเบเบทเปเบญเบเบณเปเบเป ArgoCD เปเบเบดเบเปเบงเบเบต OpenShift 4, เบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบฑเปเบเบเบญเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบเบเบฒเบเบฐเบเบนเปเบเปเบฅเบดเบซเบฒเบเบเบธเปเบก:
เบเบฒเบเบเบณเปเบเปเบญเบปเบเบเบฐเบเบญเบ ArgoCD เปเบเปเบงเบเบต OpenShift
# Create a new namespace for ArgoCD components
oc create namespace argocd
# Apply the ArgoCD Install Manifest
oc -n argocd apply -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.2.2/manifests/install.yaml
# Get the ArgoCD Server password
ARGOCD_SERVER_PASSWORD=$(oc -n argocd get pod -l "app.kubernetes.io/name=argocd-server" -o jsonpath='{.items[*].metadata.name}')
เบเบฒเบเบเบฑเบเบเบธเบ ArgoCD Server เปเบเบทเปเบญเปเบซเปเบกเบฑเบเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเปเปเบเบ OpenShift Route
# Patch ArgoCD Server so no TLS is configured on the server (--insecure)
PATCH='{"spec":{"template":{"spec":{"$setElementOrder/containers":[{"name":"argocd-server"}],"containers":[{"command":["argocd-server","--insecure","--staticassets","/shared/app"],"name":"argocd-server"}]}}}}'
oc -n argocd patch deployment argocd-server -p $PATCH
# Expose the ArgoCD Server using an Edge OpenShift Route so TLS is used for incoming connections
oc -n argocd create route edge argocd-server --service=argocd-server --port=http --insecure-policy=Redirect
เบเบณเปเบเปเปเบเบทเปเบญเบเบกเบท ArgoCD Cli
# Download the argocd binary, place it under /usr/local/bin and give it execution permissions
curl -L https://github.com/argoproj/argo-cd/releases/download/v1.2.2/argocd-linux-amd64 -o /usr/local/bin/argocd
chmod +x /usr/local/bin/argocd
เบเบฒเบเบเปเบฝเบเบฅเบฐเบซเบฑเบเบเปเบฒเบเบเบญเบ ArgoCD Server admin
# Get ArgoCD Server Route Hostname
ARGOCD_ROUTE=$(oc -n argocd get route argocd-server -o jsonpath='{.spec.host}')
# Login with the current admin password
argocd --insecure --grpc-web login ${ARGOCD_ROUTE}:443 --username admin --password ${ARGOCD_SERVER_PASSWORD}
# Update admin's password
argocd --insecure --grpc-web --server ${ARGOCD_ROUTE}:443 account update-password --current-password ${ARGOCD_SERVER_PASSWORD} --new-password
เบซเบผเบฑเบเบเบฒเบเบชเปเบฒเปเบฅเบฑเบเบเบฑเปเบเบเบญเบเปเบซเบผเบปเปเบฒเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ ArgoCD Server เบเปเบฒเบ ArgoCD WebUI web console เบซเบผเบทเปเบเบทเปเบญเบเบกเบทเปเบเบงเบเปเบฒเบชเบฑเปเบ ArgoCD Cli.
GitOps - เบกเบฑเบเบเปเปเปเบเบตเบเบเปเบฒเปเบเบตเบเปเบ
"เบฅเบปเบเปเบเปเบเปเบญเบญเบเปเบ" - เบเบตเปเปเบกเปเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบเบปเบฒเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเปเบเปเบงเบฅเบฒเบเบตเปเปเบญเบเบฒเบเบเบตเปเบเบฐเปเบฎเบฑเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบทเบเบเบฒเบ. เปเบเบเปเบฅเบฐเบเบตเบเบญเบ OpenShift, เบเบงเบฒเบกเบเบฒเบเบฐเบซเบเบฒเบเบตเปเบเบฐเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบฑเบเบเบตเบเบฒเบเบเปเบฒเปเบเปเปเบเบฅเบฐเบเบฐเบเบญเบกเปเบซเบกเปเบเบตเปเปเบขเบฑเบเบเบตเปเบกเบฑเบเบเบฐเบชเปเบฒเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเปเบขเปเบฒเบเปเบเปเบเบดเบเบเบฑเบเบเบฒเบเบเบธเปเบกเบเบญเบเปเบฅเบฐเบเปเบฒเบฅเบธเบเบฎเบฑเบเบชเบฒเปเบชเบฑเปเบเบเบฒเบ, เบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบฅเบฐเบงเบฑเบเบเบธ OpenShift เบญเบทเปเบเป. เปเบเปเปเบญเบเบฒเบเบชเบฐเปเบซเบกเบตเบเบฒเบเปเบเบซเบกเบปเบเบเป?
เบชเบทเบเบเปเปเบเบธเบเบเบญเบเบเบปเบเบเบงเบฒเบกเบเปเบฝเบงเบเบฑเบ
oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/namespace.yaml
oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/deployment.yaml
oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/service.yaml
oc expose svc/httpd -n simple-app
เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบกเบตเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ handcrafted. เปเบเบเบฑเบเบเบธเบเบฑเบเบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเปเบญเบเบเบฒเบเปเบเปเบเบฒเบเบเบธเปเบกเบเบญเบ GitOps เปเบเบเบเปเปเบกเบตเบเบฒเบเบชเบนเบเปเบชเบเบเบงเบฒเบกเบเปเบญเบก. เปเบเบชเบฑเปเบ, เบกเบฑเบเปเบฎเบฑเบเบชเบดเปเบเบเบตเป:
- เบชเปเบฒเบเบเปเบญเบเปเบเบฑเบเบเปเปเบกเบนเบ Git เบชเปเบฒเบฅเบฑเบเบฅเบฐเบซเบฑเบ.
- เบเบงเบเปเบฎเบปเบฒเบชเบปเปเบเบญเบญเบเบงเบฑเบเบเบธเบเบฐเบเบธเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบฅเบฐเบญเบฑเบเปเบซเบฅเบเบเบงเบเบกเบฑเบเปเบเบเบตเปเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ Git.
- เบเบฒเบเปเบฅเบทเบญเบ เปเบฅเบฐเบเบณเปเบเปเปเบเบทเปเบญเบเบกเบท GitOps.
- เบเบงเบเปเบฎเบปเบฒเปเบเบตเปเบกเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบชเปเบเบธเบเปเบเบทเปเบญเบเบกเบทเบเบตเป.
- เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบเบปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบเบธเบเปเบเบทเปเบญเบเบกเบท GitOps เบเบญเบเบเบงเบเปเบฎเบปเบฒ.
- เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบเบเปเบเปเบเบธเบเปเบเบทเปเบญเบเบกเบท GitOps.
- เบเบงเบเปเบฎเบปเบฒ synchronize เบงเบฑเบเบเบธเปเบเบเปเบเปเบเบธเบเปเบเบทเปเบญเบเบกเบท GitOps.
- เปเบเบตเบเปเบเปเบเบฒเบเบเบฑเบเบญเบญเบ เปเบฅเบฐ synchronization เบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบญเบเบงเบฑเบเบเบธ.
เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเปเบเบญเบฐเบเบตเบ
เปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเปเบฒเบ repository เบชเบฒเบเบฒเบฅเบฐเบเบฐเปเบซเบกเปเปเบ GitHub. เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบซเบฒเบกเบฑเบเปเบเบเปเปเบเบฒเบกเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบทเป blogpost.
เบเปเบฒเปเบเบฅเปเบงเบฑเบเบเบธ YAML เบเปเปเปเบเปเบเบทเบเปเบเบฑเบเปเบงเปเปเบเปเบเบทเปเบญเบเบซเบผเบทเบขเบนเปเปเบ Git, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบเบฐเบเปเบญเบเปเบเป oc เบซเบผเบท kubectl binaries. เปเบเบเบฒเบเบซเบเปเบฒเบเปเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเบฎเปเบญเบเบเป YAML เบชเปเบฒเบฅเบฑเบ namespace, เบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบฅเบฐเปเบชเบฑเปเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ. เบเปเบญเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒ cloned repository เบชเปเบฒเบเปเบซเบกเปเปเบฅเบฐ cd เปเบเบปเปเบฒเปเบเปเบเบกเบฑเบ.
oc get namespace simple-app -o yaml --export > namespace.yaml
oc get deployment httpd -o yaml -n simple-app --export > deployment.yaml
oc get service httpd -o yaml -n simple-app --export > service.yaml
oc get route httpd -o yaml -n simple-app --export > route.yaml
เบเบญเบเบเบตเปเปเบซเปเปเบฎเบปเบฒเปเบเปเปเบเปเบเบฅเป deployment.yaml เปเบเบทเปเบญเปเบญเบปเบฒเบเปเบญเบเบเปเปเบกเบนเบเบเบตเป Argo CD เบเปเปเบชเบฒเบกเบฒเบเบเบดเปเบเปเบเป.
sed -i '/sgeneration: .*/d' deployment.yaml
เบเบญเบเบเบฒเบเบเบฑเปเบ, เปเบชเบฑเปเบเบเบฒเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบเปเบฝเบเปเบเบ. เบเปเบฒเบญเบดเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเบเบปเบเบเบปเบงเปเบเบซเบผเบฒเบเปเบเบงเปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบ ingress: null เบเบฑเบเปเบเบทเปเบญเปเบเบเบญเบเบเบปเบงเปเบเบเบฑเปเบ.
export ROUTE=" ingress:
- conditions:
- status: 'True'
type: Admitted"
sed -i "s/ ingress: null/$ROUTE/g" route.yaml
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฑเบเบฎเบฝเบเปเบเบฅเปเบญเบญเบ, เบเบฑเบเบซเบกเบปเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบกเปเบเปเบเบทเปเบญเบเบฑเบเบเบถเบเบเบงเบเบกเบฑเบเปเบงเปเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ Git. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบตเปเบเบฒเบเปเบเบฑเบเปเบซเบผเปเบเบเปเปเบกเบนเบเปเบเบปเปเบฒเบเบฑเปเบ, เปเบฅเบฐเบเบฒเบเบเปเบฝเบเปเบเบเบเบนเปเบกเบทเปเบเปเบเปเปเบงเบฑเบเบเบธเบเบงเบเปเบเปเบฎเบฑเบเบเบฒเบเบซเปเบฒเบกเบขเปเบฒเบเปเบเบฑเปเบกเบเบงเบ.
git commit -am โinitial commit of objectsโ
git push origin master
เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบตเปเบงเปเบฒเบเปเบฒเบเปเบเปเบเปเบฒเปเบเป ArgoCD เปเบฅเปเบง (เบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเบชเบดเปเบเบเบตเป - เปเบเบดเปเบเบเปเบญเบเบซเบเปเบฒเบเบตเป
argocd repo add https://github.com/cooktheryan/blogpost
เปเบเบเบฑเบเบเบธเบเบฑเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ. เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเปเบฒเบเบปเบเบเปเบฒเปเบเบทเปเบญเปเบซเปเบเบธเบเปเบเบทเปเบญเบเบกเบท GitOps เปเบเบปเปเบฒเปเบเบงเปเบฒเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเปเบฅเบฐเปเบชเบฑเปเบเบเบฒเบเปเบเบเบตเปเบเบฐเปเบเป, เปเบเบดเปเบ OpenShift เปเบกเปเบเบเปเบฒเปเบเบฑเบเปเบเบเบฒเบเบเบฑเบเบเบฒเบเบงเบฑเบเบเบธ, เปเบเบดเปเบเบชเบฒเบเบฒเบชเบฐเปเบเบฒเบฐเบเบญเบ repository เปเบกเปเบเบเปเบญเบเบเบฒเบ, เปเบฅเบฐเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบตเปเบเบงเบเบเบฐ sync เบญเบฑเบเบเบฐเปเบเบกเบฑเบ.
argocd app create --project default
--name simple-app --repo https://github.com/cooktheryan/blogpost.git
--path . --dest-server https://kubernetes.default.svc
--dest-namespace simple-app --revision master --sync-policy none
เปเบกเบทเปเบญเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบทเบเบฅเบฐเบเบธเปเบงเปเปเบ Argo CD, เบเบธเบเปเบเบทเปเบญเบเบกเบทเบเบฐเปเบฅเบตเปเบกเบเบงเบเบชเบญเบเบงเบฑเบเบเบธเบเบตเปเปเบเปเปเบฅเปเบงเบเปเปเบเบฑเบเบเปเบฒเบเบดเบเบฒเบกเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ. เปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบฒเบเบเบดเบเบเปเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบฅเบฐเบเบฒเบเปเบฎเบฑเบเบเบงเบฒเบกเบชเบฐเบญเบฒเบเบเบทเบเบเบดเบเปเบเปเบเบฒเบ, เบเบฑเปเบเบเบฑเปเบเบญเบปเบเบเบฐเบเบญเบเบเปเปเบเปเบฝเบเปเบเบเปเบเบทเปเบญ. เบเบฐเบฅเบธเบเบฒเบฎเบฑเบเบเบฒเบเบงเปเบฒเปเบเบเบฒเบเปเบเปเบเบญเบ Argo CD เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบกเบตเบชเบฐเบเบฒเบเบฐ "Out of Sync" เปเบเบฒเบฐเบงเปเบฒเบเปเปเบกเบตเบเปเบฒเบเบเบทเปเบเบตเป ArgoCD เปเบซเป.
เบเบตเปโเปเบกเปเบโเบงเปเบฒโเปเบเบฑเบโเบซเบเบฑเบโเปเบกเบทเปเบญโเบเบงเบโเปเบฎเบปเบฒโเปเบฅเบตเปเบกโเบเบปเปเบ synchronization เปเบฅเบฑเบโเบเปเบญเบโเบเปเปโเบกเบฒโ, เบงเบฑเบโเบเบธโเบเบฐโเบเปเปโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเปเบฒโเปเบเปโเบเบทเบโเปเบซเบกเปโ.
เบเบญเบเบเบตเปเปเบซเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเปเบเบทเปเบญเปเบซเปเปเบเปเปเบเบงเปเบฒเบเปเปเบกเบตเบเปเปเบเบดเบเบเบฒเบเปเบเปเบเบฅเปเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
argocd app sync simple-app --dry-run
เบเปเบฒเบเปเปเบกเบตเบเปเปเบเบดเบเบเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ synchronization เปเบเป.
argocd app sync simple-app
เบซเบผเบฑเบเบเบฒเบเปเบฅเปเบ argocd get command เปเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบงเบเปเบฎเบปเบฒเบเบงเบเบเบฐเปเบซเบฑเบเบงเปเบฒเบชเบฐเบเบฒเบเบฐเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเปเบเปเบฝเบเปเบเบฑเบ Healthy เบซเบผเบท Synced. เบเบตเปเบเบฐเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเบฑเบเบซเบกเบปเบเปเบ Git repository เปเบเบเบฑเบเบเบธเบเบฑเบเบเบปเบเบเบฑเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบซเบผเบปเปเบฒเบเบฑเปเบเบเบตเปเปเบเปเบเบทเบเบเปเบฒเปเบเปเปเบฅเปเบง.
argocd app get simple-app
Name: simple-app
Project: default
Server: https://kubernetes.default.svc
Namespace: simple-app
URL: https://argocd-server-route-argocd.apps.example.com/applications/simple-app
Repo: https://github.com/cooktheryan/blogpost.git
Target: master
Path: .
Sync Policy: <none>
Sync Status: Synced to master (60e1678)
Health Status: Healthy
...
เบเบญเบเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเบเปเบเปเบเบฒเบเบเบดเบเบเปเบญเบฑเบเบเบฐเปเบเบกเบฑเบ เปเบฅเบฐเบเบณเบเบงเบฒเบกเบชเบฐเบญเบฒเบเปเบเปเปเบเบทเปเบญเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเบเปเปเบกเบตเบซเบเบฑเบเบเบทเบเบชเปเบฒเบเบเปเบงเบเบเบปเบเปเบญเบ เปเบฅเบฐเบเบธเบเบเบฑเปเบเบเบตเปเบงเบฑเบเบเบธเบเบทเบเบชเปเบฒเบ เบซเบผเบทเบญเบฑเบเปเบเบเปเบชเปเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ, เบเบฒเบเบเบณเปเบเปเบเบฐเปเบเบตเบเบเบถเปเบ.
argocd app set simple-app --sync-policy automated --auto-prune
เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเปเบฒเปเบญเบปเบฒเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบเบเบฒเบเปเบเปเบเบฒเบเบเบงเบเบเบธเบก GitOps เบเบตเปเปเบเปเบเบทเปเบญเบเบเบปเปเบเบเปเปเปเบเปเปเบเป GitOps เปเบเบเบฒเบเปเบเบเปเปเบเบฒเบก.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com