tarsdocs
  • Readme.md
  • CLA
  • LICENSE
  • 基础介绍
    • 简介
    • 基础概念
    • 基础通信协议 Tars
    • 统一通信协议 Tup
    • 开发模式介绍
    • 模板配置
    • 服务市场
    • 服务扩展
    • 框架版本说明
  • 开源版框架介绍
    • 开源版本部署
      • 部署总体介绍
      • Docker环境安装
      • Mysql安装
      • 框架源码部署(Linux/Mac)
      • 框架源码部署(Windows)
      • 框架Docker部署
      • 框架节点部署
      • 业务服务容器化
      • 框架K8SDocker 部署
      • 框架K8STARS 部署
      • 框架K8SFramework 部署(强烈推荐)
      • 框架更新及扩容
      • 调用链升级注意事项
      • TarsWeb-v3.0.3升级说明
    • 开源版管理平台
      • TarsWeb说明
      • web用户体系
      • web管理平台 API
  • 企业版本介绍
    • 企业版说明
    • 框架集群化机制
    • 框架单节点机制
    • 使用二进制包部署
    • 使用容器部署
    • 业务服务一主多备机制
    • 命令行控制终端
    • IP-LIST级联缓存机制
    • 多数据中心管理
    • 多网络支持
    • 第三方服务管理
    • 数据产生和管理机制
    • 密码重置
    • TarsPython介绍
  • 框架关键特性
    • 业务配置
    • 服务监控
    • 无损发布/重启
    • 调用链
    • IDC分组
    • 鉴权功能
  • TarsCPP
    • 编译
    • 快速开发入门
    • 使用指南
    • 开发规范
    • 服务线程说明文档
    • protobuf 协议支持文档
    • 第三方协议支持
    • HTTP1 支持
    • HTTP2 支持
    • TLS 通信支持
    • Push 功能说明
    • PushCallback 功能说明
    • Cookie 支持
    • 队列模式
    • 手动绑定
    • 性能数据
    • 2.x 版本变化
    • 3.x 版本变化
    • 协程版本说明
    • 基础类库说明
    • [案例]
      • 框架快速入门
      • Http 服务示例
  • TarsJava
    • 快速开始
    • 快速开发入门
    • [使用指南]
      • Tars 服务开发与上线
      • HTTP 服务开发与上线
      • 生成接口调用文件
    • [性能测试]
      • tars java 压测代码
  • TarsGo
    • 基本介绍
    • 快速开始
    • 使用指南
    • cmake 管理代码
    • pb2tarsgo
    • 性能数据
    • 使用示例
  • TarsPHP
    • 搭建 php 环境
    • 快速开发入门
    • [快速起步]
      • 搭建 HttpServer
      • 搭建 TimerServer
      • 搭建 TcpServer
      • 搭建 WebSocketServer
      • 弹幕活动实战
    • [框架简介]
      • 简介
      • tars-server
      • tars-client
      • tars-config
      • tars-deploy
      • tars-extension
      • tars-log
      • tars-monitor
      • tars-registry
      • tars-report
      • tars-utils
      • tars2php
    • [高阶应用]
      • PHP 的 Swoole 框架如何接入 Tars
      • 与 thinkphp 结合使用
      • 与 Swoft 结合使用
      • 与 Laravel 结合使用
      • 与 Yii2 结合使用
      • 持续集成方案
    • [其他]
      • 常见问题
      • 如何 Debug
      • changelog
      • 其他外部文档
  • Tars.js
    • 基本介绍
    • 脚手架
    • 快速开发入门
    • @tars/stream
    • @tars/rpc
    • @tars/logs
    • @tars/config
    • @tars/monitor
    • @tars/notify
    • @tars/utils
    • @tars/dyeing
    • @tars/node-agent
    • @tars/winston-tars
    • tars2node
  • K8SFramework
    • [安装和使用说明]
      • 介绍
      • 特性
      • 安装
      • 升级
      • 云原生运维
      • 管理平台
      • 证书
    • [开发环境构建]
      • Dockerfile 说明
      • 服务发布流程说明
      • 制作基础编译镜像
      • 制作业务服务镜像
      • 制作 Helm 包
      • 发布业务镜像到 K8S 集群
      • 服务发布示例
      • 如何调试业务服务
  • 服务扩展
    • 云告警
    • 接口及压测工具
    • 网关服务
    • dcache缓存服务
    • 发送邮件服务
    • 一致性存储服务
    • 一致性存储web管理平台
    • 唯一计数服务
  • 常见问题
    • 安装常见问题
    • Issues
    • Issues-tarscpp
    • Issues-tarsjava
    • Issues-tarsgo
    • Issues-tarsphp
  • 开源合作
    • TarsFramework 项目 Git 合作规范
  • 直播视频
    • B 站 TARS 培训系列课程
  • 相关文章
    • TARS 技术文章
  • 其它资源分享
    • 下载
    • Tars 介绍.pptx
    • TarsPHP 解密.pdf
    • TarsJava 本地调试.pdf
    • 微服务在腾讯的业务实践.pptx
