华为云用户手册

  • 原生防护-标准版 标准版防护能力只有20G,如果不满足防护需求,可以购买全力防基础版。 如果同一个源IP短时间内频繁发起大量异常连接状态的报文时,需要通过配置连接防护策略,才能将该源IP纳入黑名单中进行封禁惩罚,等封禁结束后可恢复访问。 如果需要配置连接防护策略(仅云原生全力防高级版和高防支持,可联系保障同事配置),需要您评估正常业务日常目的IP地址并发连接数和目的IP地址新建连接速率,超出则会触发启动针对TCP连接耗尽攻击的防御,评估正常源IP最大并发连接数和正常源IP最大的每秒新建连接速率,作为拉黑源IP的条件,如果配置过小会有把正常源IP拉黑的风险。可参考配置连接防护。 如果不配置连接防护策略,或者配置目的IP地址并发连接数和目的IP地址每秒新建连接速率触发阈值过大,或者配置正常源IP最大并发连接数和正常源IP最大的每秒新建连接速率阈值过大,可能会有源站后端连接被打满的风险。 请客户根据历史攻击情况评估是否需要开启四层CC连接类攻击防护,如果需要,请使用云原生全力防高级版。 3. 如果客户业务没有UDP协议,建议客户在防护策略界面上封禁UDP。 以上风险请知悉!
  • 海外自建高防 华为云海外高防主要服务亚太(不含中国大陆)地区,若客户有非亚太地区以及中国大陆跨境访问的客户端,请提前做好网络测试,华为云海外高防服务不承诺非亚太地区和中国大陆跨境的网络访问质量和防护能力,客户确认接受该风险后方可接入。 海外网络环境比较复杂,偶尔可能会有运营商网络波动,有长连接场景的客户在运营商网络波动丢包率高的异常场景可能会导致长连接断连需要重新建立长连接,请客户知晓此项风险。 如果同一个源IP短时间内频繁发起大量异常连接状态的报文时,需要通过配置连接防护策略,才能将该源IP纳入黑名单中进行封禁惩罚,等封禁结束后可恢复访问。 如果需要配置连接防护策略,需要您评估正常业务日常目的IP地址并发连接数和目的IP地址新建连接速率,超出则会触发启动针对TCP连接耗尽攻击的防御,评估正常源IP最大并发连接数和正常源IP最大的每秒新建连接速率,作为拉黑源IP的条件,如果配置过小会有把正常源IP拉黑的风险。可参考配置连接防护。 如果不配置连接防护策略,或者配置目的IP地址并发连接数和目的IP地址每秒新建连接速率触发阈值过大,或者配置正常源IP最大并发连接数和正常源IP最大的每秒新建连接速率阈值过大,可能会有源站后端连接被打满的风险。 请客户根据历史攻击情况评估是否需要开启四层CC连接类攻击防护,并知晓会有拉黑正常源IP的风险,如果需要使用,请联系后台配置。
  • CDN调度规则知会 CDN切换到高防 连续3分钟内3次触发QPS超过阈值或连续10分钟内出现6次以上,并且CDN/DCDN上流量不超过10Gbps业务流量,触发切换流程。(cdn数据上报有3-4分钟延迟, 总体调度延迟可能6-7分钟)。 高防回切到CDN 连续12小时以上,域名QPS低于QPS阈值的80%,触发回切流程。回切时间范围:上午08时到晚上23时,其他时间不触发回切。 请客户做好手动调度到高防CNAME的准备。
  • 海外全力防高级版(nxg) 使用海外全力防高级版如果涉及跨境访问(大陆访问海外高防),可能会增加150-200ms时延。 当前海外全力防高级版产品是转售产品,需要通过线下接入方式给客户配置,并且客户在界面上无法看到报表和防护策略配置。 海外网络环境比较复杂,偶尔可能会有运营商网络波动,有长连接场景的客户在运营商网络波动丢包率高的异常场景可能会导致长连接断连需要重新建立长连接,请客户知晓此项风险。 海外全力防高级版不支持四层CC防护,不支持连接类防御。 客户首次业务接入,建议接入测试业务免费测试三天(供应商只在工作日时间接受测试),免费测试期间提供不超过10G防护,客户如果有攻击打流测试需求需要额外申请。
  • 原生防护-全力防高级版 使用云原生全力防高级版需要在EIP购买处选择5_DDoSAlways1bgp池子的EIP,需要更换EIP。 客户知晓此项需要更换EIP的限制并且能够接受,高级版IP需要提前几分钟加到防护策略里,因为高级版IP启用的时候需要过几分钟才能完全生效。 如果同一个源IP短时间内频繁发起大量异常连接状态的报文时,需要通过配置连接防护策略,才能将该源IP纳入黑名单中进行封禁惩罚,等封禁结束后可恢复访问。 如果需要配置连接防护策略(仅云原生全力防高级版和高防支持,可联系保障同事配置),需要您评估正常业务日常目的IP地址并发连接数和目的IP地址新建连接速率,超出则会触发启动针对TCP连接耗尽攻击的防御,评估正常源IP最大并发连接数和正常源IP最大的每秒新建连接速率,作为拉黑源IP的条件,如果配置过小会有把正常源IP拉黑的风险。可参考配置连接防护。 如果不配置连接防护策略,或者配置目的IP地址并发连接数和目的IP地址每秒新建连接速率触发阈值过大,或者配置正常源IP最大并发连接数和正常源IP最大的每秒新建连接速率阈值过大,可能会有源站后端连接被打满的风险。 请客户根据历史攻击情况评估是否需要开启四层CC连接类攻击防护,并知晓会有拉黑正常源IP的风险,如果需要使用,请联系后台打开白名单。 如果有找过DDoS后台调大过带宽档位,如果在界面上调整清洗档位,会有覆盖原本调大带宽的风险。 请客户业务在现网跑稳定后尽量不要在界面上调整清洗档位。 原生防护全力防高级版专属IP在实例过期后或者将IP从实例中移除,IP会被移到拉黑防护对象,业务将不可用。 原生防护全力防高级版专属IP在实例快过期前更换成普通EIP, 日常不要将高级版IP从高级版实例里移除。 如果客户购买的原生防护全力防高级版实例的带宽比加到原生防护全力防高级版实例的EIP/ELB购买的总带宽小,EIP/ELB可能在原生防护高级版实例里会有被限速风险。 请客户对齐加到原生防护全力防高级版实例的EIP/ELB购买的总带宽和原生防护全力防高级版实例的带宽是否一致,评估是否需要扩容原生防护实例带宽或者申请短期暂时后台放大原生防护实例带宽。 如果客户业务有长连接业务,使用云原生全力防高级版/高防在网络波动异常场景触发机房调度可能会导致长连接断连需要重新建立长连接。 有长连接场景的客户建议使用云原生基础版,云原生高级版和高防在丢包率高的异常场景会触发调度到其他机房,调度瞬间可能会导致长连接断连需要重新建立长连接。 如果客户业务没有UDP协议,建议客户在防护策略界面上封禁UDP。 如果客户业务没有海外流量访问,建议客户在防护策略界面上封禁海外流量。 接入业务稳定后尽量不要调整界面上的配置,以免比如打开一些封禁协议开关影响业务。 请客户在接入正式业务前进行充分测试。 以上风险请知悉!
  • 海外高防(nxg) 使用海外高防如果涉及跨境访问(大陆访问海外高防),可能会增加150-200ms时延。 当前海外高防产品是转售产品,需要通过线下接入方式给客户配置,并且客户在界面上无法看到报表和防护策略配置。 海外网络环境比较复杂,偶尔可能会有运营商网络波动,有长连接场景的客户在运营商网络波动丢包率高的异常场景可能会导致长连接断连需要重新建立长连接,请客户知晓此项风险。 需要客户确认业务有没有API调用,如果客户业务有API调用,有机机调用场景,需要注意不能开启人机认证模式。 需要确认客户有没有CC防护需求,有CC防护需求需要海外高防开启限制源IP每秒请求量与每分钟请求量。如正常单个源IP每秒不超过50请求,每分钟不超过300请求。 客户首次业务接入,建议接入测试业务免费测试三天(供应商只在工作日时间接受测试),免费测试期间提供不超过10G防护,客户如果有攻击打流测试需求需要额外申请。
  • CCE存储类型选择 创建工作负载时,可以使用以下类型的存储。建议将工作负载pod数据存储在云存储上。若存储在本地磁盘上,节点异常无法恢复时,本地磁盘中的数据也将无法恢复。 本地硬盘:将容器所在宿主机的文件目录挂载到容器的指定路径中(对应Kubernetes的HostPath),也可以不填写源路径(对应Kubernetes的EmptyDir),不填写时将分配主机的临时目录挂载到容器的挂载点,指定源路径的本地硬盘数据卷适用于将数据持久化存储到容器所在宿主机,EmptyDir(不填写源路径)适用于容器的临时存储。配置项(ConfigMap)是一种用于存储工作负载所需配置信息的资源类型,内容由用户决定。密钥(Secret)是一种用于存储工作负载所需要认证信息、密钥的敏感信息等的资源类型,内容由用户决定。 云硬盘存储卷:CCE支持将EVS创建的云硬盘挂载到容器的某一路径下。当容器迁移时,挂载的云硬盘将一同迁移。这种存储方式适用于需要永久化保存的数据。 文件存储卷: CCE支持创建SFS存储卷并挂载到容器的某一路径下,也可以使用底层SFS服务创建的文件存储卷,SFS存储卷适用于多读多写的持久化存储,适用于多种工作负载场景,包括媒体处理、内容管理、大数据分析和分析工作负载程序等场景。 对象存储卷:CCE支持创建OBS对象存储卷并挂载到容器的某一路径下,对象存储适用于云工作负载、数据分析、内容分析和热点对象等场景。 极速文件存储卷:CCE支持创建SFS Turbo极速文件存储卷并挂载到容器的某一路径下,极速文件存储具有按需申请,快速供给,弹性扩展,方便灵活等特点,适用于DevOps、容器微服务、企业办公等应用场景。
  • 解决方法 一般情况下,您需要从证书提供商处获取有效的合法证书。如果您需要在测试环境下使用,您可以自建证书和私钥,方法如下: 自建的证书通常只适用于测试场景,使用时界面会提示证书不合法,影响正常访问,建议您选择手动上传合法证书,以便通过浏览器校验,保证连接的安全性。 自己生成tls.key。 openssl genrsa -out tls.key 2048 将在当前目录生成一个tls.key的私钥。 用此私钥去签发生成自己的证书。 openssl req -new -x509 -key tls.key -out tls.crt -subj /C=CN/ST=Beijing/O=Devops/CN=example.com -days 3650 生成的私钥格式必须为: ----BEGIN RSA PRIVATE KEY----- …………………………………………….. -----END RSA PRIVATE KEY----- 生成的证书格式必须为: -----BEGIN CERTIFICATE----- …………………………………………………………… -----END CERTIFICATE----- 导入证书。 新建TLS密钥时,对应位置导入证书及私钥文件即可。
  • CCE节点上监听的端口列表 表1 Node节点监听端口 目的端口 协议 端口说明 10248 TCP kubelet健康检查端口 10250 TCP kubelet服务端口,提供节点上工作负载的监控信息和容器的访问通道 10255 TCP kubelet只读端口,提供节点上工作负载的监控信息 动态端口(与宿主机限制的范围有关,比如 内核参数 net.ipv4.ip_local_port_range) TCP kubelet 随机监听一个端口,与CRI Shim通信获取Exec URL 10249 TCP kube-proxy metric端口,提供kube-proxy组件的监控信息 10256 TCP kube-proxy健康检查端口 动态端口(32768~65535) TCP docker exec等功能的websocket监听端口 动态端口(32768~65535) TCP containerd exec等功能的websocket监听端口 28001 TCP icagent本地侦听端口,接受节点syslog日志 28002 TCP icagent健康检查端口 20101 TCP yangtse-agent/canal-agent健康检查端口(容器隧道网络模式涉及) 20104 TCP yangtse-agent/canal-agent的metric端口,提供组件的监控信息(容器隧道网络模式涉及) 3125 TCP everest-csi-driver侦听健康检查端口 3126 TCP everest-csi-driver pprof端口 19900 TCP node-problem-detector 健康检查server端口 19901 TCP node-problem-detector对接普罗采集监控数据端口 4789 UDP ovs侦听端口,容器网络vxlan报文的传输通道(容器隧道网络模式涉及) 4789 UDPv6 ovs侦听端口,容器网络vxlan报文的传输通道(容器隧道网络模式涉及) 动态端口30000~32767 TCP kube-proxy侦听端口,做4层负载均衡。K8s会给NodePort和Loadbalancer类型的服务分配一个随机端口,默认范围在30000~32767 动态端口30000~32767 UDP kube-proxy侦听端口,做4层负载均衡。K8s会给NodePort和Loadbalancer类型的服务分配一个随机端口,默认范围在30000~32767 123 UDP ntpd侦听端口,负责时间同步 20202 TCP PodLB侦听端口,做7层负载均衡,负责转发容器镜像拉取请求 父主题: 节点运行
  • 云原生网络2.0(CCE Turbo集群)安全组规则 Node节点安全组 集群自动创建的Node节点安全组名称为{集群名}-cce-node-{随机ID},默认端口说明请参见表5。 表5 CCE Turbo集群Node节点安全组默认端口说明 方向 端口 默认源地址 说明 是否可修改 修改建议 入方向规则 TCP:10250 Master节点网段 Master节点主动访问Node节点的kubelet(如执行kubectl exec {pod})。 不可修改 不涉及 TCP:30000-32767 所有IP地址(0.0.0.0/0) 集群NodePort服务默认访问端口范围。 可修改 端口需对VPC网段、容器网段和ELB的网段放通。 UDP:30000-32767 TCP:22 所有IP地址(0.0.0.0/0) 允许SSH远程连接Linux弹性云服务器。 建议修改 不涉及 全部 Node节点安全组 限制Node节点安全组外的访问,但对于Node节点安全组中的实例互相访问不做限制。 不可修改 不涉及 全部 容器子网网段 允许集群中的容器访问节点。 不可修改 不涉及 出方向规则 全部 所有IP地址(0.0.0.0/0) 默认全部放通,通常情况下不建议修改。 可修改 如需加固出方向规则,请注意指定端口需要放通,详情请参见安全组出方向规则加固建议。 Master节点安全组 集群自动创建的Master节点安全组名称为{集群名}-cce-control-{随机ID},默认端口说明请参见表6。 表6 CCE Turbo集群Master节点安全组默认端口说明 方向 端口 默认源地址 说明 是否支持修改 修改建议 入方向规则 TCP:5444 所有IP地址(0.0.0.0/0) kube-apiserver服务端口,提供K8s资源的生命周期管理。 不可修改 不涉及 TCP:5444 VPC网段 不可修改 不涉及 TCP:9443 VPC网段 Node节点网络插件访问Master节点。 不可修改 不涉及 TCP:5443 所有IP地址(0.0.0.0/0) Master的kube-apiserver的监听端口。 建议修改 端口需保留对VPC网段、容器网段和托管网格控制面网段放通。 说明: 如果您需要使用CloudShell功能,请保留5443端口对198.19.0.0/16网段放通,否则将无法访问集群。 TCP:8445 VPC网段 Node节点存储插件访问Master节点。 不可修改 不涉及 全部 Master节点安全组 限制Master节点安全组外的访问,但对于Master节点安全组中的实例互相访问不做限制。 不可修改 不涉及 全部 容器子网网段 属于容器子网网段的源地址需全部放通。 不可修改 不涉及 出方向规则 全部 所有IP地址(0.0.0.0/0) 默认全部放通。 不可修改 不涉及 ENI安全组 CCE Turbo集群会额外创建名为{集群名}-cce-eni-{随机ID}的安全组,默认为集群中的容器绑定该安全组,默认端口说明请参见表7。 表7 ENI安全组默认端口说明 方向 端口 默认源地址 说明 是否可修改 修改建议 入方向规则 全部 ENI安全组 允许集群中的容器互相访问。 不可修改 不涉及 VPC网段 允许集群VPC中的实例访问容器。 不可修改 不涉及 出方向规则 全部 所有IP地址(0.0.0.0/0) 默认全部放通。 不可修改 不涉及
  • 安全组出方向规则加固建议 对于出方向规则,CCE创建的安全组默认全部放通,通常情况下不建议修改。如需加固出方向规则,请注意如下端口需要放通。 表8 Node节点安全组出方向规则最小范围 端口 放通地址段 说明 UDP:53 子网的DNS服务器 用于域名解析。 UDP:4789(仅容器隧道网络模型的集群需要) 所有IP地址 容器间网络互访。 TCP:5443 Master节点网段 Master的kube-apiserver的监听端口。 TCP:5444 VPC网段、容器网段 kube-apiserver服务端口,提供K8s资源的生命周期管理。 TCP:6443 Master节点网段 - TCP:8445 VPC网段 Node节点存储插件访问Master节点。 TCP:9443 VPC网段 Node节点网络插件访问Master节点。 所有端口 198.19.128.0/17网段 访问VPCEP服务。 UDP:123 100.125.0.0/16网段 Node节点访问内网NTP服务器端口。 TCP:443 100.125.0.0/16网段 Node节点访问内网OBS端口用于拉取安装包。 TCP:6443 100.125.0.0/16网段 Node节点上报节点安装成功。
  • VPC网络模型安全组规则 Node节点安全组 集群自动创建的Node节点安全组名称为{集群名}-cce-node-{随机ID},默认端口说明请参见表1。 表1 VPC网络模型Node节点安全组默认端口说明 方向 端口 默认源地址 说明 是否可修改 修改建议 入方向规则 UDP:全部 VPC网段 Node节点之间互访、Node节点与Master节点互访。 不可修改 不涉及 TCP:全部 ICMP:全部 Master节点安全组 Master节点访问Node节点。 不可修改 不涉及 TCP:30000-32767 所有IP地址(0.0.0.0/0) 集群NodePort服务默认访问端口范围。 可修改 端口需对VPC网段、容器网段和ELB的网段放通。 UDP:30000-32767 全部 容器网段 允许集群中的容器访问节点。 不可修改 不涉及 全部 Node节点安全组 限制Node节点安全组外的访问,但对于Node节点安全组中的实例互相访问不做限制。 不可修改 不涉及 TCP:22 所有IP地址(0.0.0.0/0) 允许SSH远程连接Linux弹性云服务器。 建议修改 不涉及 出方向规则 全部 所有IP地址(0.0.0.0/0) 默认全部放通,通常情况下不建议修改。 可修改 如需加固出方向规则,请注意指定端口需要放通,详情请参见安全组出方向规则加固建议。 Master节点安全组 集群自动创建的Master节点安全组名称为{集群名}-cce-control-{随机ID},默认端口说明请参见表2。 表2 VPC网络模型Master节点安全组默认端口说明 方向 端口 默认源地址 说明 是否支持修改 修改建议 入方向规则 TCP:5444 VPC网段 kube-apiserver服务端口,提供K8s资源的生命周期管理。 不可修改 不涉及 TCP:5444 容器网段 TCP:9443 VPC网段 Node节点网络插件访问Master节点。 不可修改 不涉及 TCP:5443 所有IP地址(0.0.0.0/0) Master的kube-apiserver的监听端口。 建议修改 端口需保留对VPC网段、容器网段和托管网格控制面网段放通。 说明: 如果您需要使用CloudShell功能,请保留5443端口对198.19.0.0/16网段放通,否则将无法访问集群。 TCP:8445 VPC网段 Node节点存储插件访问Master节点。 不可修改 不涉及 全部 Master节点安全组 限制Master节点安全组外的访问,但对于Master节点安全组中的实例互相访问不做限制。 不可修改 不涉及 出方向规则 全部 所有IP地址(0.0.0.0/0) 默认全部放通。 不可修改 不涉及
  • 容器隧道网络模型安全组规则 Node节点安全组 集群自动创建的Node节点安全组名称为{集群名}-cce-node-{随机ID},默认端口说明请参见表3。 表3 容器隧道网络模型Node节点安全组默认端口说明 方向 端口 默认源地址 说明 是否可修改 修改建议 入方向规则 UDP:4789 所有IP地址(0.0.0.0/0) 容器间网络互访。 不可修改 不涉及 TCP:10250 Master节点网段 Master节点主动访问Node节点的kubelet(如执行kubectl exec {pod})。 不可修改 不涉及 TCP:30000-32767 所有IP地址(0.0.0.0/0) 集群NodePort服务默认访问端口范围。 可修改 端口需对VPC网段、容器网段和ELB的网段放通。 UDP:30000-32767 TCP:22 所有IP地址(0.0.0.0/0) 允许SSH远程连接Linux弹性云服务器。 建议修改 不涉及 全部 Node节点安全组 限制Node节点安全组外的访问,但对于Node节点安全组中的实例互相访问不做限制。 不可修改 不涉及 出方向规则 全部 所有IP地址(0.0.0.0/0) 默认全部放通,通常情况下不建议修改。 可修改 如需加固出方向规则,请注意指定端口需要放通,详情请参见安全组出方向规则加固建议。 Master节点安全组 集群自动创建的Master节点安全组名称为{集群名}-cce-control-{随机ID},默认端口说明请参见表4。 表4 容器隧道网络模型Master节点安全组默认端口说明 方向 端口 默认源地址 说明 是否支持修改 修改建议 入方向规则 UDP:4789 所有IP地址(0.0.0.0/0) 容器间网络互访。 不可修改 不涉及 TCP:5444 VPC网段 kube-apiserver服务端口,提供K8s资源的生命周期管理。 不可修改 不涉及 TCP:5444 容器网段 TCP:9443 VPC网段 Node节点网络插件访问Master节点。 不可修改 不涉及 TCP:5443 所有IP地址(0.0.0.0/0) Master的kube-apiserver的监听端口。 建议修改 端口需保留对VPC网段、容器网段和托管网格控制面网段放通。 说明: 如果您需要使用CloudShell功能,请保留5443端口对198.19.0.0/16网段放通,否则将无法访问集群。 TCP:8445 VPC网段 Node节点存储插件访问Master节点。 不可修改 不涉及 全部 Master节点安全组 限制Master节点安全组外的访问,但对于Master节点安全组中的实例互相访问不做限制。 不可修改 不涉及 出方向规则 全部 所有IP地址(0.0.0.0/0) 默认全部放通。 不可修改 不涉及
  • IPv6介绍 IPv6地址 IPv6地址采用128位二进制表示,是IPv4地址长度的4倍。因此IPv4地址的十进制格式不再适用,IPv6采用了十六进制来表示,将128位二进制数转换为32位十六进制数,每4位十六进制数(不区分大小写)为一组,每组以冒号“:”隔开,可以分为8组。 IPv6地址存在多种省略写法: 0位省略:如果每个冒号分组中存在以0开头的,则可以将0位省略,多个0连续时可省略多个。例如以下IPv6地址均是等价的。 ff01:0d28:03ee:0000:0000:0000:0000:0c23 ff01:d28:3ee:0000:0000:0000:0000:c23 ff01:d28:3ee:0:0:0:0:c23 双冒号省略:如果以十六进制表示的IPv6地址中间依然存在很多个全为0的分组,可以把连续全为0的分组压缩成双冒号"::"。但为保证唯一性,这种压缩方式只能使用一次,即一个IPv6地址中只能出现一次双冒号"::"。 例如: 双冒号省略前 双冒号省略后 ff01:d28:3ee:0:0:0:0:c23 ff01:d28:3ee::c23 0:0:0:0:0:0:0:1 ::1 0:0:0:0:0:0:0:0 :: IPv6地址段 IPv6地址段通常采用CIDR(无类别域间路由选择)表示法,通常用斜杠(/)后跟一个数字表示,即格式为“IPv6地址/前缀长度”。此处前缀长度与IPv4地址段的掩码作用类似,用数字来表示网络部分所占用的二进制位数,可将IPv6地址分为网络地址和主机地址两部分。而前缀长度指定了网络部分占用的位数,剩余位数则是主机地址部分,可以更加方便和灵活地表示不同的地址段。 例如,fc00:d28::/32表示一个前缀长度为32位的IPv6地址段,则在该网段中分配地址时,前32位(以二进制计算,此处即为fc00:d28)为网络地址,后96位则为可用的主机地址。
  • IPv6服务网段示例 根据约束,本文中提供一个包含8192个地址的IPv6网段设置示例,供您参考。 根据地址数需求设定前缀长度,且前缀范围为112-120。 本例中,需要8192个地址数,8192个地址需要13位二进制数表示,而IPv6地址总长度为128位二进制数,则该IPv6网段的前缀长度为128-13=115,表示前115位可用于区分网络地址段,后13位用于表示8192个主机地址。 根据以上计算方式,可得出前缀范围为112-120的IPv6地址段所包含的地址数量如下: IPv6地址段的前缀长度 包含的地址数量 112 65536 113 32768 114 16384 115 8192 116 4096 117 2048 118 1024 119 512 120 256 设置IPv6网络地址,且网络地址必须属于fc00::/8网段内。 本例中,确定前缀长度为115,由于网络地址必须属于fc00::/8网段内,因此前8位二进制数是固定的。可修改的网络地址范围是第9位至第115位,第116位至第128位则属于主机地址。 将IPv6地址写成二进制形式,则根据以上条件: 网络地址必须属于fc00::/8网段,因此二进制中的前8位不可修改,否则将不属于fc00::/8网段,固定为1111 1110,对应十六进制为fc。 包含8192个地址数的网段前缀长度设置为115,因此二进制中后13位用于表示主机地址,固定全为0。 具体示例如下,其二进制中标红部分是不可修改的。 二进制: 1111 1100 **** **** ... ***0 0000 0000 0000/115 | | | | | | | | 十六进制: f c x x ... y 0 0 0/115 其中x为任意十六进制数;而y对应的4位二进制数最后一位固定为0,因此十六进制数y可选范围为0、2、4、6、8、a、c、e。
  • IPv6服务网段使用约束 在设置集群服务网段时,需要首先考虑以下有如下使用约束: IPv6服务网段必须属于fc00::/8网段内。 该地址属于本地唯一地址(ULA)网段。ULA拥有固定前缀:fc00::/7,其中包括fc00::/8和fd00::/8两个范围,类似于IPv4的专用网络地址10.0.0.0/8、172.16.0.0/12和192.168.0.0/16,相当于私有IP网段,仅能够在本地网络使用。 前缀范围112-120,您可以通过调整前缀数值,调整地址个数,地址数最多有65536个。
  • 排查思路 以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。 如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。 排查项一:节点负载过高 排查项二:弹性云服务器是否删除或故障 排查项三:弹性云服务器能否登录 排查项四:安全组是否被修改 排查项五:检查安全组规则中是否包含Master和Node互通的安全组策略 排查项六:检查磁盘是否异常 排查项七:内部组件是否正常 排查项八:DNS地址配置错误 排查项九:检查节点中的vdb盘是否被删除 排查项十:排查Docker服务是否正常 排查项十一:包周期节点退订
  • 排查项二:弹性云服务器是否删除或故障 确认集群是否可用。 登录CCE控制台,确定集群是否可用。 若集群非可用状态,如错误等,请参见当集群状态为“不可用”时,如何排查解决?。 若集群状态为“运行中”,而集群中部分节点状态为“不可用”,请执行2。 登录ECS控制台,查看对应的弹性云服务器状态。 若弹性云服务器状态为“已删除”:请在CCE中删除对应节点,再重新创建节点。 若弹性云服务器状态为“关机”或“冻结”:请先恢复弹性云服务器,约3分钟后集群节点可自行恢复。 若弹性云服务器出现故障:请先重启弹性云服务器,恢复故障。 若弹性云服务器状态为“可用”:请参考排查项七:内部组件是否正常登录弹性云服务器进行本地故障排查。
  • 排查项七:内部组件是否正常 登录不可用节点对应的弹性云服务器。 执行以下命令判断paas组件是否正常。 systemctl status kubelet 执行成功,可查看到各组件的状态为Active,如下图: 若服务的组件状态不是Active,执行如下命令: 重启命令根据出错组件指定,如canal组件出错,则命令为:systemctl restart canal 重启后再查看状态:systemctl status canal 若执行失败,请执行如下命令,查看monitrc进程的运行状态。 ps -ef | grep monitrc 若存在此进程,请终止此进程,进程终止后会自动重新拉起。 kill -s 9 `ps -ef | grep monitrc | grep -v grep | awk '{print $2}'`
  • 排查项一:节点负载过高 问题描述: 集群中节点连接异常,多个节点报写入错误,业务未受影响。 问题定位: 登录CCE控制台,进入集群,在不可用节点所在行单击“监控”。 单击“监控”页签顶部的“查看更多”,前往运维管理页面查看历史监控记录。 当节点cpu和内存负载过高时,会导致节点网络时延过高,或系统OOM,最终展示为不可用。 解决方案: 建议迁移业务,减少节点中的工作负载数量,并对工作负载设置资源上限,降低节点CPU或内存等资源负载。 将集群中对应的cce节点进行数据清理。 限制每个容器的CPU和内存限制配额值。 对集群进行节点扩容。 您也可以重启节点,请至ECS控制台对节点进行重启,重启方法请参见如何重启弹性云服务器?。 增加节点,将高内存使用的业务容器分开部署。 重置节点,详情请参见重置节点。 节点恢复为可用后,工作负载即可恢复正常。
  • 排查项五:检查安全组规则中是否包含Master和Node互通的安全组策略 请检查安全组规则中是否包含Master和Node互通的安全组策略。 已有集群添加节点时,如果子网对应的VPC新增了扩展网段且子网是扩展网段,要在控制节点安全组(即集群名称-cce-control-随机数)中添加如下三条安全组规则,以保证集群添加的节点功能可用(新建集群时如果VPC已经新增了扩展网段则不涉及此场景)。 安全的详细说明请参见集群安全组规则配置
  • 排查项八:DNS地址配置错误 登录节点,在日志/var/log/cloud-init-output.log中查看是否有域名解析失败相关的报错。 cat /var/log/cloud-init-output.log | grep resolv 如果回显包含如下内容则说明无法解析该域名。 Could not resolve host: test.obs.cn-north-4.myhuaweicloud.com; Unknown error 在节点上ping上一步无法解析的域名,确认节点上能否解析此域名。 ping test.obs.cn-north-4.myhuaweicloud.com 如果不能,则说明DNS无法解析该地址。请确认/etc/resolv.conf文件中的DNS地址与配置在VPC的子网上的DNS地址是否一致,通常是由于此DNS地址配置错误,导致无法解析此域名。请修改VPC子网DNS为正确配置,然后重置节点。 如果能,则说明DNS地址配置没有问题,请排查其他问题。
  • 排查项十:排查Docker服务是否正常 执行以下命令确认docker服务是否正在运行: systemctl status docker 若执行失败或服务状态非active,请确认docker运行失败原因,必要时可提交工单联系技术支持。 执行以下命令检查当前节点上所有容器数量: docker ps -a | wc -l 若命令卡死、执行时间过长或异常容器数过多(1000以上),请确认外部是否存在重复不断地创删负载现象,在大量容器频繁创删过程中有可能出现大量异常容器且难以及时清理。 在此场景下可考虑停止重复创删负载或采用更多的节点去分摊负载,一般等待一段时间后节点会恢复正常,必要情况可执行docker rm {container_id}手动清理异常容器。
  • 使用NPD插件排查故障 CCE提供节点故障检测NPD插件,NPD插件从1.16.0版本开始增加了大量检查项,能对节点上各种资源和组件的状态检测,帮助发现节点故障。 强烈建议您安装该插件,如已安装请查看插件版本并升级到1.16.0及以上版本。 安装NPD插件后,当节点出现异常时,控制台上可以查看到指标异常。 您还可以在节点事件中查看到NPD上报的事件,根据事件信息可以定位故障。 表1 故障事件说明 故障事件 说明 OOMKilling 检查oom事件发生并上报。 可能原因:用户在ECS侧误操作卸载数据盘。 处理建议:排查项一:节点负载过高。 TaskHung 检查taskHung事件发生并上报 KernelOops 检查内核0指针panic错误 ConntrackFull 检查连接跟踪表是否满 FrequentKubeletRestart 检测kubelet频繁重启 FrequentDockerRestart 检测docker频繁重启 FrequentContainerdRestart 检测containerd频繁重启 CRIProblem 检查容器CRI组件状态 KUBELETProblem 检查Kubelet状态 NTPProblem 检查ntp服务状态 PIDProblem 检查Pid是否充足 FDProblem 检查文件句柄数是否充足 MemoryProblem 检查节点整体内存是否充足 CNIProblem 检查容器CNI组件状态 KUBEPROXYProblem 检查Kube-proxy状态 ReadonlyFilesystem 检查系统内核是否有Remount root filesystem read-only错误。 可能原因:用户在ECS侧误操作卸载数据盘、节点vdb盘被删除。 处理建议: 排查项六:检查磁盘是否异常 排查项九:检查节点中的vdb盘是否被删除 DiskReadonly 检查系统盘、docker盘、kubelet盘是否只读 可能原因:用户在ECS侧误操作卸载数据盘、节点vdb盘被删除。 处理建议: 排查项六:检查磁盘是否异常 排查项九:检查节点中的vdb盘是否被删除 DiskProblem 检查磁盘使用量与关键逻辑磁盘挂载 检查系统盘、docker盘、kubelet盘磁盘使用率,检查docker盘、kubelet盘是否正常挂载在虚拟机上。 PIDPressure 检查PID是否充足。 处理建议:PID不足时可调整PID上限,请参见修改节点进程 ID数量上限kernel.pid_max。 MemoryPressure 检查容器可分配空间(allocable)内存是否充足 DiskPressure 检查kubelet盘和docker盘的磁盘使用量及inodes使用量。 处理建议:扩容数据盘,请参见节点磁盘扩容。
  • 问题现象 节点事件中,重复出现“镜像回收失败”告警,告警示例如下: wanted to free xx bytes, but freed xx bytes space with errors in image deletion: rpc error: code = Unknown desc = Error response from daemon: conflict: unable to remove repository reference "imageName:tag" (must force) - container 966fce58d9b8 is using its referenced image 50a7aa6fa56a 例如上述告警中提到的容器ID(966fce58d9b8)已经停止运行了,但没有完全被删除。
  • 问题根因 kubelet根据imageGCHighThresholdPercent和imageGCLowThresholdPercent两个配置参数定期回收未在使用中的镜像。如果在节点上使用docker或crictl命令行启动容器,那么在容器停止后,它将处于退出状态,但并未完全删除,这意味着该容器仍然引用着容器镜像。由于kubelet无法感知到非Pod产生的容器,也就无法感知到该容器镜像被引用,因此当kubelet尝试删除容器镜像时,容器运行时会因为容器镜像仍处于被引用的状态而拦截kubelet的删除行为,导致kubelet在定期回收镜像过程中出现失败。
  • 解决方法 登录节点上执行以下命令,过滤出告警提示的容器,确认是否处于exited状态。其中{containerId}需要替换为告警中提到的容器ID。 节点使用docker运行时: docker ps -a | grep {containerId} 节点使用containerd运行时: crictl ps -a | grep {containerId} 如果您确认容器已不再使用,请执行以下命令,彻底清除处于exited状态的容器。其中{containerId}需要替换为告警中提到的容器ID。 节点使用docker运行时: docker rm {containerId} 节点使用containerd运行时: crictl rm {containerId} 删除问题容器后,kubelet下次回收镜像可以正常进行。
  • 排查思路 请根据节点池扩容失败的具体事件信息确定问题原因,如表1所示。 表1 节点池扩容失败 事件信息 问题原因 解决方案 ...call fsp to query keypair fail, error code : Ecs.0314, reason is : the keypair *** does not match the user_id ***... 该问题可能由以下原因引起: 创建节点池时使用的密钥对被删除。 创建节点池时使用的密钥对为私有密钥对,其他用户无法使用该密钥对创建节点。 无法获取节点池使用的密钥对 {"error":{"message":"encrypted key id [***] is invalid.","code":"Ecs.0912"}} 该问题可能由以下原因引起: 创建节点池输入的KMS密钥ID不存在。 创建节点池输入的KMS密钥ID为他人密钥,但他人未给您授权。 KMS密钥ID非法
  • 无法获取节点池使用的密钥对 当扩容节点池失败时,事件中包含Ecs.0314错误,表明无法查询到节点池使用的密钥对,导致创建云服务器失败。 ...call fsp to query keypair fail, error code : Ecs.0314, reason is : the keypair *** does not match the user_id ***... 该问题可能由以下原因引起: 原因一:创建节点池时使用的密钥对被删除。 原因二:用户使用私有密钥对创建节点池,而其他用户无法使用该私有密钥对创建节点,导致节点池扩容失败。 解决方案: 对于原因一引起的扩容失败,您可以创建一个新的密钥对,并使用该密钥对创建新的节点池。 对于原因二引起的扩容失败,该节点池只能通过私有密钥对的创建者进行扩容。您也可以使用其他密钥对创建一个新的节点池。
  • KMS密钥ID非法 当扩容节点池失败时,事件中包含Ecs.0912错误: {"error":{"message":"encrypted key id [***] is invalid.","code":"Ecs.0912"}} 该问题可能由以下原因引起: 原因一:创建节点池输入的KMS密钥ID不存在。 原因二:创建节点池输入的KMS密钥ID为他人密钥,但他人未给您授权。 解决方案: 对于原因一引起的扩容失败,确保您输入密钥ID存在。 对于原因二引起的扩容失败,请使用已给您授权的共享密钥ID。
共100000条