首页
学习
活动
专区
圈层
工具
发布
首页标签容器服务

#容器服务

高可扩展和高性能容器管理服务

TKE 滚动更新时,如何让 CLB 摘流与长请求结束可靠衔接?

核心在于“优雅退出”而非硬切。CLB 本身不感知 Pod 状态,必须靠 K8s 配合: 配置 TerminationGracePeriodSeconds在 Deployment spec 中设为比最大长请求耗时更长的值(比如业务接口上限是 60s,这里设 90s)。这样 Kubelet 收到 SIGTERM 后不会立即杀进程,而是留出缓冲期。 Hook 联动 CLB 摘流。使用 preStop hook 发送 curl 命令调用 CLB 接口或修改后端权重,将当前 Pod 流量清零。关键点是 Hook 执行与 Grace Period 并行,确保在 Hook 完成前,应用仍有时间处理已建立的连接。 应用层平滑关闭。代码里监听 SIGTERM,停止接受新请求,但允许现有请求处理完毕后再退出。如果用了 Nginx Ingress,还要确保它配置了 proxy_next_upstream 或不强制断开长连接。 别信什么“秒级切换”,网络延迟和连接复用是客观存在的。只有给足缓冲窗口,让老连接自然断开,新请求自然导走,才算靠谱。 官方详细解决方案:https://cloud.tencent.com/product/clb... 展开详请

TKE 集群中 Pod 访问 CLB 内网地址偶发超时,应如何排查?

GavinGengai学习
先给结论:Pod 访问 CLB 内网地址偶发超时,我一般先怀疑三样——CLB 后端健康状态、安全组、还有节点的 conntrack 表,而不是先去怪 Pod 本身。偶发、非稳定复现,恰恰是这几个外部因素的特征。 讲一个我真实遇到的场景:Pod 通过内网 CLB 地址访问一个下游服务,白天业务高峰期偶发超时,半夜几乎不出现。最后查下来是两个问题叠加——一台 CLB 后端实例健康检查边缘抖动,流量被轮询到那台上就超时;同时 Pod 出方向没做固定 egress IP,CLB 的安全组是按客户端 IP 白名单放的,Pod IP 一漂移,部分请求直接被安全组丢。 按这个顺序排查最省时间: 第一,看 CLB 控制台的后端健康检查,重点盯有没有"不健康→恢复"的抖动记录。然后用 kubectl exec 进 Pod,对 CLB 地址连续 curl 几百次,看超时是不是集中在某一台后端上,能很快定位是不是单点后端的问题。 第二,确认 CLB 和 Pod 是不是在同一个 VPC、同一个子网。跨 VPC 走内网 CLB 是需要对等连接或者私网连接的,路由表没配全会偶发不通,表现为时好时坏。 第三,安全组两端都要看:Pod 的出方向、CLB 的入方向都要放行。尤其 Pod 没有固定出网 IP、用了随机源端口时,CLB 那侧的安全组白名单特别容易漏掉一部分 Pod。 第四,conntrack 表满也是个经典坑。短连接高并发下,节点 net.netfilter.nf_conntrack_count 接近上限时,新连接的 SYN 会被静默丢弃,外部看就是偶发超时。这个在节点上一条命令就能看,别只盯着应用日志。 第五,也别忽略 DNS。Pod 里解析 CLB 域名走 CoreDNS,如果解析偶发慢,表现一样是"访问超时"。可以先 curl IP 直连,能通就说明问题在 DNS 不在网络。 我现在养成了习惯,遇到这类偶发超时,先把 CLB 后端健康、安全组、conntrack 这三样当默认嫌疑过一遍,再去翻应用层日志,少走了很多弯路。 你这个超时是集中在某个时间段,还是完全随机?如果是业务高峰才出现,我更倾向先查后端健康抖动和 conntrack。... 展开详请
先给结论:Pod 访问 CLB 内网地址偶发超时,我一般先怀疑三样——CLB 后端健康状态、安全组、还有节点的 conntrack 表,而不是先去怪 Pod 本身。偶发、非稳定复现,恰恰是这几个外部因素的特征。 讲一个我真实遇到的场景:Pod 通过内网 CLB 地址访问一个下游服务,白天业务高峰期偶发超时,半夜几乎不出现。最后查下来是两个问题叠加——一台 CLB 后端实例健康检查边缘抖动,流量被轮询到那台上就超时;同时 Pod 出方向没做固定 egress IP,CLB 的安全组是按客户端 IP 白名单放的,Pod IP 一漂移,部分请求直接被安全组丢。 按这个顺序排查最省时间: 第一,看 CLB 控制台的后端健康检查,重点盯有没有"不健康→恢复"的抖动记录。然后用 kubectl exec 进 Pod,对 CLB 地址连续 curl 几百次,看超时是不是集中在某一台后端上,能很快定位是不是单点后端的问题。 第二,确认 CLB 和 Pod 是不是在同一个 VPC、同一个子网。跨 VPC 走内网 CLB 是需要对等连接或者私网连接的,路由表没配全会偶发不通,表现为时好时坏。 第三,安全组两端都要看:Pod 的出方向、CLB 的入方向都要放行。尤其 Pod 没有固定出网 IP、用了随机源端口时,CLB 那侧的安全组白名单特别容易漏掉一部分 Pod。 第四,conntrack 表满也是个经典坑。短连接高并发下,节点 net.netfilter.nf_conntrack_count 接近上限时,新连接的 SYN 会被静默丢弃,外部看就是偶发超时。这个在节点上一条命令就能看,别只盯着应用日志。 第五,也别忽略 DNS。Pod 里解析 CLB 域名走 CoreDNS,如果解析偶发慢,表现一样是"访问超时"。可以先 curl IP 直连,能通就说明问题在 DNS 不在网络。 我现在养成了习惯,遇到这类偶发超时,先把 CLB 后端健康、安全组、conntrack 这三样当默认嫌疑过一遍,再去翻应用层日志,少走了很多弯路。 你这个超时是集中在某个时间段,还是完全随机?如果是业务高峰才出现,我更倾向先查后端健康抖动和 conntrack。

