Ubuntu安装Flux.md

flux是一款开源的gitops工具,它是专门为kubernetes集群的持续交付而设计。

可以通过git的状态来自动化管理和同步k8s的资源,开发人员可以通过git的提交来完成管理和部署应用程序。https://cloud.tencent.com/developer/article/2514365

在Ubuntu 安装:

curl -s https://fluxcd.io/install.sh | sudo bash

检查:
flux check –pre

与内网git.lan连接

在git.lan创建新的用户(需要经过管理员批准),并登录,获取Personal access token
并创建名称为jiagoushi的group

glpat-Dz9sQQc0ATPQa5QIk49LSG86MQp1OjIH.01.0w035b1il

获取 git.lan的ca.key:
openssl s_client -showcerts -connect git.lan:443 </dev/null 2>/dev/null | openssl x509 -outform PEM > gitlab-ca.pem

执行:
执行 flux bootstrap
flux bootstrap gitlab
–hostname=git.lan
–owner=jiagoushi
–repository=my_flux_test
–branch=main
–path=clusters/testing
–deploy-token-auth
–ca-file=./gitlab-ca.pem

如果一次不成功,可以多试几次,内网部署pod速度有延迟

kubectl get pods –namespace flux-system
NAME READY STATUS RESTARTS AGE
helm-controller-6dc685bc76-cd5d2 1/1 Running 0 23m
kustomize-controller-67d57df945-l66zz 1/1 Running 0 23m
notification-controller-575dbc8d9-8gm8x 1/1 Running 0 23m
source-controller-7b685d6d7d-698rm 1/1 Running 0 23m

部署完成后,Flux会在git创建仓库my_flux_test,在这个仓库中cluster/testing就是保存部署文件的位置,这里保存的yaml文件,提交后,会被Flux自动读取,并部署到k8s集群。可以将这个仓储克隆到本地,在vscode中编辑部署文件,并提交,flux就会完成自动部署。

下面是常用的flux命令:

1
2
3
4
5
6
# 查看 Git 源状态(名称通常为 "flux-system")
flux get sources git -n flux-system

# 查看 Kustomization 状态(名称通常为 "flux-system")
flux get kustomizations -n flux-system