详情页标题前

腾讯云容器服务安装 Nginx-ingress 实例同尘科技

详情页1

安装 NginxIngress 组件

1. 登录 容器服务控制台,选择左侧导航栏中的集群。2.集群管理页面,单击目标集群 ID,进入集群详情页。3. 选择左侧导航中的组件管理,在组件管理页面,单击新建。4.新建组件页面中勾选 NginxIngress。5. 单击完成即可安装组件。安装完成后,您可以在组件管理中查看组件详情。

注意事项

腾讯云负载均衡(Cloud Load Balancer)实例已于2023年03月06日升级了架构,升级后公网负载均衡以域名的方式提供服务。VIP 随业务请求动态变化,控制台不再展示 VIP 地址。请参见 域名化公网负载均衡上线公告。新注册的腾讯云用户默认使用升级后的域名化负载均衡。存量用户可以选择继续使用原有的负载均衡,不受升级影响。如果您需要升级负载均衡服务,则需要同时升级腾讯云产品 CLB 以及 TKE,否则 TKE 中的所有公网类型的 Service/Ingress 同步将可能受到影响。CLB 升级操作详情请参见 域名化负载均衡升级指南;TKE 升级 Service/Ingress 组件版本,请通过 在线咨询 联系我们。

安装方式

您可以根据不同的业务场景需求,使用以下几种安装方案在容器服务 TKE 中安装 Nginx-ingress。

方案1:通过 DaemonSet 形式在指定节点池部署(推荐)

Nginx 作为关键的流量接入网关,不建议您将 Nginx 与其他业务部署在相同的节点内。推荐您使用指定的节点池来部署 Nginx-ingress。部署架构如下图所示:

腾讯云容器服务安装 Nginx-ingress 实例同尘科技



安装步骤

说明使用此安装方式,您可以完整享有节点池快速扩缩容的能力,后续您只要调整节点池的数量,即可扩缩容 Nginx 的副本。1. 准备用于部署 Nginx-ingress 的节点池,同时设置污点 taint(防止其他 Pod 调度到该节点池)。部署节点池详情可参见 节点池相关说明。2. 在集群中 安装 NginxIngress 组件。3. 在集群信息页中,选择服务与路由 > NginxIngress,单击新增 Nginx Ingress 实例(一个集群内可以同时存在多个 Nginx)。

腾讯云容器服务安装 Nginx-ingress 实例同尘科技

4.新建 NginxIngress 中,选择部署选项中的指定DaemonSet节点池部署,并按需设置其他参数。如下图所示:

腾讯云容器服务安装 Nginx-ingress 实例同尘科技

节点池:配置节点池。Nginx 配置:Request 需设置比节点池的机型配置小(节点本身有资源预留)。Limit 可不设置。镜像版本说明

Kuberentes 版本范围 Nginx Ingress 组件支持安装的版本 Nginx 实例支持的镜像版本
<=1.18 1.1.0、1.2.0、1.3.0 v0.41.0、v0.49.3
1.0.0 v0.41.0
1.20 1.1.0、1.2.0、1.3.0 v1.1.3
1.0.0 v0.41.0
1.22、1.24 1.1.0、1.2.0、1.3.0 v1.1.3
1.26 1.3.0 v1.1.3、v1.6.4

说明1. 组件使用 EIP 说明:Nginx Ingress 组件 1.0.0 和 1.1.0 版本依赖腾讯云弹性公网 IP 服务(EIP),在 v1.2.0 版本中组件不再依赖 EIP,如果您有 EIP 使用限制的需求,建议您升级 Nginx Ingress 组件。组件的升级不影响存量的 Nginx Ingress 实例,对业务访问无影响,不影响数据安全。2. 升级说明:Nginx 实例的版本说明可参考 ingress-nginx 文档。升级集群可参考 升级集群操作步骤。升级 Nginx Ingress 组件可参考 组件升级操作步骤。5. 单击确定即可完成安装。

方案2:通过 Deployment + HPA 形式并指定调度规则部署

使用 Deployment + HPA 的形式部署 Nginx-ingress,您可以根据业务需要配置污点和容忍将 Nginx 和业务 Pod 分散部署。同时搭配 HPA,可设置 Nginx 根据 CPU / 内存等指标进行弹性伸缩。部署架构如下图所示:

腾讯云容器服务安装 Nginx-ingress 实例同尘科技



安装步骤