harbor首次安装提示用户名或者密码不正确?

TKE的超级节点和使用CVM做节点的价格哪个划算?

AI 威分享出海,AI 工具赛道经验,Aniv AI 漫剧工坊作者
已采纳

cvm 按照 2核cpu 4G内存 来计算,超级节点是不是最低只能买10核?这样算下来不划算

CPU Share

已采纳
假设一个机器上运行多个容器,多个容器是如何分配资源的?您需要了解 CPU Shares 的概念。 CPU Shares 是属于一项 Linux Control Groups(cgroup)的特性,CPU Shares 控制容器中的进程可以使用的 CPU time。 CPU time 是 CPU 用于处理计算机程序或操作系统的指令的时间量,不是实际日常生活中的时间概念。例如进程进入中断、挂起、休眠等行为时,CPU time 不会增加,但进程恢复运行后 CPU time 会从中断前的时间点继续增加。... 展开详请

CPU Quota

已采纳
CPU Quota 是用来限制容器的资源使用上限,即使一个节点资源还有剩余量,但容器依旧无法使用超过 CPU Quota 的数值。 Kubernetes 的 Request/Limit 是由 CPU Share 和 CPU Quota 来实现的。但 Request 还有更多的含义: 没有 Request 的 Pod 可以调度到任意节点,因为任意节点的剩余可调度资源都满足该 Pod 要求。但是在发生竞争时,它将不会获得任何的资源,此时 Pod 可能会无限期地缺乏资源。 在终端里创建一个可以交互的 busybox Pod: 在交互栏里使用如下命令让该 Pod 可以用满当前节点上空闲的 CPU 和内存: 在另一终端里查看当前 Pod 的资源用量 可以看出,当前 busybox Pod 的 CPU 和内存的资源用量都大于 Request。但理论上因为 busybox 运行的是无限循环的程序,应该会把所有的 CPU 都消耗完才对,为什么只消耗了460m?因为此时集群中还有其他的 Pod 和进程,它们都会通过 CPU Share 彼此竞争集群中的 CPU 资源。... 展开详请

