news 2026/7/17 9:14:30

Shipper部署完全手册:从单集群测试到全球多区域生产环境

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Shipper部署完全手册:从单集群测试到全球多区域生产环境

Shipper部署完全手册:从单集群测试到全球多区域生产环境

【免费下载链接】shipperKubernetes native multi-cluster canary or blue-green rollouts using Helm项目地址: https://gitcode.com/gh_mirrors/sh/shipper

Shipper是一款基于Kubernetes的原生多集群部署工具,支持金丝雀发布和蓝绿部署策略,通过Helm实现应用的跨集群管理。本指南将帮助你从本地测试环境到全球多区域生产环境,一步步完成Shipper的部署与配置,轻松掌握多集群应用发布的核心技能。

准备工作:环境与工具要求 🛠️

在开始部署Shipper前,请确保你的环境满足以下要求:

  • Kubernetes版本:1.17或更高版本
  • 集群权限:拥有集群管理员权限(如GKE需要绑定cluster-admin角色)
  • 工具依赖
    • kubectl:用于与Kubernetes集群交互
    • shipperctl:Shipper的命令行工具
    • 容器运行时:Docker Desktop、Kind、MicroK8s或Minikube(本地测试)

本地测试环境快速搭建

对于新手用户,推荐使用Kind(Kubernetes IN Docker)创建本地集群。项目提供了便捷的集群配置脚本:

# 创建管理集群和应用集群 $ kind create cluster --name mgmt --config ci/kind.yaml --image kindest/node:v1.15.7 $ kind create cluster --name app --config ci/kind.yaml --image kindest/node:v1.15.7

配置文件路径:ci/kind.yaml

部署步骤:从单集群到多区域 🌐

步骤1:获取shipperctl工具

shipperctl是自动化集群配置的核心工具,可从项目发布页面下载对应操作系统的二进制文件:

# 示例:下载并安装shipperctl(请替换为最新版本链接) $ curl -LO https://github.com/bookingcom/shipper/releases/latest/download/shipperctl-linux-amd64.tar.gz $ tar -zxvf shipperctl-linux-amd64.tar.gz $ sudo mv shipperctl /usr/local/bin/

步骤2:配置集群清单

创建clusters.yaml文件定义集群信息,包括名称、区域和API地址。首先获取应用集群的内部API地址:

$ kind get kubeconfig --name app --internal | grep server

然后编写配置文件:

# clusters.yaml applicationClusters: - name: kind-app region: local apiMaster: "https://172.18.0.3:6443" # 替换为实际API地址

配置示例路径:ci/clusters.yaml

步骤3:初始化管理集群

切换kubectl上下文至管理集群,执行初始化命令:

# 确认当前上下文 $ kubectl config get-contexts $ kubectl config use-context kind-mgmt # 部署管理集群资源 $ shipperctl clusters setup management -n shipper-system

