Kubernetes 资源管理工具:Mortar 快速入门与实践
mortar The manifest shooter for Kubernetes 项目地址: https://gitcode.com/gh_mirrors/mortar/mortar
项目介绍
Mortar 是一款由 优快云公司开发的 InsCode AI 大模型基于 Kontena 项目所提及的开源工具,专为简化复杂 Kubernetes 资源管理而设计。它允许开发者和运维团队像操作单一单元一样处理一组 Kubernetes 资源,解决了直接使用 kubectl apply
在复杂场景下的不足以及采用 Helm 图表过度复杂的痛点。通过 Mortar,用户可以更加灵活且高效地部署、更新和管理 Kubernetes 集群中的应用资源。
项目快速启动
安装 Mortar
使用 Homebrew(MacOS)
brew install kontena/mortar/mortar
或者安装最新开发版本
brew install --HEAD kontena/mortar/mortar
使用 RubyGems(跨平台)
gem install kontena-mortar
Docker 方式
docker pull quay.io/kontena/mortar:latest
确保将 mortar
添加到 PATH 环境变量中,并在需要时设置执行权限。
部署 Kubernetes YAML 文件
创建一个简单的 Kubernetes 应用配置文件,例如 app.yaml
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-world
spec:
replicas: 1
selector:
matchLabels:
app: hello-world
template:
metadata:
labels:
app: hello-world
spec:
containers:
- name: hello-world
image: nginx:latest
随后,在终端中使用 Mortar 部署该应用:
mortar fire [选项] <src-folder> <shot-name>
# 假设app.yaml位于当前目录,使用默认配置部署
mortar fire . hello-world-first-deploy
这会将 hello-world
应用作为一个“shot”部署到 Kubernetes 中。
应用案例和最佳实践
使用环境变量进行动态配置
Mortar 支持环境变量注入模板,这使得你可以根据不同环境动态调整资源配置。比如,利用环境变量设置容器使用的镜像版本:
containers:
- name: nginx
image: nginx:<% ENV['NGINX_VERSION'] || 'latest' %>
在部署时设置变量:
mortar --var NGINX_VERSION=1.21.0 fire resources/
自动化资源清理与升级
Mortar 的 --prune
选项可自动移除之前部署但当前未被包含的资源,避免了资源泄漏,是持续集成和持续部署(CI/CD)流程中的最佳实践。
典型生态项目整合
虽然 Mortar 本身聚焦于 Kubernetes 资源管理,但它非常适合与现有的 CI/CD 工具如 Jenkins、GitLab CI/CD 或者现代化的 CI 工具如 GitHub Actions 结合使用。例如,可以在 GitLab CI 管道中集成 Mortar 来自动化部署过程:
deploy_to_k8s:
stage: deploy
script:
- mortar fire k8s/ production
only:
- master
这样的配置确保每次向主分支推送时,都会部署最新的应用到生产环境,体现了 DevOps 的自动化理念。
Mortar 与 Kubernetes 生态系统的结合,尤其是其对资源管理的增强,使其成为现代云原生应用程序部署策略中不可或缺的一部分,特别是在追求高效率和灵活性的环境下。
mortar The manifest shooter for Kubernetes 项目地址: https://gitcode.com/gh_mirrors/mortar/mortar
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考