Powered by GitBook
On this page
  • 目录
  • 升级
  • 版本与兼容性计划
  • 获取HelmChart
  • 升级Controller
  • 升级Framework

Was this helpful?

  1. K8SFramework
  2. [安装和使用说明]

升级

Previous安装Next云原生运维

Last updated 2 years ago

Was this helpful?

目录

升级

版本与兼容性计划

从版本 1.3.2 开始, 我们制定了全新的版本与兼容性规则 不兼容的升级可能对给您的业务带来损失, 我们强烈建议您在执行升级操作前阅读和理解版本与兼容性规则

版本格式

TarsCloud K8SFramework 在发布 Helm Chart 时,采用与 Kubernetes 相同格式的版本. 具体为: "主版本号.次版本号.修订号-附注说明", 其中附注说明为可选项.

版本规则

  1. 根据最高 CRD Version 生成 项目主版本号与次版本号, 比如: 最高 CRD Version 为 v1beta3 时, 主版本号为 "1" , 次版本号为 "3" 最高 CRD Version 为 v2beta1 时,主版本号为 "2" , 次版本号为 "1"

  2. 修订号与附注在发布时酌情定义

  3. 主版本号,次版本号,修订号按整数升序发布

兼容性规则

TarsCloud K8SFramework 提供最多三个"主版本.次版本"的兼容性保证.具体规则为

  1. 相同的 "主版本.次版本", 提供兼容性保证

  2. 当 "次版本" == 0 时, 提供前一主版本的最新两个次版本的兼容性保证

  3. 当 "次版本" == 1 时, 提供前一主版本的最新一个次版本,同主版本的最新一个次版本的兼容性保证

  4. 当 "次版本" >=2 时, 提供同主版本的最新两个次版本的兼容性保证

兼容性检测

  1. 升级 Controller 时, 请确保待升级的 Controller 版本能兼容已安装的 Framework 版本

  2. 升级 Framework 时, 请确保已安装的 Controller 版本能兼容待升级的 Framework 版本

  3. 降级 Framework 时, 请确保已安装的 Controller 版本能兼容待降级的 Framework 版本

  4. 降级 Controller 可能导致不可预知的问题, 我们不建议您对 Controller 执行降级操作 不满足兼容性规则的 升/降级操作 可能导致 framework 程序运行错误, 甚至 crd 对象丢失

获取HelmChart

TarsCloud K8SFrameWork 的正式发布版本包含 Controller 和 Framework 两种 Helm Chart 其包名分别为 tarscontroller-${Vesion}.tgz , tarsframework-${Version}.tgz 您可以选择如下任意一种方式获取 TarsCloud K8SFramework 正式发布的 Helm Chart:

  • 直接下载

  • Helm Repo

    您可以 添加 tars-k8s repo, 然后在需要时通过 helm 指令来获取 TarsCloud K8SFramework 正式发布的 Helm Chart

    helm repo add tars-k8s https://tarscloud.github.io/K8SFramework/charts # 添加 tars-k8s repo
    helm repo update tars-k8s                                              # 更新 tars-k8s repo 索引
    helm search repo tars-k8s -l                                           # 查看 tars-k8s repo 索引

升级Controller

确认Framework兼容性

升级 Controller 前, 请您确保待安装的 Controller 能兼容当前已安装的 Framework 不兼容的升级可能导致 Framework 启动失败或者 CRD 对象丢失 您可以执行如下命令查看当前安装了哪些 Framework 版本

helm list -f tarsframework -A

您可以看到如下输入内容:

NAME           NAMESPACE REVISION  UPDATED                       STATUS   CHART                APP VERSION
tarsframework  tars      1        2022-06-01 11:09:09.034451845 deployed tarsframework-1.3.2  v1beta3  

CHAT 参数即代表了您已安装的 Framework 版本

升级CRD

如果您意图跨越 "主版本.次版本" 升级 Controller, 或者您使用的是 1.3.2 以前的版本 Controller, 则需要先升级 CRD 定义 您可以执行如下命令查看当前安装的 Controller 版本

helm list -f tarscontroller -A

您可以看到如下输入内容:

NAME           NAMESPACE   REVISION  UPDATED                       STATUS   CHART                 APP VERSION
tarscontroller tars-system 1         2022-06-01 11:09:09.034451845 deployed tarscontroller-1.3.2  v1beta3  