此命令将创建:

  • 命名空间(shipper-systemrollout-blocks-global
  • 服务账户与RBAC权限
  • 自定义资源定义(CRDs)
  • 验证Webhook配置

步骤4:部署Shipper控制器

使用项目提供的部署清单在管理集群中部署Shipper:

$ kubectl create -f https://github.com/bookingcom/shipper/releases/latest/download/shipper.deployment.yaml

部署文件路径:kubernetes/base/shipper.deployment.yaml

步骤5:加入应用集群

通过shipperctl将应用集群注册到管理集群:

$ shipperctl clusters join -f clusters.yaml -n shipper-system

步骤6:验证部署状态

检查管理集群中的Shipper Pod状态:

$ kubectl get pods -n shipper-system NAME READY STATUS RESTARTS AGE shipper-7f9b6d8c6d-2x4zv 1/1 Running 0 5m

生产环境进阶配置 🚀

多区域集群部署

对于生产环境,需配置跨区域集群。修改clusters.yaml添加多个区域:

applicationClusters: - name: us-east-1 region: us-east apiMaster: "https://<us-east-api>" - name: eu-west-1 region: eu-west apiMaster: "https://<eu-west-api>"

高可用配置

通过Kustomize覆盖默认配置,实现多副本部署:

# 使用生产环境覆盖配置 $ kubectl apply -k kubernetes/overlays/release

配置路径:kubernetes/overlays/release/kustomization.yaml

监控与 metrics

部署Shipper状态指标采集器:

$ kubectl apply -f kubernetes/base/shipper-state-metrics.deployment.yaml

源码路径:cmd/shipper-state-metrics/main.go

常见问题与解决方案 ❓

命名空间同步问题

Shipper不会自动创建应用集群中的命名空间,需确保管理集群与应用集群的命名空间一致。推荐使用命名空间管理工具,如:

# 示例:在应用集群创建命名空间 $ kubectl --context kind-app create namespace my-app

集群通信故障

检查API服务器地址是否正确,可通过以下命令验证:

$ shipperctl clusters verify -f clusters.yaml

版本兼容性

确保所有集群使用兼容的Kubernetes版本,项目测试支持的版本列表可参考:docs/intro/shipper.rst

下一步:开始你的第一次发布 🎉

完成部署后,可参考官方示例进行应用发布:

# 应用示例配置 apiVersion: shipper.booking.com/v1alpha1 kind: Application metadata: name: my-app spec: chart: repository: https://charts.example.com/ name: my-app version: 1.0.0

示例路径:crd/examples/application.yaml

通过本指南,你已掌握从单集群测试到多区域生产环境的Shipper部署全流程。如需深入学习高级功能,可查阅:

  • 官方文档:docs/index.rst
  • 发布策略:docs/user/charts.rst

【免费下载链接】shipperKubernetes native multi-cluster canary or blue-green rollouts using Helm项目地址: https://gitcode.com/gh_mirrors/sh/shipper

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 9:14:25

3分钟快速上手:免费生成逼真中国车牌的完整教程

3分钟快速上手&#xff1a;免费生成逼真中国车牌的完整教程 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 还在为车牌识别项目缺乏训练数据而烦恼吗&#xff1f;这款…

作者头像 李华
网站建设 2026/7/17 9:13:40

计算机毕业设计之基于springboot的游戏账号交易系统

随着新世纪无纸化办公方式的普及&#xff0c;自动化信息处理和基于网络的信息交互方式已被广泛应用。现在很多行业基本上都是交由计算机进行管理和测试&#xff0c;网络与计算机已成为整个线上管理体系中的重要组成部分。虽然信息技术广泛应用和数据存取更加方便&#xff0c;但…

作者头像 李华
网站建设 2026/7/17 9:13:15

FPGA视频处理入门:HDMI彩条实验与紫光盘古22K开发

1. 紫光盘古22K开发套件与HDMI彩条实验概述 紫光同创作为国产FPGA的重要供应商&#xff0c;其盘古系列开发套件为工程师和学生提供了优质的国产FPGA学习平台。本次实验使用的盘古22K开发板搭载PGL22G芯片&#xff0c;是一款面向中低密度应用的FPGA器件&#xff0c;具有22K逻辑单…

作者头像 李华
网站建设 2026/7/17 9:11:58

开源项目实现大模型Token免费调用方案解析

1. 开源项目如何实现大模型Token免费调用最近发现一个特别有意思的开源项目&#xff0c;它让我每个月都能免费调用14个顶级大模型的API&#xff0c;总共能获得13亿Token的额度。这个数字听起来可能有点夸张&#xff0c;但经过我两个月的实测&#xff0c;确实能够稳定实现。今天…

作者头像 李华
网站建设 2026/7/17 9:11:11

人形机器人视觉系统:从感知到具身认知的技术闭环

1. 人形机器人不是“会走路的铁疙瘩”&#xff0c;而是需要视觉中枢的活体系统最近刷到不少短视频&#xff1a;一个金属骨架的人形机器人在展厅里稳步行走、挥手致意&#xff0c;甚至能接住抛来的球。评论区一片惊叹&#xff0c;“中国智造太强了”“科幻照进现实”。但我在实验…

作者头像 李华