注册节点脚本安装过程中报错中断如何处理?

已采纳
说明:NVIDIA-SMI 驱动未安装。 解决方法: 说明:节点 gpu 容器能力初始化失败。 解决方法:... 展开详请

注册节点的容器如何对外暴露服务?

已采纳

基于腾讯负载均衡 CLB,我们提供了注册节点的四层以及七层的流量接入方案,请参考 流量接入。

注册节点的日志如何接入日志服务 CLS ?

已采纳

TKE 集群日志接入 CLS 后,默认支持集群中的注册节点,无需特殊配置。TKE 集群日志接入 CLS,请参考 日志采集,集群中的注册节点默认使用内网的方式(会占用专线带宽) 进行日志投递。

如需要注册节点使用公网的方式投递日志,请按照如下步骤操作:

注册节点如何接入 Prometheus 监控服务?

已采纳

TKE 集群 Prometheus 监控服务,默认支持集群中的注册节点,无需特殊配置。TKE 接入 Prometheus 监控服务请参考 Prometheus监控概述。

注册节点和云上节点在能力上有哪些差异?

注册节点支持哪些操作系统?

节点上由于 docker、containerd 相关软件导致添加节点失败,如何处理?

已采纳

可以使用下载的脚本,执行以下清理的指令,再进行添加。

使用注册节点特性,为什么要求集群内必须要存在云上节点?

已采纳

由于注册节点所在网络与 VPC 网络的差异性,目前集群内部分系统组件必须运行在云上节点,所以当前要求集群内必须存在云上节点。

节点 cpu/memory 分配量为什么会超出节点资源规格?

已采纳
原因:node 层级的 cpu/memory 分配量指标依赖节点上各个 pod 的 cpu/memory request 来计算,在计算时没有把 failed 的 pod 排除。 示例:节点规格是 4c8g,节点上目前运行3个 pod(资源 request 用量如下): 此时节点剩余可调度资源为 4-2-1=1c、8-4-2=2g,pod4 request 为 0.8c1.5g,满足调度器筛选,正常被调度到该节点上。此时节点上共4个 pod,3个正常1个异常,此时 node 层级的分配量为 4.3c8.5g(因计算时没有把 failed 的 pod 排除,因此超过了节点规格)。 该问题已在5月新版本中修复,即计算 node 资源分配量已把异常 pod 排除。... 展开详请

为什么 pod 状态显示正常,但监控指标 k8s_workload_abnormal 展示异常?

已采纳

原因:该指标根据 workload 下 pod 是否异常来判断,pod 是否异常取决于 pod.status.condition 下这四个 Type 来确定。当这四个指标同时为True时k8s_workload_abnormal才会认为是正常,否则认为是异常。

daemonSet tke-monitor-agent 报错原因总结

将腾讯云 DNS Nameserver 配置为自建 DNS 的上游

已采纳
建议将 /etc/resolv.conf 配置中的 nameserver 添加到自建 DNS 服务器的上游,因为部分服务依赖腾讯云内部 DNS 解析,如果未将其设为自建 DNS 的上游,可能导致部分服务无法正常工作。本文以 BIND 9 为例修改配置文件,将上游 DNS 地址写入 forwarders 中,示例如下: 完成上述操作后的 24 小时内,节点初始化流程的自动重试策略会不断尝试执行节点初始化工作直到解析到腾讯云官方资源库;超过 24 小时后,需要用户删除节点重新创建。若上述解决措施不生效,请 提交工单 来寻求帮助。... 展开详请

如何强制调度 Pod 到按量计费超级节点,无论按量计费超级节点是否支持该 Pod?

已采纳

如需强制调度 Pod 到按量计费超级节点,除了为 Pod 指定 nodeselector 或 nodename,也必须添加对应的 Tolerations。

或在 Pod Spec 指定 nodename。示例如下:

如何自定义按量计费超级节点 DNS?

领券