CHAT 参数即代表了您已安装的 Controller 版本 您可以按如下步骤 升级 CRD 定义:

  1. 如果您通过 Helm Repo 获取 Helm Chart ,则需要先将 Chart 拉取到本地

    helm repo update tars-k8s                                              # 更新 tars-k8s repo 索引
    helm search repo tars-k8s -l                                           # 查看 tars-k8s repo 索引
    helm pull tars-k8s/tarscontroller --version ${Version}                 # 下载指定版本的 helm chart 

    如果您是通过源码构建的的 Helm Chart ,默认情况下,包位于 charts 目录下

  2. 解压 Helm Chart 包

    # 您需要将 ${Version} 替换成实际 版本号
    tar zxvf tarscontroller-${Version}.tgz
  3. 安装 CRD

    kubectl apply -f tarscontroller/crds

安装Controller

如果您是通过 "直接下载" 或者 "源码构建" 方式获取的 Helm Chart, 执行如下命令:

# 您需要将 ${Version} 替换成实际 版本号
helm upgrade tarscontroller tarscontroller-${Version}.tgz

如果您是通过 Helm Repo 方式获取 Helm Chart, 执行如下命令:

# 您需要将 ${Version} 替换成实际 版本号
helm repo update tars-k8s                                              # 更新 tars-k8s repo 索引
helm search repo tars-k8s -l                                           # 查看 tars-k8s repo 索引
helm upgrade tarscontroller tars-k8s/tarscontroller --version=${Version}

等待Controller启动

您可以使用如下命令查看 controller pod 启动详情 :

kubectl get pods -n tars-system -o wide

升级Framework

确认Controller兼容性

升级 Controller 前, 请您确保已安装的 Controller 能兼容当前待安装的 Framework 不兼容的升级可能导致 Framework 启动失败或者 CRD 对象丢失 您可以执行如下命令查看当前安装的 Controller 版本

helm list -f tarscontroller -A

您可以看到如下输入内容:

NAME           NAMESPACE   REVISION  UPDATED                       STATUS   CHART                 APP VERSION
tarscontroller tars-system 1         2022-06-01 11:09:09.034451845 deployed tarscontroller-1.3.2  v1beta3  

CHART 值 即为当前已安装的 Controller 版本

生成Framework配置文件

新建 tarsframework.yaml 文件, 按说明填充值

# TarsCloud K8SFramework 内置了镜像编译服务,可以将您的原生程序包编译成 Docker镜像,请将您准备镜像仓库地址填充到 upload.registry
# 如果您的镜像仓库地址需要账号密码认证,那就需要新建一个 Kubernetes docker-registry secret,并将 secret 名字填充到 upload.secret
# 新建 docker-registry secret 的指令为: kubectl create secret docker-registry ${secret-name} -n ${namespace} --docker-server=${registry} --docker-username=${user} --docker-password=${pass}
upload:
  registry: ""
  secret: ""

# 如果您的 Kubernetes 集群安装了 Ingress, 可以通过此域名访问 TarsCloud K8SFramework 管理平台
web: ""

安装Framework

如果您是通过 "直接下载" 或者 "源码构建" 方式获取的 Helm Chart, 请执行如下命令:

# 您需要将 ${Namespace} 替换成实际 命名空间
# 您需要将 ${Version} 替换成实际 版本号
helm upgrade tarsframework -n ${Namespace} --create-namespace -f tarsframework.yaml tarsframework-${Version}.tgz

如果您是通过 Helm Repo 方式获取 Helm Chart, 请执行如下命令:

# 您需要将 ${Namespace} 替换成实际 命名空间
# 您需要将 ${Version} 替换成实际 版本号
helm repo update tars-k8s                                              # 更新 tars-k8s repo 索引
helm search repo tars-k8s -l                                           # 查看 tars-k8s repo 索引
helm upgrade tarsframework -n ${Namespace} --create-namespace -f tarsframework.yaml tars-k8s/tarsframework --version=${Version}

等待Framework启动

您可以执行如下命令查看 Framework 服务的 Pod 启动状态:

kubectl get pods -n ${namespace} -o wide

您可以在 查看并下载 TarsCloud K8SFramework 正式发布的 Helm Chart

您也可以参考 <<>>文档的 构建目标.Chart 节, 自行从源码构建 Chart 包 默认情况下构建出的 Helm Chart 包位于 charts 目录, 版本格式为 "主版本.次版本.0-master" 如果您在源码构建时 修改了CHAR_VERSION , CRD 定义等, 则需要您自行保证兼容性

github
构建
升级
版本与兼容性计划
版本格式
版本规则
兼容性规则
兼容性检测
获取 Helm Chart
升级 Controller
确认Framework兼容性
升级 CRD
安装 Controller
等待 Controller 启动
升级 Framework
确认Controller兼容性
生成Framework配置文件
安装Framework
等待Framework启动