从本文中,您将学习如何使用 Flux,它是 Kubernetes 集群中的一个 GitOps 工具。
根据您所处的环境类型或您有权访问的环境,您可以通过几种不同的方式启动和运行 Kubernetes 集群:
无论您使用哪种方法,Flux 都可以使用。
就本文而言,您可以使用 Minikube,因为它非常适合本地环境,不必担心在云中花钱或部署一堆虚拟机。
要开始使用 Minikube,请查看本指南。
GitOps 是用一个工具(如 Flux)查看Git 存储库,检查 Kubernetes 清单,并确认 Kubernetes 清单中的内容就是 Kubernetes 集群上的内容。因此,我们需要一个 Kubernetes 应用程序。
出于本文的目的,将使用 Nginx 应用程序。对于初级选手,它并没有什么太复杂和完美的地方。
当你准备安装 Flux 时,有几个组件:
在本节中,将介绍启动和运行 Flux 所需的一切。
要安装 Flux,您必须查看此处为您的操作系统找到的安装指南。
例如,要在 MacOS 上安装 Flux,您可以运行以下命令:
brew install fluxcd/tap/flux
要检查安装是否成功以及您使用的 Kubernetes 集群是否与 Flux 兼容,可以运行以下命令:
flux check --pre
flux bootstrap github
如果 GitHub 存储库不存在,该命令将创建它,并将工具包提交到main
ormaster
分支。然后它将 Kubernetes 集群配置为与存储库同步。
例如,要YOUUSERNAME
在kubernetes-examples
GitHub 存储库中使用我的用户名,如下所示。
flux bootstrap github \
--owner=YOUUSERNAME \
--repository=kubernetes-examples \
--branch=main \
--path=./clusters/my-cluster \
--personal
在存储库中,将看到一个包含 Flux 配置的新目录。
现在已经安装了 Flux,是时候部署一个应用程序了。应该做的第一件事是从应用程序部分克隆代码存储库并将其分支到 GitHub 组织。
拥有克隆的存储库后,cd
(更改目录)到终端/命令行上的存储库。
首先,将 nginx 应用添加到 Flux。下面的命令将以 30 秒的间隔拉取 Nginx 应用程序。
flux create source git kubernetes-examples \
--url=https://github.com/YOUUSERNAME/kubernetes-examples \
--branch=main \
--interval=30s \
--export > ./clusters/my-cluster/podinfo-source.yaml
运行上面的命令后,一个名为的新文件podinfo-source.yaml
将添加到存储库中。将新文件/代码推送到 GitHub。
要部署应用程序,您将使用Kubernetes kustomize,它是一种以声明方式自定义 Kubernetes 应用程序的工具。
首先,创建一个名为的文件podinfo-kustomization.yaml
并将其放入您的 GitHub 存储库。
接下来,运行下面的命令。下面的命令将使用该kubernetes-examples
应用程序作为源。
flux create kustomization kubernetes-examples \
--target-namespace=default \
--source=kubernetes-examples \
--path="./kustomize" \
--prune=true \
--interval=5m \
--export > clusters/my-cluster/podinfo-kustomization.yaml
注意如何有一个kustomize
目录。该目录是手动创建的(它已经存在于 GitHub 存储库中)。这就是应用程序配置的位置(例如:Nginx Kubernetes 清单)。如果目录中没有应用程序的 Kubernetes 清单kustomize
,Flux 配置将无法工作。
运行上述命令后,提交并将其推送到 GitHub 存储库。
为确保应用已部署,您可以使用该flux get
命令查看 Flux 正在运行和管理的应用。
flux get kustomizations --watch