详情页标题前

腾讯云容器服务Nginx 升级最佳实践同尘科技

详情页1

由于 Nginx Controller 各个版本支持的 Kubernetes 版本范围比较窄,所以用户会遇到 Nginx Controller 升级的相关问题。本文向您介绍通过新建实例实现过渡的方案,以帮助您顺利升级 Nginx Controller。

迁移升级示例

集群与 Nginx 实例相关信息

当前 Kubernetes 集群版本:1.20当前 Nginx Addon 版本:1.2.0(Nginx Addon 是 Nginx Controller 的安装工具,您可以在插件列表查看该插件与版本)当前 Nginx Controller 版本:v0.49.3(Nginx Controller 是实际运行的社区组件,您可以在 Nginx Controller 的工作负载中查询到镜像版本)当前 Nginx Ingress Class:prod-0-49-3说明:集群如果升级到 1.22,有许多旧版本的社区 CRD 定义被废弃,Nginx Controller 版本低于v1.0.0将无法正常工作。所以大部分用户在这个集群版本升级时,需要对 Nginx Controller 进行升级。

升级过程

安装新版本 Nginx Controller 实例

参考 Nginx 的安装文档,安装v1.1.3版本的 Nginx,同时建议开启日志、监控。假定文档中的新实例 Ingress Class 为 prod-1-1-3 安装新版本 Nginx Controller 实例之后。参考原实例配置,调整 Workload 规格或 HPA,避免新实例出现容量问题。

迁移 Ingress 资源

将所有旧 Nginx Controller 相关资源复制到新实例中。n这里以其中一个 Ingress 资源为例,说明迁移过程:

apiVersion: extensions/v1beta1kind: Ingressmetadata:  annotations:    kubernetes.io/ingress.class: prod-0-49-3  name: access  namespace: defaultspec:  rules:  - host: www.exsample.com    http:      paths:      - backend:          serviceName: access-server          servicePort: 8080        path: /        pathType: ImplementationSpecificstatus:  loadBalancer:    ingress:    - ip: 172.17.99.37

迁移注意事项:1. 请保留原有 Ingress 不变,复制一个新的 Ingress 实例。请确保实例名称不能出现冲突。2. 注意将新实例的 “kubernetes.io/ingress.class” 修改为 prod-1-1-3。3. 请注意从 Kubernetes 1.22 版本开始,“apiVersion: extensions/v1beta1”已被删除。升级到 Nginx 版本1.1.3的同时,请将资源升级到 “apiVersion: networking.k8s.io/v1”。4. 请注意,extensions/v1beta1 和 networking.k8s.io/v1 在 backend 内的字段格式有变化,您需要做出一定的调整。5. 在将资源添加到集群后,Nginx Controller 会自动更新 status 的内容并提供新的 IP 地址。

apiVersion: networking.k8s.io/v1kind: Ingressmetadata:  annotations:    kubernetes.io/ingress.class: prod-1-1-3  name: access-new  namespace: defaultspec:  rules:  - host: www.exsample.com    http:      paths:      - backend:          service:            name: access-server            port:              number: 8080        path: /        pathType: ImplementationSpecificstatus:  loadBalancer:    ingress:    - ip: 172.17.22.11

测试、流量切换与回滚方案

1. 在本地通过 Host 绑定进行测试:

172.17.22.11 www.exsample.com

2. 测试通过之后,您可以更新 DNS 解析至新的 IP,以验证新的入口访问是否正常。3. 如果在更新 DNS 解析配置后发现数据面流量异常,您可以通过回滚 DNS 解析配置的方式,将域名解析切换至旧实例,以恢复正常的流量。4. 直到流量切换操作之前,在新旧版本并行存在的期间,旧版本的 Nginx Ingress 实例不会有任何变更。新实例的创建和测试都不会受到影响,这是一个相对安全可控的升级方案。

清理资源

在全部流量迁移至新实例之后,您可以按照以下步骤进行清理:1. 可以先清理旧 Nginx Ingress 实例相关的 Ingress 资源。2. 在控制台中销毁 Nginx Ingress 实例。

相关文档

安装 Nginx-ingress 实例
容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/148451.html

(0)
上一篇 2023年12月9日 下午12:56
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云TDSQL-C MySQL版使用 DTS 服务迁移

    TDSQL-C MySQL 版可使用 数据传输服务 DTS 的数据迁移功能导入数据至 TDSQL-C MySQL 版,详情请参见 数据迁移。 官网1折活动,限时活动,即将结束,速速收藏同尘科技为腾讯云授权服务中心。购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

    腾讯云 2023年12月9日
  • 云效代码仓库是是否支持,象github那种,API文档或使用文档的展示?-云小二-阿里云

    云效代码仓库是是否支持,象github那种,API文档或使用文档的展示?

    阿里云 2023年12月20日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云容器服务设置工作负载的资源限制同尘科技

    请求(Request)与限制(Limit) Request:容器使用的最小资源需求,作为容器调度时资源分配的判断依赖。只有当节点上可分配资源量 >= 容器资源请求数时才允许将容器调度到该节点。但 Request 参数不限制容器的最大可使用资源值。nLimit: 容器能使用的资源最大值。更多 Limit 和 Request 参数介绍,单击 查看详情。 C…

    2023年12月9日
  • 腾讯云对象存储恢复归档对象

    简介 本文档提供关于恢复归档对象操作相关的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 POST Object restore 恢复归档对象 将归档类型的对象取回访问 恢复归档对象 功能说明 将归档类型的对象取回访问(POST Object restore)。 方法原型 public Guzzle\Service\Resource\Mod…

    腾讯云 2023年12月9日
  • 腾讯云对象存储图片质量评分

    功能描述 图片质量评估功能为同步请求方式,您可以通过本接口对图片文件进行检测,从多方面评估,最终给出综合客观的清晰度评分和主观的美观度评分。注意:本接口属于 GET 请求,为同步请求方式,需携带签名,具体签名设置请参见 请求签名。成功调用接口会产生 图片质量评估费用 和 COS 读请求费用。如果图片属于 COS 上的低频存储类型,成功调用接口会产生 COS …

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。