1. 准备用于部署 Nginx-ingress 的节点池,同时设置污点 taint(防止其他 Pod 调度到该节点池)。部署节点池详情可参见 节点池相关说明。2. 在集群中 安装 NginxIngress 组件。3. 在集群信息页中,选择服务与路由 > NginxIngress,单击新增Nginx Ingress实例(一个集群内可以同时存在多个 Nginx)。4. 在“新建 NginxIngress” 中,选择部署选项中的自定义Deployment+HPA 部署,并按需设置其他参数。如下图所示:

腾讯云容器服务安装 Nginx-ingress 实例同尘科技


自动伸缩:可以选择关闭 nginx 实例的自动伸缩。说明:当您手动删除 nginx-ingress 实例对应的 HPA 对象,平台 ApiServer 滚动更新或者 Nginx controller pod 重启,系统内部会再次对账,重新下发 HPA 对象。新下发的 HPA 可能会伸缩 Nginx controller pod 数量,对业务造成影响。当您需要关闭 HPA 时请通过此开关关闭 Nginx 实例的 HPA 功能。Nginx 配置:Request 需设置比节点池的机型配置小(节点本身有资源预留)。Limit 可不设置。节点调度策略:需自行指定。镜像版本说明:Kubernetes 为 1.20 及以下版本的集群,Nginx Ingress 组件版本为 1.0.0,Nginx 实例的镜像版本只能选择 v41.0。Kubernetes 为 1.20 及以下版本的集群,Nginx Ingress 组件版本为 1.1.0,Nginx 实例的镜像版本只能选择 v41.0, v49.3。Kubernetes 大于等于 1.22 版本的集群,Nginx Ingress 组件版本只支持 1.1.0, Nginx 实例的镜像版本只能选择 v1.1.3。说明版本说明:如果您需要了解 Nginx 实例的版本信息,请参见 ingress-nginx 文档。升级集群:如果您需要升级集群,请参见 升级集群操作步骤。升级 Nginx Ingress 组件:如果您需要升级 Nginx Ingress 组件,请参见 组件升级操作步骤。5. 单击确定即可完成安装。

方案3:Nginx 前端接入 LB 部署方式

仅部署 Nginx 在集群内将无法接收外部流量,还需配置 Nginx 的前端 LB。TKE 现已提供产品化的安装能力,您也可以根据业务需要选择不同的部署模式。

VPC-CNI 模式集群使用 CLB 直通 Nginx 的 Serivce(推荐)

如果您的集群是 VPC-CNI 模式的集群,推荐您使用 CLB 直通 Nginx 的 Serivce。下图为以节点池部署的负载示例。

腾讯云容器服务安装 Nginx-ingress 实例同尘科技


当前方案性能好,而且不需要手动维护 CLB,是最理想的方案。该方案需要集群支持 VPC-CNI,如果您的集群已配置 VPC-CNI 网络插件,或者已配置 Global Router 网络插件并开启了 VPC-CNI 的支持(两种模式混用),建议使用此方案。

Globalrouter 模式集群使用普通 Loadbalancer 模式的 Service

如果您的集群不支持 VPC-CNI 模式网络,您也可以通过常规的 Loadbalancer 模式 Service 接入流量。当前 TKE 上 LoadBalancer 类型的 Service 默认实现是基于 NodePort,CLB 会绑定各节点的 NodePort 作为后端 RS,将流量转发到节点的 NodePort,然后节点上再通过 iptables 或 ipvs 将请求路由到 Service 对应的后端 Pod。这种方案是最简单的方案,但流量会经过一层 NodePort,会多一层转发。可能存在以下问题:转发路径较长,流量到了 NodePort 还会再经过 k8s 内部负载均衡,通过 iptables 或 ipvs 转发到 Nginx,会增加一点网络耗时。经过 NodePort 必然发生 SNAT,如果流量过于集中容易导致源端口耗尽或者 conntrack 插入冲突导致丢包,引发部分流量异常。每个节点的 NodePort 也充当一个负载均衡器,CLB 如果绑定大量节点的 NodePort,负载均衡的状态会分散在每个节点上,容器导致全局负载不均。CLB 会对 NodePort 进行健康探测,探测包最终会被转发到 nginx ingress 的 Pod,如果 CLB 绑定的节点多,Nginx-ingress 的 Pod 少,会导致探测包对 Nginx-ingress 造成较大的压力。

