K8SFramework

目录

升级

兼容性

TarsCloud K8SFrameWork 每次发布都会有相同版本号的 Controller 和 Framework 两个 Helm Chart
版本号格式为: “主版本号.次版本号.修订号-附注说明”.

为了直观说明安装、升级 “Controller”,”Framework” 时的兼容性情况, 我们制定了基于版本号的兼容性规则:

  1. 兼容性规则只与 “主版本号码”,”次版本号” 相关
  2. 当 “次版本” == 0 时, 提供前一主版本的最新两个次版本的兼容性保证
  3. 当 “次版本” == 1 时, 提供前一主版本的最新一个次版本,同主版本的最新一个次版本的兼容性保证
  4. 当 “次版本” >= 2 时, 提供同主版本的最新两个次版本的兼容性保证.

你在执行各项升降级操作前,请先执行如下兼容性检查,
不兼容的升级可能造成您的业务服务中断,业务数据丢失

  1. 升级 Controller 时, 请检查待升级的 Controller 版本是否兼容已安装的 Controller 版本
  2. 升级 Controller 时, 请检查待升级的 Controller 版本是否兼容已安装的 Framework 版本
  3. 升级 Framework 时, 请检查已安装的 Controller 版本是否兼容待升级的 Framework 版本
  4. 降级 Framework 时, 请检查已安装的 Controller 版本是否兼容待降级的 Framework 版本
  5. 降级 Controller 可能导致不可预知的问题, 我们不建议您对 Controller 执行降级操作

获取HelmChart

您可以选择如下一种方式:

升级Controller

检查Framework兼容性

您可以执行如下指令查看当前安装了哪些 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 版本

检查Controller兼容性

您可以执行如下指令查看当前安装了哪些 Controller 版本

helm list -f tarscontroller -A

您可以看到如下输出:

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

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

执行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常见问题»

kubectl get pods -n tars-system -o wide

升级Controller常见问题

我们列举了在升级 Controller 过程中常见故障,您可以参照处理

升级Framework

检查Controller兼容性

您可以执行如下指令查看当前安装的 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