当前位置: 首页 > news >正文

flux + kubernetes + gitops + Kustomization

# 1. 安装依赖
yum install -y git

# 2. 设置代理(根据你的环境)
export http_proxy=http://192.168.3.77:20171
export https_proxy=http://192.168.3.77:20171
export NO_PROXY=*.baidu.com,10.0.0.0/8,.cluster.local,192.168.3.0/24

# 3. 安装 flux CLI
curl -s https://fluxcd.io/install.sh | bash
source ~/.bashrc

# 4. 初始化 Git 仓库
mkdir -p /root/gitops-repo
cd /root/gitops-repo/
git init
git config --global user.name "user"
git config --global user.email "user@example.com"

# 5. 安装 Flux 到 Kubernetes
flux install

# 6. 创建目录结构
mkdir -p base overlays/dev

# 7. 编写 base 资源
cat > base/deployment.yaml << EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 1
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: nginx:alpine
ports:
- containerPort: 80
EOF

cat > base/service.yaml << EOF
apiVersion: v1
kind: Service
metadata:
name: myapp
spec:
type: ClusterIP
ports:
- port: 80
selector:
app: myapp
EOF

cat > base/kustomization.yaml << EOF
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources: //这里必须写resources "./overlays/dev" 不用写是应为他是监听主目录是唯一的例外
- deployment.yaml
- service.yaml
EOF

# 8. 编写 overlays/dev
cat > overlays/dev/kustomization.yaml << EOF
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
replicas: //只会修改被resources引入的yaml
- name: myapp
count: 2
images:
- name: nginx
newTag: 1.25-alpine
EOF

# 9. 提交到 Git
git add .
git commit -m "init gitops"

# 10. 配置 SSH 密钥(本地Git认证)
ssh-keygen -t rsa -N "" -f /root/.ssh/id_rsa
cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
ssh -o StrictHostKeyChecking=no root@192.168.3.243 "echo OK"

# 11. 创建 Git 源(Flux 拉取 Git)
flux create source git gitops-repo \
--url=ssh://root@192.168.3.243/root/gitops-repo \
--branch=master \
--interval=30s \
--private-key-file=/root/.ssh/id_rsa

# 12. 授予 Flux 集群权限
kubectl create clusterrolebinding flux-cluster-admin \
--clusterrole=cluster-admin \
--serviceaccount=flux-system:flux-system

# 13. 加入测试资源(带 namespace)
cat > overlays/dev/nginx-test.yaml << EOF
apiVersion: v1
kind: Pod
metadata:
namespace: default
name: nginx-test
spec:
containers:
- name: nginx
image: nginx:alpine
EOF

git add .
git commit -m "fix: add namespace"

# 14. 创建 Kustomization(自动部署)
flux create kustomization gitops-dev \
--source=gitops-repo \
--path="./overlays/dev" \
--prune=true \
--interval=30s \
--target-namespace=default

# 15. 查看最终状态
flux get all
kubectl get po

http://www.jsqmd.com/news/638562/

相关文章:

  • 基于Python的动漫商城管理系统毕设
  • intv_ai_mk11多任务能力:支持多轮上下文记忆,连续追问‘第2点’自动关联前文
  • PyTorch 2.8镜像快速上手:5分钟验证torch.compile+SDPA加速效果
  • 音视频处理框架
  • Go语言的sync.Map并发安全
  • Qwen3-ASR-1.7B与Typora结合的语音笔记工具开发
  • Nunchaku-FLUX.1-dev开源模型可持续发展:社区贡献激励/模型版本演进路线
  • 保姆级教程:用Wan2.2-I2V-A14B镜像,RTX4090D快速部署AI视频生成
  • 微服务开发实践
  • 告别烧录烦恼!用Balena Etcher三步制作完美启动盘
  • Rust的Cow(写时复制)类型:智能的借用与所有权管理
  • 性价比高的geo优化软件系统源头厂家
  • 现在不看就晚了:2026奇点大会刚发布的AIAgent视觉导航合规红线清单(含GDPR/ISO/GB 44499三级适配要求)
  • Wan2.2-I2V-A14B项目实战:从零搭建个人AI艺术画廊网站
  • AIAgent目标分解实战手册(工业级SOP首次公开):从模糊意图到可执行子任务的7步原子化流程
  • Qwen3-TTS-Tokenizer-12Hz语音合成API设计:RESTful最佳实践
  • 【仅剩72小时解禁】2026奇点大会AIAgent NLU内核技术简报:3个颠覆性专利算法+1套开源推理引擎
  • 不上APM,103行代码搞定慢SQL检测:超100毫秒自动入库
  • 现代化C++开发环境配置:vcpkg、CMake与CLion
  • C语言基础知识点汇总
  • 亲测机电一体化系统维保品牌实践分享
  • 解放双手的智慧:BetterGI原神自动化助手全攻略 [特殊字符]
  • FUTURE POLICE常见问题排查:音频格式不支持、时间轴错位怎么办
  • 2026合肥网站建设公司实测盘点:优质网站制作公司、网站设计公司盘点严选 - 企业推荐官【官方】
  • AI知识库集问答
  • 零基础玩转忍者像素绘卷:手把手教你生成火影风格像素艺术
  • Kandinsky-5.0-I2V-Lite-5s入门必看:PyCharm中调试模型调用代码详解
  • stm32 freertos 学习尚硅谷 第 2 章FreeRTOS基础知识
  • 从数据到视觉:用UGUI RawImage在Unity里做个交互式温度监控面板(支持动态更新)
  • 解决Spring Boot应用启动超慢问题:深入类加载与Bean初始化