แแฆแแก แแแกแแฃแแ แแแ GitOps-แแก แแ แแแชแแแแแกแ แแ แแแแแแแแแ, แแกแแแ แแแแแ, แแฃ แ แแแแ แฎแแแแ แแ แแแแแแแแแก แแแแแ แแแ OpenShift แแแแขแคแแ แแแแ. แฎแแแแแกแแฌแแแแแแ แแแขแแ แแฅแขแแฃแแ แกแแฎแแแแซแฆแแแแแแ แแ แแแแแแ
แแแแแแ, GitOps แแ แแก แแ แแฅแขแแแแก แแ แแแแแแแแ Git pull แแแแฎแแแแแแแก แแแแแงแแแแแแกแแแแก แแแคแ แแกแขแ แฃแฅแขแฃแ แแกแ แแ แแแแแแแชแแแแแก แแแแคแแแฃแ แแชแแแก แกแแแแ แแแแแ. Git แกแแชแแแ GitOps-แจแ แแแแแฎแแแแแ, แ แแแแ แช แแแคแแ แแแชแแแก แแ แแ แฌแงแแ แ แกแแกแขแแแแก แแแแแแแ แแแแแก แจแแกแแฎแแ แแ แแ แแแแแแแ แแแแแก แแแแแกแแแแ แ แชแแแแแแแ แกแ แฃแแแ แแ แแก แแแแแแแแแแ แแ แแฃแแแขแ.
GitOps-แจแ แชแแแแแแแแแแก แแแแแแแแแแก แแแแ แกแฃแแแช แแ แแ แแก แแฎแแแ; แแก แแแแแแแ แแแแ แฎแแแแ แแแแแแงแแแแแ แแแแฅแแแก แฃแแแแแ แกแแแฃแ แแ แแแแแแแชแแแก แฌแงแแ แแก แแแแแแ แแฃแจแแแแแกแแก. GitOps แฃแแ แแแแ แแฎแแ แชแแแแแแก แแกแแแแก แคแฃแแฅแชแแแแก (แแแแแฎแแแแ, แแแแฎแแแแแก แแแแฎแแแแ, แขแแแแแ แแ แ.แจ.) แแแคแ แแกแขแ แฃแฅแขแฃแ แแกแ แแ แแแแแแแชแแแแแก แแแแคแแแฃแ แแชแแแก แแแแแฏแแแแขแจแ แแ แฃแแ แฃแแแแแงแแคแก แแกแแแแก แกแแ แแแแแแก, แ แแแแ แช แแแแแก แแแ แแแแก แจแแแแฎแแแแแจแ.
แแ แแ แกแแแแแก แแแแแแแแฃแ แ แแแแแแ แขแแแ แแ แฌแแกแแแแก แแแแขแแแชแแแฃแแ แแแแ แแแ GitOps-แแกแแแแก, แแฎแแแแ แแ แแแชแแแแแแก แแแแ แแแ, แ แแแแแแแแช แแแแแฃแแแ แแก แแ แแฅแขแแแ:
- แกแแกแขแแแแก แแแแแแ แแชแแฃแแ แแฆแฌแแ แ แแแแฎแแแ Git-แแก แกแแชแแแจแ (แแแแคแแแฃแ แแชแแแแ, แแแแแขแแ แแแแ แแ แ.แจ.).
- แแแแแแแ แแแแแก แชแแแแแแแแแ แฎแแแแ pull-แแก แแแแฎแแแแแแแก แแแจแแแแแแ.
- แแแจแแแแฃแแ แกแแกแขแแแแแแก แแแแแแแ แแแแ แจแแแกแแแแแแแ แกแแชแแแจแ แแ แกแแแฃแ แแแแแชแแแแแก Git push แแแแฎแแแแแแแก แแแแแงแแแแแแ.
GitOps แแ แแแชแแแแแ
- แกแแกแขแแแแก แแแแแแ แขแแแแแ แแฆแฌแแ แแแแ, แ แแแแ แช แฌแงแแ แแก แแแแ
แกแแกแขแแแแแแก แแแแคแแแฃแ แแชแแ แแแแแฎแแแแแ, แ แแแแ แช แแแแ, แแกแ แ แแ แแแกแ แจแแแแฎแแ แแ แแแขแแแแขแฃแ แแ แแแ แกแแ แจแแกแแซแแแแแแแ Git แกแแชแแแจแ, แ แแแแแแช แแแกแแฎแฃแ แแแ แ แแแแ แช แกแแแแ แแแแก แแ แ แฌแงแแ แแก. แแก แแแแแแแ แแแแแแแแแก แกแแกแขแแแแแจแ แชแแแแแแแแแแก แแแแ แชแแแแแแก แแ แฃแแแ แแแแ แฃแแแแแก.
- แกแแกแขแแแแแแก แกแแกแฃแ แแแแ แแแแแแแ แแแแ แแ แแแแคแแแฃแ แแชแแ แแแงแแแแแฃแแแ แแ แแแ แกแแแแแ Git-แจแ
Git-แจแ แกแแกแขแแแแแแก แกแแกแฃแ แแแแ แแแแแแแ แแแแแก แจแแแแฎแแแ แแ แแแ แกแแแ, แฉแแแ แจแแแแแซแแแ แแแแแแแ แแแแแคแแ แแแแแ แแ แแแแแฃแฅแแแ แชแแแแแแแแแ แกแแกแขแแแแแกแ แแ แแแแแแแชแแแแจแ. แฉแแแ แแกแแแ แจแแแแแซแแแ แแแแแแแงแแแแ Git-แแก แฃแกแแคแ แแฎแแแแแก แแแฅแแแแแแแแ แแแแแก แคแแแแแก แแแกแแแแแขแ แแแแแแแ แแ แแแกแ แแแแแแขแฃแ แแแแก แแแกแแแแกแขแฃแ แแแแแ.
- แแแแคแแแฃแ แแชแแแก แชแแแแแแแแแ แจแแแซแแแแ แแแขแแแแขแฃแ แแ แแฅแแแก แแแแแงแแแแแฃแแ pull แแแแฎแแแแแก แกแแจแฃแแแแแแ
Git pull-แแก แแแแฎแแแแแแแก แแแแแงแแแแแแ, แฉแแแ แจแแแแแซแแแ แแแ แขแแแแ แแแแแแขแ แแแแ, แแฃ แ แแแแ แฎแแแแ แชแแแแแแแแแแก แแแแแงแแแแแ แกแแชแแแจแ แแ แกแแแฃแ แแแแคแแแฃแ แแชแแแแแ. แแแแแแแแแ, แแกแแแ แจแแแซแแแแ แแแแชแแก แกแฎแแ แแฃแแแแก แฌแแแ แแแก แแแแกแแฎแแแแแแแ แแ แแแแแ แแ CI แขแแกแขแแแ แแ แ.แจ.
แแ แแแแแแ แแฃแแแ, แแ แแ แแก แกแแญแแ แ แแแแแแแกแขแ แแขแแ แแก แฃแคแแแแแแแกแแแแแแก แแแแแฌแแแแแ แแแ แชแฎแแแ แแ แแแ แฏแแแแ. แแแแคแแแฃแ แแชแแแก แชแแแแแแแแแแก แจแแกแแกแ แฃแแแแแแ แแแแฎแแแ แแแแแแก แกแญแแ แแแแแ แแฎแแแแ แจแแกแแแแแแกแ แแแแแ แแแแแ Git แกแแชแแแจแ, แกแแแแช แแก แแแแคแแแฃแ แแชแแแแ แแแแฎแแแ.
- แแแแคแแแฃแ แแชแแแแแก แฃแแแแขแ แแแ แแ แแแคแแก แแ แแแแแแแก แแแคแแฅแกแแ แแแ
แ แแแแกแแช แกแแกแขแแแแก แกแแกแฃแ แแแแ แแแแแแแ แแแแ แแแแฎแแแ Git-แแก แกแแชแแแจแ, แฉแแแ แแฎแแแแ แฃแแแ แแแแแแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแ, แ แแแแแแช แฃแแ แฃแแแแแงแแคแก แกแแกแขแแแแก แแแแแแแแแแแ แแแแแแแ แแแแแก แจแแกแแแแแแกแแแแก แแแก แกแแกแฃแ แแแ แแแแแแแ แแแแแก. แแฃ แแก แแกแ แแ แแ แแก, แแแจแแ แแก แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแ แฃแแแ - แแแ แแแแขแ แแแแแแ แแแแแแแแแแ แ - แแ แแแแแกแแ แแฆแแแคแฎแแ แแก แจแแฃแกแแแแแแแ, แแ แจแแแแแขแงแแแแแแก แแแแคแแแฃแ แแชแแแก แแ แแคแขแแก แจแแกแแฎแแ.
GitOps แแแแแแแแ OpenShift-แแกแแแแก
แแแแกแขแแ แฃแแ แ แแกแฃแ แกแแแแก แจแแแ แแแแแแแ
แแ แแแแแแแก แแแฎแแแแแ, แแแแกแขแแ แก แแฅแแก แแแแขแ แแแแ แ, แ แแแแแแช แแแกแฃแฎแแกแแแแแแแแ Git แกแแชแแแจแ Kubernetes แ แแกแฃแ แกแแแแก (YAML แคแแแแแแแก) แจแแแแ แแแแแ แแแแกแขแแ แแก แ แแแแฃแ แ แแกแฃแ แกแแแแแ. แ แแแแกแแช แแแแแแแแแแแแ แจแแฃแกแแแแแแแแแ, แแแแขแ แแแแ แ แแแแแแแแก แจแแขแงแแแแแแแแแก แแ แจแแกแแซแแแ แแฆแแแก แแแแแแก แจแแฃแกแแแแแแแแแแก แแแแแกแแกแฌแแ แแแแแ. แแก GitOps แแแแแแ แแแแแแงแแแแแ Anthos Config Management-แจแ แแ Weaveworks Flux-แจแ.
แแแ แ แ แแกแฃแ แกแแแแก แแแแแแจแแแแแแแแ (Push)
แแก แแแแแแ แจแแแซแแแแ แฉแแแแแแแแก แฌแแแ แแแแแแแก แแแ แแแชแแแ, แ แแแแกแแช แฉแแแ แแแงแแแก แแ แแ แแ แแแขแ แแแแขแ แแแแ แ, แ แแแแแแช แแแกแฃแฎแแกแแแแแแแแ แ แแกแฃแ แกแแแแก แกแแแฅแ แแแแแแชแแแแ "Git แกแแชแแแ - Kubernetes แแแแกแขแแ แ" แฌแงแแแแแแจแ. แแแแกแฎแแแแแแ แแฅ แแ แแก แแก, แ แแ แแแแแแฃแ แแแ แแฃแ แแแแกแขแแ แก แกแฃแแแช แแ แแฅแแก แกแแแฃแแแ แ แชแแแแ แแแแขแ แแแแ แ. Git - k8s แแแแกแขแแ แแแแก แฌแงแแแแแแ แฎแจแแ แแ แแแแแแแ แขแแแ แ แแแแ แช CRD (แกแแแแแ แ แแกแฃแ แกแแแแก แแแแแแ แขแแแแแ), แ แแแแแแช แแฆแฌแแ แก, แแฃ แ แแแแ แฃแแแ แจแแแกแ แฃแแแก แแแแขแ แแแแ แแ แกแแแฅแ แแแแแแชแแ. แแ แแแแแแแก แคแแ แแแแแจแ, แแแแขแ แแแแ แแแ แแแแ แแแแ CRD-แจแ แแแแแแแแฃแ Git แกแแชแแแก Kubernetes แแแแกแขแแ แฃแ แ แแกแฃแ แกแแแก, แ แแแแแแแช แแกแแแ แแแแแแแแฃแแแ CRD-แจแ แแ แแฎแแ แชแแแแแแแ แจแแกแแแแแแก แแแฅแแแแแแแแก แจแแแแ แแแแก แจแแแแแแแแ แแแงแ แแแแแแ. แแแ แซแแ, แแก GitOps แแแแแแ แแแแแแงแแแแแ ArgoCD-แจแ.
GitOps OpenShift แแแแขแคแแ แแแแ
แแ แแแแแแแแกแขแแ แฃแแ Kubernetes แแแคแ แแกแขแ แฃแฅแขแฃแ แแก แแแแแแแกแขแ แแ แแแ
Kubernetes-แแก แแแแ แชแแแแแแกแแแ แแ แแ แแแแ แฆแ แฃแแแแแแ แกแขแ แแขแแแแแแแแ แแ edge computing-แแก แแแแ แแ แแแแฃแแแ แแแแ, แแกแแแ แแแ แแแแ OpenShift แแแแกแขแแ แแแแก แกแแจแฃแแแ แ แแแแแแแแ แแแแแแฃแ แแแแฎแแแ แแแแแแ.
แแแแแแแแแ, edge computing-แแก แแแแแงแแแแแแกแแก, แแ แแ แแแแฎแแแ แแแแแก แแแแกแขแแ แแแ แจแแแซแแแแ แแแแแแแแแก แแกแแแแ แแ แแฃแแแแช แแแแกแแแแ. แจแแแแแแ, แแก แแซแฃแแแแฃแแแ แแแ แแแก แ แแแแแแแแ แแแแแฃแแแแแแแแ แแ แแแแ แแแแแ แแแฃแแ OpenShift แแแแกแขแแ แ แกแแฏแแ แ แฆแ แฃแแแแจแ แแ แจแแแ แจแแแแแแจแ.
แแ แจแแแแฎแแแแแจแ แแแแ แ แแ แแแแแแ แฃแแแ แแแแแแญแ แแก, แแแ แซแแ:
- แแแแแขแ แแแแ, แ แแ แแแแกแขแแ แแแ แแงแแแแ แแแแแขแฃแ แแแแแแแ แแแแแจแ (แแแแคแแแฃแ แแชแแ, แแแแแขแแ แแแแ, แจแแแแฎแแ แแ แ.แจ.)
- แจแแฅแแแแแ (แแ แแฆแแแแแแแ) แแแแกแขแแ แแแ แชแแแแแแ แแแแแแแ แแแแแก แกแแคแฃแซแแแแแ.
- แจแแฅแแแแแ แแฎแแแ แแแแกแขแแ แแแ แชแแแแแแ แแแแแแแ แแแแแก แกแแคแฃแซแแแแแ.
- แแแแแแแแกแแ แชแแแแแแแแแ แแ แแแแ OpenShift แแแแกแขแแ แจแ.
- แชแแแแแแแแแแก แฃแแแ แแแแ แฃแแแแ แแ แแแแ OpenShift แแแแกแขแแ แจแ.
- แแแแแแแจแแ แแ แจแแแแแแแก แแแแคแแแฃแ แแชแแแแ แกแฎแแแแแกแฎแแ แแแ แแแแจแ.
แแแแแแแชแแแก แแแแคแแแฃแ แแชแแแแ
แแแแ แกแแกแแชแแชแฎแแ แชแแแแแก แแแแแแแแแแแจแ, แแแแแแแชแแแแ แฎแจแแ แแ แแแแแแ แแแแกแขแแ แแแแก แฏแแญแแก (dev, stage แแ แ.แจ.), แกแแแแ แแแกแ แฃแแแแแ แฌแแ แแแแแแก แแแแกแขแแ แจแ. แแแ แแ แแแแกแ, แฎแแแแแกแแฌแแแแแแแแกแ แแ แแแกแจแขแแแฃแ แแแแก แแแแฎแแแแแแแก แแแแ, แแแแฎแแแ แแแแแแ แฎแจแแ แแ แแแแแแแแกแแแแ แแแแแแแชแแแแก แ แแแแแแแแ แจแแแ แแแแกแขแแ แจแ แแ แกแแฏแแ แ แฆแ แฃแแแแแแแ แแแแขแคแแ แแแก แแ แแแแ แ แแแแแแจแ.
แแ แจแแแแฎแแแแแจแ, แจแแแแแแ แแแแชแแแแแ แฃแแแ แแแแแฌแงแแแก:
- แฃแแ แฃแแแแแงแแก แแแแแแแชแแแแแก แแแแแแแแแแแแ (แแ แแแแแ แคแแแแแแ, แแแแคแแแฃแ แแชแแแแ แแ แ.แจ.) แแแแกแขแแ แแแก แจแแ แแก (dev, stage แแ แ.แจ.).
- แแแแแแแแกแแ แชแแแแแแแแแ แแแแแแแชแแแแจแ (แแ แแแแแ แคแแแแแแ, แแแแคแแแฃแ แแชแแแแ แแ แ.แจ.) แ แแแแแแแแ OpenShift แแแแกแขแแ แจแ.
- แแแแแ แฃแแแ แชแแแแแแแแแ แแแแแแแชแแแแจแ แฌแแแ แชแแแแแ แแแแแแแ แแแแแจแ.
OpenShift GitOps-แแก แแแแแงแแแแแแก แจแแแแฎแแแแแแ
1. แชแแแแแแแแแแก แแแแแงแแแแแ Git แกแแชแแแแแแ
แแแแกแขแแ แแก แแแแแแแกแขแ แแขแแ แก แจแแฃแซแแแ แจแแแแแฎแแก OpenShift แแแแกแขแแ แฃแแ แแแแคแแแฃแ แแชแแแแ Git แกแแชแแแจแ แแ แแแขแแแแขแฃแ แแ แแแแแแงแแแแก แแกแแแ แแฎแแแ แแแแกแขแแ แแแแก แฃแแ แแแแแแแ แจแแกแแฅแแแแแแ แแ แแแ แแแแแขแฃแ แแแแแแแ แแแแแจแ แแแแแงแแแแ Git แกแแชแแแจแ แจแแแแฎแฃแแ แชแแแแแแ แแแแแแแ แแแแแกแแแแก.
2. แกแแแฅแ แแแแแแชแแ แกแแแแฃแแแ แแแแแฏแแ แแแ
แแแแแแแกแขแ แแขแแ แ แแกแแแ แแกแแ แแแแแแแก OpenShift แกแแแแฃแแแ แแแแแฅแขแแแแก แกแแแฅแ แแแแแแชแแแก แจแแกแแซแแแแแแแแ แจแแกแแแแแแกแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแ, แ แแแแ แแชแแ Vault, แ แแแ แแแ แแแก แแกแแแ แกแแแชแแแแฃแ แแ แจแแฅแแแแแ แแแกแขแ แฃแแแแขแแแแก แแแแแงแแแแแแ.
3. แแ แแคแขแแก แแแแคแแแฃแ แแชแแแแแก แแแแขแ แแแ
แแแแแแ แแแแฎแ แ แแฅแแแแ แแฎแแแแ แแ แจแแแแฎแแแแแจแ, แแฃ OpenShift GitOps แแแแแ แแแแแชแแแแก แแ แแแแคแ แแฎแแแแแก แจแแฃแกแแแแแแแแก แจแแกแแฎแแ แ แแแแฃแ แแแแคแแแฃแ แแชแแแแกแ แแ แกแแชแแแจแ แแแแแแแแฃแแแแก แจแแ แแก, แ แแแ แแแ แกแฌแ แแคแแ แฃแแแกแฃแฎแแ แแ แแคแขแก.
4. แจแแขแงแแแแแแแแแ แแแแคแแแฃแ แแชแแแก แแ แแคแขแแก แจแแกแแฎแแ
แแกแแแ แกแแกแแ แแแแแแ แแ แจแแแแฎแแแแแจแ, แ แแแแกแแช แแแแแแแกแขแ แแขแแ แก แกแฃแ แก แกแฌแ แแคแแ แแแแชแแแก แแแแคแแแฃแ แแชแแแก แแ แแคแขแแก แจแแแแฎแแแแแแก, แ แแแ แกแฌแ แแคแแ แแแแฆแแก แจแแกแแแแแแกแ แแแแแแ แแแแแฃแแแแแแแแ.
5. แแแแคแแแฃแ แแชแแแแแก แฎแแแแ แกแแแฅแ แแแแแแชแแ แแ แแคแขแแก แแ แแก
แกแแจแฃแแแแแแก แแซแแแแก แแแแแแแกแขแ แแขแแ แก แแแแฎแแแแแก OpenShift แแแแกแขแแ แแก แกแแแฅแ แแแแแแชแแ Git แกแแชแแแแแ แแแแคแแแฃแ แแชแแแก แแ แแคแขแแก แจแแแแฎแแแแแจแ, แกแฌแ แแคแแ แแแแแ แฃแแแก แแแแกแขแแ แ แฌแแแ แชแแแแแ แแแแแแแ แแแแแจแ.
6. แแ แแคแขแแก แแ แแก แแแแคแแแฃแ แแชแแแแแก แแแขแแแแขแฃแ แ แกแแแฅแ แแแแแแชแแ
แแแแแแแกแขแ แแขแแ แก แแกแแแ แจแแฃแซแแแ OpenShift แแแแกแขแแ แแก แแแแคแแแฃแ แแชแแ, แ แแแ แแแขแแแแขแฃแ แแ แแแฎแแแก แกแแชแแแแแ แกแแแฅแ แแแแแแชแแ, แ แแแแกแแช แแ แแคแขแ แแฆแแแฉแแแแแแ, แ แแแ แแแแกแขแแ แแก แแแแคแแแฃแ แแชแแ แงแแแแแแแแก แแแแฎแแแแแแก Git-แแก แแแแคแแแฃแ แแชแแแก.
7. แ แแแแแแแแ แแแแกแขแแ แ - แแ แแ แกแแชแแแ
แแแแแแแกแขแ แแขแแ แก แจแแฃแซแแแ แจแแแแแฎแแก แ แแแแแแแแ แแแแกแฎแแแแแแฃแแ OpenShift แแแแกแขแแ แแก แแแแคแแแฃแ แแชแแ แแ แ Git แกแแชแแแจแ แแ แจแแ แฉแแแแ แแแแแแงแแแแก แแกแแแ แกแแญแแ แแแแแกแแแแแ .
8. แแแแกแขแแ แฃแแ แแแแคแแแฃแ แแชแแแแแก แแแ แแ แฅแแ (แแแแแแแแ แแแแ)
แแแแแแแกแขแ แแขแแ แก แจแแฃแซแแแ แกแแชแแแจแ แแแแงแแแแก แแแแกแขแแ แแแแก แแแแคแแแฃแ แแชแแแแแก แแแ แแ แฅแแ (แกแขแแแแ, แแ แแ, แแแแแแแชแแแก แแแ แขแคแแแแ แแ แ.แจ. แแแแแแแแ แแแแแ). แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แแแก แจแแฃแซแแแ แแแแกแแแฆแแ แแก, แฃแแแ แแฅแแแก แแแแแงแแแแแฃแแ แแฃ แแ แ แแแแคแแแฃแ แแชแแแแ แแ แ แแ แแแข แแแแกแขแแ แแ.
แแแแแแแแแ, แแฃ แแแแแแแกแขแ แแขแแ แ แแแแแแก แแแ แแ แฅแแแก โแฌแแ แแแแแแก แแแแกแขแแ แแแ (แแ แแ) โ แกแแกแขแแแแก X แแแแกแขแแ แแแ โ แกแแกแขแแแแก X แฌแแ แแแแแแก แแแแกแขแแ แแแโ Git แกแแชแแแจแ, แแแจแแ แจแแแแแแ แแแแคแแแฃแ แแชแแแแแก แแแแแแแแชแแ แแแแแแงแแแแแ X แกแแกแขแแแแก แฌแแ แแแแแแก แแแแกแขแแ แแแแ:
- แแแแคแแแฃแ แแชแแแแ แกแแแ แแแ แงแแแแ แกแแฌแแ แแแ แแแแกแขแแ แแกแแแแก.
- แแแแคแแแฃแ แแชแแแแ System X แแแแกแขแแ แแกแแแแก.
- แแแแคแแแฃแ แแชแแแแ X แกแแกแขแแแแก แฌแแ แแแแแแก แแแแกแขแแ แแกแแแแก.
9. แจแแแแแแแแ แแ แแแแคแแแฃแ แแชแแแก แฃแแฃแแแแแแงแแคแ
แแแแแแแกแขแ แแขแแ แก แจแแฃแซแแแ แแแแแแแฎแแก แแแแแแแแ แแแแแแ แแแแคแแแฃแ แแชแแแแแก แแแแ แแแ แแ แแแแ แแแแจแแแแแแแแแ, แแแแแแแแแ, แแแแคแแแฃแ แแชแแแก แแแแฃแกแขแแแแก แแแแแแ แแแแแ แแขแฃแแ แแแแกแขแแ แแแแกแแแแก, แ แแแแแแแแช แแกแแแ แแแแแงแแแแแฃแแ แแฅแแแแ.
10. แจแแ แฉแแแแแ แแแแชแแแก แแ แแแแแ แแชแฎแแแก แแแแคแแแฃแ แแชแแแแก, แแแแแแแชแแแก แแแแคแแแฃแ แแชแแแก
แแแแแแแกแขแ แแขแแ แก แจแแฃแซแแแ แแแแงแแแแก แแแ แแแแฃแแ แแแฎแแกแแแแแแแแแแก แแฅแแแ แแแแกแขแแ แแแแ แแแ แแแแฃแแ แแแแคแแแฃแ แแชแแแแแก แแแแแงแแแแแแก แแ แแแแแฃแงแแแแแแแแแก แแแ แแแแแ.
11. แจแแแแแแแก แแฎแแ แแแญแแ แ
แแแแแแแแแ แแแ แแกแแ แแแแแแแแ แฃแแแ แแ แแแ แฉแแแ แ แแแแ แแแแแกแแแฆแแ แแก แแแแแแแชแแแก แ แแกแฃแ แกแแแ (Helm Chart, แกแฃแคแแ Kubernetes yaml แแ แ.แจ.), แ แแแ แแแแแแงแแแแ แงแแแแแแ แจแแกแแคแแ แแกแ แคแแ แแแขแ แแแแแแฃแแ แแแแแ แแขแฃแแ แแแแแแแชแแแกแแแแก.
GitOps แแแกแขแ แฃแแแแขแแแ OpenShift แแแแขแคแแ แแแแ
ArgoCD
ArgoCD แแฎแแ แชแแแแแแก External Resource Reconcile แแแแแแก แแ แแแแแแแแแ แชแแแขแ แแแแแแแฃแ แแแขแแ แคแแแกแก แแแแกแขแแ แแแกแ แแ Git แกแแชแแแแแก แจแแ แแก แแ แ-แแ แแ แฃแ แแแแ แแแแแก แแ แแแกแขแ แแ แแแแกแแแแก. แแ แแ แแแ แแแแก แฃแแ แงแแคแแแ แแฎแแ แ แแแแชแแแก แแแแแแแชแแแแแก แแแ แแแแก แจแแฃแซแแแแแแแแก, แ แแแแกแแช ArgoCD แแ แแฃแจแแแแก.
Flux
Flux แแฎแแ แชแแแแแแก On-Cluster Resource Reconcile แแแแแแก แแ, แจแแแแแแ, แแ แแ แกแแแแแก แแแแแแ แขแแแแแแก แกแแชแแแ แชแแแขแ แแแแแแแฃแแ แแแ แแแ, แ แแช แกแฃแกแขแ แฌแแ แขแแแแ. แแแแ แแก แแฎแ แแ, แแฃแกแขแแ แชแแแขแ แแแแแแชแแแก แแ แแ แกแแแแแแก แแแแ, แแแแแแแชแแแแแก แแแ แแแแก แจแแกแแซแแแแแแแ แ แฉแแแ แแแจแแแแช แแ, แแฃ แแ แแ แแแแกแขแแ แ แแแ แฎแแ แฎแแแแ.
ArgoCD-แแก แแแกแขแแแแชแแ OpenShift-แแ
ArgoCD แแแแแแแแแ แแ แซแแแแแแก แฎแแแแก แจแแกแแแแจแแแ แแแขแแ แคแแแกแก แแ แแแ แแแแกแแแก, แแแแขแแ แแฅ 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 แกแแ แแแ แแก แแแฃแแฏแแแแกแแแ แแกแ, แ แแ แแแกแ แแแฎแแ แจแแกแแซแแแแแแ แแงแแก 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 Tool-แแก แแแแแ แแแ
# 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 แกแแ แแแ แแก แแแแแแแกแขแ แแขแแ แแก แแแ แแแแก แจแแชแแแ
# 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 แกแแ แแแ แแแ แแฃแจแแแแ ArgoCD WebUI แแแ แแแแกแแแแก แแ 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
แแกแ แ แแ, แฉแแแ แแแแฅแแก แฎแแแแแแแแ แแแแแแแชแแ. แแฎแแ แแก แฃแแแ แแแแแแขแแแแ GitOps แแแแแฏแแแแขแแก แฅแแแจ แฎแแแแแกแแฌแแแแแแแแก แแแแแ แแแแก แแแ แแจแ. แแแแแแ แแแแก แแแแแแแก:
- แจแแฅแแแแแ Git แกแแชแแแ แแแแแกแแแแก.
- แฉแแแ แแแฎแแแแ แฉแแแแ แแแแแแแแ แ แแแแแฅแขแแแแก แแฅแกแแแ แขแก แแ แแขแแแ แแแแ แแแ Git-แแก แกแแชแแแจแ.
- GitOps แแแกแขแ แฃแแแแขแแแแก แจแแ แฉแแแ แแ แแแแแ แแแ.
- แฉแแแ แแแแแขแแแ แฉแแแแก แกแแชแแแก แแ แแแกแขแ แฃแแแแขแแ แแแแ แแแแก.
- แฉแแแ แแแแแกแแแฆแแ แแแ แแแแแแแชแแแก แฉแแแแก GitOps แแแกแขแ แฃแแแแขแแ แแฃแแจแ.
- แฉแแแ แแแกแ แฃแแแแ แแแแแแแชแแแก แกแแขแแกแขแ แแแจแแแแแก GitOps แแแกแขแ แฃแแแแขแแ แแฃแแแก แแแแแงแแแแแแ.
- แฉแแแ แแแแแฅแขแแแก แกแแแฅแ แแแแแแชแแแก แแแฎแแ แชแแแแแแ GitOps แแแกแขแ แฃแแแแขแแ แแฃแแแก แแแแแงแแแแแแ.
- แฉแแ แแแ แแแแแฅแขแแแแก แแแ แแแ แแ แแแขแแแแขแฃแ แ แกแแแฅแ แแแแแแชแแ.
แ แแแแ แช แฌแแแแจแ แแฆแแแแจแแ
แฉแแแแก แแแแแแแแจแ แฉแแแ แจแแแฅแแแแ แแฎแแ แกแแฏแแ แ แกแแชแแแก GitHub-แแ. แแฅแแแ แจแแแแซแแแแ แแแแ แฅแแแ แแแก, แ แแแแ แช แแกแฃแ แ, แฉแแแ แแแงแแแแแ แแแแแแแกแขแก.
แแฃ YAML แแแแแฅแขแแก แคแแแแแแ แแ แแงแ แจแแแแฎแฃแแ แแแแแแฃแ แแ แแ Git-แจแ, แแแจแแ แแแแแฌแแแ แแแแแแงแแแแ oc แแ kubectl แแแแแ แแแ. แฅแแแแแ แแแชแแแฃแ แกแแ แแแจแแขแจแ แฉแแแ แแแแฎแแแ YAML แฉแแแแ แกแแฎแแแแแแก แกแแแ แชแแกแแแแก, แแแแแแแแแแก, แกแแ แแแกแแกแ แแ แแแ แจแ แฃแขแแกแแแแก. แแแแแแแ แฉแแแ แแแแแฎแแแแแ แแฎแแแ แจแแฅแแแแแ แกแแชแแแ แแ แแแกแจแ 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 แแ แแก แกแแญแแ แ แแแแแฅแขแแแแก แกแแแแ แแแแแ, แกแแชแแแแก แ แแแแแ แคแแแแแแแ แกแแญแแ แ แแ แฃแแแ แแแฎแแแก แแฃ แแ แ แ แแกแฃแ แกแแแแก แแแขแแแแขแฃแ แ แกแแแฅแ แแแแแแชแแ.
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 แแฌแแแแก.
แกแฌแแ แแ แแแแขแแ, แ แแแแกแแช แกแแแฅแ แแแแแแชแแแก แชแแขแ แแแแแแแแแแแ แแแแแฌแงแแแ, แแแแแฅแขแแแ แแ แแแแแแแแแแ.
แแฎแแ แแแแแ แแแแแแแแแ แกแแขแแกแขแ แแแจแแแแ, แ แแแ แแแแ แฌแแฃแแแแ, แ แแ แฉแแแแก แคแแแแแแจแ แจแแชแแแแแแ แแ แแ แแก.
argocd app sync simple-app --dry-run
แแฃ แจแแชแแแแแแ แแ แแ แแก, แจแแแแซแแแแ แแแแแ แซแแแแ แกแแแฅแ แแแแแแชแแ.
argocd app sync simple-app
แฉแแแแก แแแแแแแชแแแจแ argocd get แแ แซแแแแแแก แแแจแแแแแก แจแแแแแ, แฃแแแ แแแแแแแฎแแ, แ แแ แแแแแชแฎแแแแก แกแขแแขแฃแกแ แจแแแชแแแแ Healthy แแ Synced. แแก แแแจแแแแก, แ แแ Git แกแแชแแแจแ แแ แกแแแฃแแ แงแแแแ แ แแกแฃแ แกแ แแฎแแ แจแแแกแแแแแแแ แแ แ แแกแฃแ แกแแแก, แ แแแแแแแช แฃแแแ แแแแแแแแแฃแแแ.
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