<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>GitOps on 维克的博客</title><link>https://blogs.wuvikr.top/tags/gitops/</link><description>Recent content in GitOps on 维克的博客</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 12 Oct 2026 14:51:37 +0800</lastBuildDate><atom:link href="https://blogs.wuvikr.top/tags/gitops/index.xml" rel="self" type="application/rss+xml"/><item><title>Gitlab 入门和生产部署实践</title><link>https://blogs.wuvikr.top/posts/gitlab%E5%85%A5%E9%97%A8%E5%92%8C%E7%94%9F%E4%BA%A7%E9%83%A8%E7%BD%B2%E5%AE%9E%E8%B7%B5/</link><pubDate>Mon, 12 Oct 2026 14:51:37 +0800</pubDate><guid>https://blogs.wuvikr.top/posts/gitlab%E5%85%A5%E9%97%A8%E5%92%8C%E7%94%9F%E4%BA%A7%E9%83%A8%E7%BD%B2%E5%AE%9E%E8%B7%B5/</guid><description>&lt;h1 id="1-什么是-gitlab">1. 什么是 GitLab&lt;/h1>
&lt;p>GitLab 是一款开源的 Git 代码托管平台，支持私有化部署，被众多企业用于搭建内部代码仓库。与 GitHub 主打开源协作不同，GitLab 更聚焦于代码托管和研发流程自动化，原生提供 CI/CD、代码评审、权限管控、镜像仓库、日志审计等能力。&lt;/p>
&lt;p>GitLab 主要分为两个版本：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>CE 社区版&lt;/strong>：免费开源，基本能满足 95% 中小企业的生产需求（本文案例）；&lt;/li>
&lt;li>&lt;strong>EE 企业版&lt;/strong>：付费使用，提供高可用架构、高级安全扫描、集群权限管控以及官方技术支持，比较适合大厂落地。&lt;/li>
&lt;/ul>
&lt;p>总之，对企业来说，GitLab 的核心价值主要体现在四个方面：&lt;strong>代码内网私有化存储、研发流程标准化、流水线自动化、操作可审计追溯&lt;/strong>。&lt;/p>
&lt;h1 id="2-三种部署方式选型">2. 三种部署方式（选型）&lt;/h1>
&lt;ol>
&lt;li>&lt;strong>Omnibus 包部署（生产首选）&lt;/strong>：官方推荐的标准生产部署方案，以一键安装包形式提供，支持主流 Linux 发行版。内置 PostgreSQL、Redis、Gitaly、Web、Sidekiq 等核心组件，部署路径清晰、运维成本较低、稳定性较高，是生产环境中最稳妥的选择。&lt;/li>
&lt;li>&lt;strong>K8s 混合部署（不推荐新人尝试）&lt;/strong>：面向大规模高并发场景时，官方推荐采用混合架构，将 Web、Sidekiq 等无状态组件部署在 Kubernetes 中，便于弹性扩缩；Gitaly、数据库、缓存等有状态服务则保留在虚拟机或独立节点上部署，以保证存储和数据的稳定性。不建议新手直接使用 Kubernetes 全组件部署 GitLab。有状态组件在容器环境中的存储管理、备份恢复和升级复杂度较高，生产风险较大。&lt;/li>
&lt;li>&lt;strong>Docker 单容器部署（仅测试用）&lt;/strong>：Docker 单容器部署启动快、上手简单，但在数据持久化、备份恢复、版本升级和高可用方面能力有限，仅适合本地测试、功能验证或演示环境，不建议用于生产。&lt;/li>
&lt;/ol>
&lt;h1 id="3-安装-gitlab">3. 安装 GitLab&lt;/h1>
&lt;p>&lt;a href="https://docs.gitlab.com/omnibus/installation/index.html">官方安装文档&lt;/a>&lt;/p>
&lt;h2 id="31-前置硬件系统要求">3.1 前置硬件&amp;amp;系统要求&lt;/h2>
&lt;ul>
&lt;li>仅支持 linux，最低配置：4核8G（10人以内小团队），生产推荐 8 核 16G 及以上；&lt;/li>
&lt;li>关闭 SELinux 或 AppArmor，否则可能影响服务正常运行；&lt;/li>
&lt;li>存储优先用 SSD；不建议用 NFS、EFS、Azure Files 这类网络文件系统放仓库数据；&lt;/li>
&lt;li>开放端口：80(http)、443(https)、22(ssh)。&lt;/li>
&lt;/ul>
&lt;h2 id="32-添加-apt-源安装">3.2 添加 apt 源安装&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 更新系统依赖&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt update &lt;span style="color:#f92672">&amp;amp;&amp;amp;&lt;/span> sudo apt upgrade -y
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 安装必备依赖&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install -y curl openssh-server ca-certificates tzdata
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 添加 GitLab 官方 APT 源&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo curl --location &lt;span style="color:#e6db74">&amp;#34;https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh&amp;#34;&lt;/span> | sudo bash
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 安装 GitLab 社区版（默认启动初始化）&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt install gitlab-ce -y
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="33-离线包无网络环境使用">3.3 离线包（无网络环境使用）&lt;/h2>
&lt;p>&lt;a href="https://packages.gitlab.com/gitlab/gitlab-ce">官方离线包下载地址&lt;/a>&lt;/p></description></item><item><title>ArgoCD 入门和生产实践指南</title><link>https://blogs.wuvikr.top/posts/argocd%E5%85%A5%E9%97%A8%E5%92%8C%E7%94%9F%E4%BA%A7%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/</link><pubDate>Sat, 10 Oct 2026 09:33:28 +0800</pubDate><guid>https://blogs.wuvikr.top/posts/argocd%E5%85%A5%E9%97%A8%E5%92%8C%E7%94%9F%E4%BA%A7%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/</guid><description>&lt;h1 id="1-什么是-argocd">1. 什么是 ArgoCD&lt;/h1>
&lt;p>&lt;a href="https://argo-cd.readthedocs.io/en/stable/">ArgoCD&lt;/a> 是 CNCF 毕业级项目，面向 Kubernetes 的&lt;strong>声明式 GitOps 持续交付工具&lt;/strong>。&lt;/p>
&lt;p>GitOps 核心思想：&lt;strong>Git 仓库作为应用配置的唯一可信源&lt;/strong>。ArgoCD 持续监听 Git 仓库内定义的应用目标状态，对比集群内资源的实际运行状态，自动完成应用部署、版本更新与故障回滚。&lt;/p>
&lt;p>ArgoCD 原生支持多种配置编排方式：Helm Chart、Kustomize、Jsonnet、Ksonnet，以及原生 YAML/JSON Kubernetes 资源清单。&lt;/p>
&lt;h1 id="2-架构原理">2. 架构原理&lt;/h1>
&lt;p>ArgoCD 以 Kubernetes 控制器形态运行，持续对应用做状态巡检：&lt;/p>
&lt;ol>
&lt;li>拉取 Git 仓库中声明的&lt;strong>期望状态（Target State）&lt;/strong>&lt;/li>
&lt;li>采集集群内资源&lt;strong>实际运行状态（Live State）&lt;/strong>&lt;/li>
&lt;li>对比两者差异，不一致时标记为 &lt;code>OutOfSync&lt;/code>（不同步）&lt;/li>
&lt;li>可视化展示资源差异，支持&lt;strong>手动同步 / 自动同步&lt;/strong>，将集群状态收敛到 Git 定义的目标状态&lt;/li>
&lt;/ol>
&lt;p>Git 仓库中修改清单后，ArgoCD 会感知变更并同步至目标集群，实现“改 Git 即发布”。&lt;/p>
&lt;p>具体工作流程参见下面的图片：
&lt;img alt="argocd工作流程图" loading="lazy" src="https://blogs.wuvikr.top/posts/argocd%E5%85%A5%E9%97%A8%E5%92%8C%E7%94%9F%E4%BA%A7%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/argocd%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B%E7%A4%BA%E6%84%8F%E5%9B%BE.png">&lt;/p>
&lt;p>&lt;strong>核心组件&lt;/strong>:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: center">组件&lt;/th>
&lt;th style="text-align: center">核心作用&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: center">&lt;code>argocd-server&lt;/code>&lt;/td>
&lt;td style="text-align: center">ArgoCD API 服务，提供 REST API、Web UI，处理认证鉴权&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">&lt;code>argocd-repo-server&lt;/code>&lt;/td>
&lt;td style="text-align: center">Git 仓库管理服务，缓存仓库代码、渲染 Helm/Kustomize 生成K8s清单&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">&lt;code>argocd-application-controller&lt;/code>&lt;/td>
&lt;td style="text-align: center">应用控制器，持续做状态比对，执行同步、健康检查&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">&lt;code>argocd-applicationset-controller&lt;/code>&lt;/td>
&lt;td style="text-align: center">ApplicationSet控制器，批量、模板化管理多环境/多集群 Application&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">&lt;code>argocd-redis&lt;/code>&lt;/td>
&lt;td style="text-align: center">缓存组件，存储仓库缓存、应用状态信息&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">&lt;code>argocd-dex-server&lt;/code>&lt;/td>
&lt;td style="text-align: center">可选，Dex 身份代理，对接OIDC、LDAP等外部身份源&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center">&lt;code>argocd-notifications-controller&lt;/code>&lt;/td>
&lt;td style="text-align: center">可选，通知控制器，同步状态变更推送至邮件、Slack、Webhook等&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h1 id="3-部署">3. 部署&lt;/h1>
&lt;p>部署前建议查阅&lt;a href="https://argo-cd.readthedocs.io/en/stable/operator-manual/installation/#supported-versions">官方版本兼容矩阵&lt;/a>，选择与K8s集群匹配的ArgoCD版本。&lt;/p></description></item></channel></rss>