GitOps 是一种 DevOps 的解决方式,方法是以 Git 为中心,将应用程序、部属档案(如 Helm Chart )、基础架构即代码(如 Terraform ) 等所有所需资源全部都放入 Git 的 Repository 中进行管理,使用者只需要在 Git Repo 进行操作 (如 Push 、 Merge Requests ),部属环境就会根据 Git 的变动进行更新,透过 GitOps 会有以下好处
想了解更多的话,在 GitLab 的 What is GitOps? 文章中有更详细的介绍。
下图是一个 GitOps 流程的示范,开发者与维运人员只需操作 Git Repo ,就可以完成在 Kubernetes 的交付。
要建置 GitOps 环境的话, Git 的使用是少不了的,今天的任务很简单,就是建立好 GitLab 的 Repository 并将 App 以及 Manifest 档案上传,需要先准备好 GitLab 帐号。
这里的 App 指的是开发的应用程序,Manifest 则是指宣告 Kubernetes 元件的档案。
进入 GitLab 网站。
点击 New project
建立专案
Create blank project
Create Project
Webapp 的 Repository 就建立成功了。
接着使用同样操作,建立 Manifest 的 Repository
New project
建立专案Create blank project
後,输入以下资讯,完成後点击 Create Project
Manifest 的 Repository 也建立成功了。
App 会使用在 Day08 创建的 NodeJS Web App,Manifest 则是使用在 Day15 建置的 Helm Chart,还没准备的可以回去复习一下,准备好的就来把档案上传到 GitLab 上。
进入 Cloud Shell 网站,点击终端机输入指令。
设定 Git Config
git config --global user.name "user"
git config --global user.email "[email protected]"
cd ~/project
ls
(输出结果)
app.js dockerfile node_modules package.json package-lock.json
里面有如 node_modules
不须进入版本控制的档案,所以建立.gitignore
来避免传到 Repo 里。
.gitignore
档案cat > .gitignore <<EOF
.env
node_modules
npm-debug.log
EOF
git init
git add .
git commit -m "init"
Clone-> Clone with HTTPS
复制地址<your webapp repo>
修改成刚刚复制的地址git remote add origin <your webapp repo>
git push origin master
Enter
Username for 'https://gitlab.com':
Password for 'https://[email protected]':
在 webapp 的 GitLab Repo 网站重新整理,就可以看到档案上传成功。
接着使用同样方法,把 Manifest 资料也上传到 GitLab。
cd ~/webapp
ls
(输出结果)
charts Chart.yaml templates values.yaml
git init
git add .
git commit -m "init"
Clone-> Clone with HTTPS
复制地址<your webapp-manifest repo>
修改成刚刚复制的地址git remote add origin <your webapp-manifest repo>
git push origin master
Enter
Username for 'https://gitlab.com':
Password for 'https://[email protected]':
在 webapp-manifest 的 GitLab Repo 网站重新整理,就可以看到档案上传成功。
今天了建立 GitLab Repo ,为之後的教学做准备,在後几天的文章就会学习到如何使用 GitLab CI 来实现 GitOps 技术。
Mocks Service Worker 先来介绍一下msw,因为我们要模拟真实的环境不可能随时都使...
实务上,因应不同的开发阶段,应用程序会运行在开发环境 (Develop Environment)、预...
昨天有跟大家卖过关子说之後可能会为各位示范如何发送信件,大家应该都还蛮期待的吧!(应该有吧... 那...
厘清目标,选择合适的工具,事半功倍 当前两天决定使用从零建置个人网站 30 天领域展开最为题目的时候...
上一回我学到的是 Lua 的条件判断与回圈控制 今天我来看最後一段未解的程序码 for sPath ...