使用 HostNetwork + LB 模式

控制台暂不支持,您可以手动修改 Nginx 工作负载的 Yaml 配置网络模式为 HostNetwork,手动创建 CLB 绑定 Nginx 暴露的节点端口。
需要注意使用 hostNetwork 时,为避免端口监听冲突,Nginx-ingress 的 Pod 不能被调度到同一节点。

TKE 安装 Nginx-ingress 默认参数

设置 Nginx-ingress 参数

您可以在 Nginx-ingress 组件详情页,Nginx 参数 tab 中选择 Nginx-ingress 实例进行 YAML 编辑。注意默认情况下配置参数不会重启 Nginx,生效时间有细微延迟。1. 登录 容器服务控制台,选择左侧导航栏中的集群。2. 在“集群管理”页面单击目标集群 ID,进入集群详情页。3. 选择左侧菜单栏中的组件管理,进入 “组件列表” 页面。4. 单击需要设置参数的组件右侧的更新Nginx配置,进入“Nginx配置”页面。5. 选择 Nginx Ingress 实例,并单击编辑YAML。6. 在“更新ConfigMap”页面进行编辑,单击完成即可配置参数。

配置参数示例

apiVersion: v1kind: ConfigMapmetadata:  name: alpha-ingress-nginx-controller  namespace: kube-systemdata:  access-log-path: /var/log/nginx/nginx_access.log  error-log-path: /var/log/nginx/nginx_error.log  log-format-upstream: $remote_addr - $remote_user [$time_iso8601] $msec "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] [$upstream_addr] [$upstream_response_length] [$upstream_response_time] [$upstream_status] $req_id  keep-alive-requests: "10000"  max-worker-connections: "65536"  upstream-keepalive-connections: "200"

注意请勿修改 access-log-path error-log-pathlog-format-upstream。若修改则会对 CLS 日志采集造成影响。若您需要根据业务配置不同的参数,可参见 官方文档。

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

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

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

相关推荐

  • 腾讯云TDSQL-C MySQL版修改账号权限

    您可以在控制台授权管理已有的数据库账号,可以对数据库账号授予全局特权或者对象级特权,同时您也可以取消其授权。 账号权限说明 权限 说明 ALTER 修改数据库中表的结构,包括修改表的字段、增加表字段、删除表字段、增加和删除表的索引等操作的权限。 ALTER ROUTINE 更改存储过程和函数等例程的权限。 CREATE 创建新的数据库、表、视图、存储过程、函…

    2023年12月9日
  • 腾讯云TDSQL-C MySQL版修改字符集

    字符集包括字符编码集和字符编码,可以简单理解为一个映射关系,一个编码规则。将字符集对应的码点映射为一个个二进制序列,从而使得计算机可以存储和处理。本文为您介绍如何通过控制台修改实例的字符集。说明:修改实例字符集会引起实例重启,建议在实例维护时间内修改。 操作步骤 在集群列表页,根据实际使用的视图模式进行操作:页签视图列表视图1. 登录 TDSQL-C MyS…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云人工智能平台PAI准备工作-云淘科技

    在使用灵骏智能计算服务前,您需准备好阿里云账号,并开通其他必要的云产品。本文为您介绍如何注册阿里云账号并完成其他准备工作。 背景信息 灵骏的账号登录体系与阿里云保持一致,统一采用阿里云账号或RAM用户登录的方式。 阿里云账号是阿里云资源的归属及使用计量计费的基本主体,负责生成本企业组织下的RAM用户,并对RAM用户进行管理、授权等操作。 RAM用户由阿里云账…

    阿里云人工智能平台PAI 2023年12月10日
  • 腾讯云负载均衡策略示例

    所有 CLB 的全读写策略 授权一个子账户以 CLB 服务的完全管理权限(创建、管理等全部操作)。策略名称:CLBResourceFullAccess { “version”: “2.0”, “statement”: [{ “action”: [ “name/clb:*” ], “resource”: “*”, “effect”: “allow” }]} 所…

    腾讯云 2023年12月9日
  • 腾讯云对象存储清单

    简介 本文档提供关于清单的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 PUT Bucket inventory 设置清单任务 设置存储桶的清单任务 GET Bucket inventory 查询清单任务 查询存储桶的清单任务 DELETE Bucket inventory 删除清单任务 删除存储桶的清单任务 设置清单任务 功能说明 PU…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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