Service 组件生命周期管理模式升级
主要变更点:禁止某些修改场景的变更。
具体表现为:
为防止 Service 在切换不同的 CLB 时发生资源异常问题,例如:CLB 可能会脱离 TKE 的管控导致资源泄漏,或无法创建出对应的 CLB 导致服务中断,TKE 对 Service 的生命周期的变更做了如下限制:
1. 禁止服务访问方式中的公网 LB 访问与内网 LB 访问之间互相切换。
2. 选择公网 LB 访问时,禁止切换当前 VPC 的可用区,以及其他 VPC;禁止在负载均衡器中的自动创建与使用已有之间互相切换。
3. 选择内网 LB 访问时,禁止在负载均衡器中的自动创建与使用已有之间互相切换,禁止切换 LB 所在子网。
4. 选择使用已有时,禁止切换成其他已有 CLB。
5. 禁止传统型和应用型 CLB 之间的切换。
若您尝试切换以上动作,前台会做限制,后台会拦截。若您有以上切换诉求,可以尝试:
1. 先将服务访问方式切换至仅在集群内访问或主机端口访问。
2. 再配置成目标的参数配置。
Service/Ingress 错误保护
主要变更点:对于 Service/Ingress 的部分错误配置,TKE Service/Ingress 组件会采取跳过而不是停止运行的方式,防止 Service/Ingress 异常导致流量中断的风险。
注意事项:此类 Service/Ingress 对象本身存在异常,虽然 TKE Service/Ingress 的跳过的保护机制会让组件持续运行,但还是需要及时查看 Service/Ingress 的事件信息,处理隐患。
Ingress 错误
Ingress 的错误类型 | 对应的异常事件信息 | 忽略保护逻辑 |
Secret 名称为空 | SecretEmptyError=IngressErrorCode{Code:"E4009",Message:"Ingress:%s.Secretnameisempty.Forhttpsrulecertsecretisrequired.",Retry:false} | 仅在创建监听器时阻塞,其他功能会继续同步 |
Secret 不存在 | SecretNotFoundError=IngressErrorCode{Code:"E4010",Message:"Ingress:%s.Secret%snotfound",Retry:false} | 仅在创建监听器时阻塞,其他功能会继续同步创建好 Ingress 后,删除 Secret,Ingress 无法感知,再次编辑提交会感知报错 |
Secret 内容不正确 | SecretContentError=IngressErrorCode{Code:"E4011",Message:"Ingress:%s.Secret%shasnodataofqcloud_cert_id.",Retry:false} | 仅在创建监听器时阻塞,其他功能会继续同步创建好 Ingress 后,删除 Secret,Ingress 无法感知,再次编辑提交会感知报错 |
证书过期 | CertificateStatusError=IngressErrorCode{Code:"E4012",Message:"Ingress:%s.CertificateStatusError.(UserInvalidParameterValue)",Retry:false} | 创建监听器时阻塞,修改监听器或 SNI 证书等情况跳过 |
转发规则中包含非法字符 | RuleFormatError=IngressErrorCode{Code:"E4031",Message:"Ingress:%s.Ingressruleinvalid.Invalidpath.",Retry:false} | 跳过转发规则创建,其他功能会继续同步 |
spec.rules.host 为空,IPv6 转发规则必须指定域名 | RuleHostEmptyError=IngressErrorCode{Code:"E4034",Message:"Ingress:%s.Ingressrulesinvalid.'spec.rules.host'isempty.LoadBalance(IPv6)donothaveIPfordefaultdomain.",Retry:false} | 忽略该条转发规则,其他功能会继续同步 |
证书 ID 格式错误 | CertificateFormatError=IngressErrorCode{Code:"E4035",Message:"Ingress:%s.ThelengthofCertificateIdError.(UserInvalidParameterValue)",Retry:false} | 仅在创建监听器时阻塞,其他功能会继续同步 |
证书不存在 | CertificateNotFoundError=IngressErrorCode{Code:"E4036",Message:"Ingress:%s.CertificateIdNotFound.(UserInvalidParameterValue)",Retry:false} | 仅在创建监听器时阻塞,其他功能会继续同步 |
ingress.cloud.tencent.com/direct-access 为非法值,阻塞资源同步 | DirectAccessAnnotationError=IngressErrorCode{Code:"E4037",Message:"Ingress:%s.Annotation'ingress.cloud.tencent.com/direct-access'shouldbetrueorfalse.",Retry:false} | 忽略该注解,默认按 False 处理 |
证书类型错误 | CertificateTypeError=IngressErrorCode{Code:"E4038",Message:"Ingress:%s.CertificatenotSVRtypeError.(UserInvalidParameterValue)",Retry:false} | 仅在创建监听器时阻塞,其他功能会继续同步 |
证书过期 | CertificateOutOfDateError=IngressErrorCode{Code:"E4039",Message:"Ingress:%s.CertificateoutofdateError.(UserInvalidParameterValue)",Retry:false} | 仅在创建监听器时阻塞,其他功能会继续同步 |
域名没有匹配的 Secret 声明 | SecretNotMatchError=IngressErrorCode{Code:"E4040",Message:"Ingress:%s.Donothaveanysecretmatchthisingressresource.(host:%s)",Retry:false} | 忽略该域名的证书修改,其他功能会继续同步 |
转发规则声明的 Service 资源不存在,阻塞用户同步 | ServiceNotFoundError=IngressErrorCode{Code:"E4041",Message:"Ingress:%s.Service(%s)isnotfound.",Retry:false} | 忽略该条转发规则,其他功能会继续同步 |
转发规则声明的 Service 资源,不存在对应转发端口 | ServicePortNotFoundError=IngressErrorCode{Code:"E4042",Message:"Ingress:%s.Service(%s)donothaveport%d.",Retry:false} | 忽略该条转发规则,其他功能会继续同步 |
TkeServiceConfig 不存在 | TkeServiceConfigNotFoundError=IngressErrorCode{Code:"E4043",Message:"Ingress:%s.TkeServiceConfig(%s)isnotfound.",Retry:false} | TkeServiceConfig 不存在,忽略用户配置,不影响 |
指定的 Service 不能作为绑定后端,ServiceType 不正确 | ServiceTypeInvalidError=IngressErrorCode{Code:"E4047",Message:"Ingress:%s.Service(%s)isnoabletobethebackendofingress.NodePortserviceorLoadBalancerserviceissupportforingress.",Retry:false} | 忽略该条转发规则,其他功能会继续同步 |
用户声明了多个默认证书 | SecretConflictError=IngressErrorCode{Code:"E4048",Message:"Ingress:%s.Miltydefaultsecretisconflict.",Retry:false} | 报错,但是默认选择第一个证书进行配置,其他功能会继续同步 |
用户域名声明了多个证书 | SecretSpecifyConflictError=IngressErrorCode{Code:"E4049",Message:"Ingress:%s.Miltyspecifysecretisconflictwithhost%s.",Retry:false} | 报错,但是默认选择第一个证书进行配置,其他功能会继续同步 |
ingress.cloud.tencent.com/tke-service-config-auto 为非法值 | TkeServiceConfigAutoAnnontationError=IngressErrorCode{Code:"E4050",Message:"Ingress:%s.Annotation'ingress.cloud.tencent.com/tke-service-config-auto'shouldbetrueorfalse.",Retry:false} | 忽略该注解,默认按 False 处理 |
ingress.cloud.tencent.com/tke-service-config 指定了其他服务的自动创建资源 | TkeServiceConfigConflictError=IngressErrorCode{Code:"E4051",Message:"Ingress:%s.Annotation'ingress.cloud.tencent.com/tke-service-config'mustnotsuffixwith'-auto-ingress-config'or'-auto-service-config'",Retry:false} | 忽略该注解,默认按无配置处理 |
spec.rules.host 格式非法 | RuleHostFormatError=IngressErrorCode{Code:"E4052",Message:"Ingress:%s.Ingressrulesinvalid.'spec.rules.host'isinvalid.host(%s)donotmatchtheregex'(\\\\*\\|[a-z0-9]([-a-z0-9]*[a-z0-9])?)(\\\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)+'",Retry:false} | 忽略该条转发规则,其他功能会继续同步 |
ingress.cloud.tencent.com/enable-grace-shutdown 参数为非法值 | PublicGraceShutdownAnnotationError=IngressErrorCode{Code:"E4057",Message:"Ingress:%s.Annotation'ingress.cloud.tencent.com/enable-grace-shutdown'shouldbetrueorfalse.",Retry:false} | 忽略该注解,默认按 False 处理 |
ingress.cloud.tencent.com/enable-grace-shutdown-tkex 参数为非法值 | TKExGraceShutdownAnnotationError=IngressErrorCode{Code:"E4058",Message:"Ingress:%s.Annotation'ingress.cloud.tencent.com/enable-grace-shutdown-tkex'shouldbetrueorfalse.",Retry:false} | 忽略该注解,默认按 False 处理 |
ingress.cloud.tencent.com/auto-rewrite 参数为非法值 | AutoRewriteAnnotationError=IngressErrorCode{Code:"E4062",Message:"Ingress:%s.Ingressrulesinvalid.annotation:'ingress.cloud.tencent.com/auto-rewrite'isinvalid.shouldbetrueorfalse.",Retry:false} | 忽略该注解,默认按 False 处理 |
ingress.cloud.tencent.com/rewrite-support 参数为非法值 | RewriteSupportAnnotationError=IngressErrorCode{Code:"E4063",Message:"Ingress:%s.Ingressrulesinvalid.annotation:'ingress.cloud.tencent.com/rewrite-support'isinvalid.shouldbetrueorfalse.",Retry:false} | 忽略该注解,默认按 False 处理 |
service.kubernetes.io/qcloud-loadbalancer-backends-label 注解解析失败 | BackendsLabelAnnotationError=IngressErrorCode{Code:"E4067",Message:"Service:%s.Annotation'service.kubernetes.io/qcloud-loadbalancer-backends-label'isnotinvalidlabelselector.",Retry:false} | 忽略该注解,其他功能会继续同步 |
自动重定向和其他声明的转发规则有冲突 | AutoRewriteRuleConflictError=IngressErrorCode{Code:"E4068",Message:"Ingress:%s.AutoRewriteruleisconflictwithotherhttprule%s.",Retry:false} | 告警,忽略这个冲突 |
ingress.cloud.tencent.com/lb-rs-weight 自定义后端权重的配置有格式问题 | CustomizedWeightAnnotationError=IngressErrorCode{Code:"E4069",Message:"Ingress:%s.Annotation'ingress.cloud.tencent.com/lb-rs-weight'Unmarshalerror.",Retry:false} | 忽略该注解,其他功能会继续同步 |
转发规则正则不合法 | RegexPathIllegal=IngressErrorCode{Code:"E4075",Message:"Ingress:%s.Regexpathisillegal,pathcanonlyusetheletter、numberandcharacter-/.\\%%?=:#&^*[]$.anditshouldbealegalregularexpression.invalidpath:%s",Retry:false} | 在同步中,认为该转发规则的声明不存在,其他功能会继续同步 |
转发规则精确路径不合法 | PathIllegal=IngressErrorCode{Code:"E4076",Message:"Ingress:%s.Exactpathisillegal,pathcanonlyusetheletter、numberandcharacter-/.\\%%?=:#&.oruseitwithNonAbsolutePath.invalidpath:%s",Retry:false} | 在同步中,认为该转发规则的声明不存在,其他功能会继续同步 |
转发规则长度超过 200 | PathLengthIllegal=IngressErrorCode{Code:"E4077",Message:"Ingress:%s.Pathlengthcannotexceed200.",Retry:false} | 在同步中,认为该转发规则的声明不存在,其他功能会继续同步 |
重定向规则不支持,正则以及其他非标转发路径 | RewriteInvalidPathType=IngressErrorCode{Code:"E4080",Message:"Ingress:%s.annotation:'kubernetes.io/ingress.http-rules'or'kubernetes.io/ingress.http-rules'isinvalid.rewritecannotusewithregexpathorexactpath.",Retry:false} | 在同步中,认为该转发规则的声明不存在,其他功能会继续同步 |
用户在直连场景中使用了 NoSelectorService | NoSelectorService=IngressErrorCode{Code:"E4082",Message:"Ingress:%s.LoadBalancerService(%s)withoutlabelselectorwon'thaveanyendpoint,evenifyousetEndpoints.",Retry:false} | 将该转发规则的后端置为空 |
ingress.cloud.tencent.com/modification-protection 配置修改保护参数为非法值 | ModificationProtectionAnnontationError=IngressErrorCode{Code:"E4086",Message:"Ingress:%sAnnotation'ingress.cloud.tencent.com/modification-protection'shouldbetrueorfalse.",Retry:false} | 忽略对负载均衡配置保护的同步,其他功能会继续同步 |
配置修改保护不能在应用于,用户已有负载均衡 | ReuseNotSupportModificationProtectionError=IngressErrorCode{Code:"E4087",Message:"Ingress:%sAnnotation'ingress.cloud.tencent.com/modification-protection'donotsupporttheservicewithreuseloadbalancer.",Retry:false} | 忽略对负载均衡配置保护的同步,其他功能会继续同步 |
配置修改保护开通或关闭失败,配置修改保护由用户已经开启 | ModificationProtectionConflictError=IngressErrorCode{Code:"E4088",Message:"Ingress:%sLoadbalancerwasprotectedbyuseroranotherservice.",Retry:true} | 忽略对负载均衡配置保护的同步,其他功能会继续同步 |
配置修改保护未开通白名单 | ModificationProtectionDoNotSupportError=IngressErrorCode{Code:"E4089",Message:"Ingress:%sPleasecheckthewhitelistabouttheCLB.Functionmodificationprotectionmaynotbeopen.",Retry:true} | 忽略对负载均衡配置保护的同步,其他功能会继续同步 |
SNATIP 不能大于 10 个 | SnatIPLimitExceeded=IngressErrorCode{Code:"E4092",Message:"Ingress:%s.Ingressusethe'ingress.cloud.tencent.com/snat-pro-info',snatipcan'texceed10.",Retry:false} | 将 SNATIP 裁剪到 10 个,其他功能会继续同步 |
ingress.cloud.tencent.com/pass-to-target 默认放通注解为非法值 | PassToTargetAnnotationError=IngressErrorCode{Code:"E4093",Message:"Ingress:%s.annotation:'ingress.cloud.tencent.com/pass-to-target'isinvalid.shouldbetrueorfalse.",Retry:false} | 忽略该注解,默认按 False 处理 |
安全组名称格式错误 | SecurityGroupsFormatError=IngressErrorCode{Code:"E4096",Message:"Ingress:%s.annotation:'ingress.cloud.tencent.com/security-groups'isinvalid.anyofsecuritygroupidformaterror.",Retry:false} | 接口报错记录并忽略,其他功能会继续同步 |
部分安全组不存在 | SecurityGroupsNotExistError=IngressErrorCode{Code:"E4097",Message:"Ingress:%s.annotation:'ingress.cloud.tencent.com/security-groups'isinvalid.anyofsecuritygroupidisnotexist.",Retry:false} | 接口报错记录并忽略,其他功能会继续同步 |
ingress.cloud.tencent.com/pass-to-target 配置失败 | PassToTargetSettingError=IngressErrorCode{Code:"E4104",Message:"Ingress:%s.Ingressusethe'ingress.cloud.tencent.com/pass-to-target',butModifyLoadBalancerAttributesapierror.",Retry:false} | 接口单独拆开配置,失败忽略,其他功能会继续同步 |
Service 错误
Service 的错误类型 | 对应的异常事件信息 | 忽略保护逻辑 |
资源被删除了 | LoadBalancerNotExistError=ServiceErrorCode{Code:"E4003",Message:"Service:%s.Theloadbalancerhasbeendeletedduringsynchronization.",Retry:true} | 资源被删除了,重新尝试同步 |
监听器已经到达数量上限 | LoadBalancerListenerLimitExceededError=ServiceErrorCode{Code:"E4020",Message:"Service:%s.Thenumberofloadbalancerlistenerreachedtheupperlimit.",Retry:true} | 忽略错误,部分监听器创建失败,其他功能会继续同步 |
创建监听器时,证书 ID 的格式错误 | CreateLoadBalancerListenerCertFormatError=ServiceErrorCode{Code:"E4021",Message:"Service:%s.TheparamsofloadbalancerlistenercertIdformatinvalid.(CreateLoadBalancerListener)",Retry:false} | 忽略错误,该监听器创建失败,其他功能会继续同步 |
创建监听器时,证书 ID 不存在 | CreateLoadBalancerListenerCertNotExistError=ServiceErrorCode{Code:"E4022",Message:"Service:%s.Theparamsofloadbalancerlistenercertnotexist.(CreateLoadBalancerListener)",Retry:true} | 忽略错误,该监听器创建失败,其他功能会继续同步 |
创建或修改监听器时,证书状态不正确 | CreateLoadBalancerListenerCertStatusError=ServiceErrorCode{Code:"E4023",Message:"Service:%s.Theparamsofloadbalancerlistenercertstatuserror.(CreateLoadBalancerListener)",Retry:true} | 忽略错误,该监听器创建失败,其他功能会继续同步 |
创建监听器时,service.kubernetes.io/service.listenerParameters 注解格式错误 | ListenerParametersFormatError=ServiceErrorCode{Code:"E4025",Message:"Service:%s.Annotationservice.kubernetes.io/service.listenerParametersformaterror.invalidjsonstring.",Retry:false} | 忽略错误,该监听器创建失败,其他功能会继续同步 |
TkeServiceConfig 不存在 | TkeServiceConfigNotFoundError=ServiceErrorCode{Code:"E4026",Message:"Service:%s.TkeServiceConfig(%s)inAnnotationservice.cloud.tencent.com/tke-service-configresourcenotfounderror.",Retry:false} | TkeServiceConfig 不存在,忽略用户配置,不影响 |
扩展协议功能,转发规则的转发路径不合法 | RuleFormatError=ServiceErrorCode{Code:"E4038",Message:"Service:%sIngressruleinvalid.Invalidpath.",Retry:false} | 忽略错误,该转发路径创建失败,其他功能会继续同步 |
扩展协议功能,用户 80\\443 端口配置了四层协议,无法创建转发规则 | RuleProtocolError=ServiceErrorCode{Code:"E4039",Message:"Service:%sListenertypewasL4(TCP/UDP).Itshouldbe(L7)HTTP/HTTPSListener.",Retry:true} | 忽略错误,该转发路径创建失败,其他功能会继续同步 |
扩展协议功能,转发规则数量到达上限 | RuleLimitExceeded=ServiceErrorCode{Code:"E4040",Message:"Service:%sUserLoadBalancerRuleLimitExceededListener%s",Retry:true} | 忽略错误,该转发路径创建失败,其他功能会继续同步 |
扩展协议功能,没有配置 TLSSecret | TLSSecretEmptyError=ServiceErrorCode{Code:"E4043",Message:"Service:%sTCP_SSL、QUIClistenermustspecifyasecretforcert.",Retry:false} | 忽略错误,监听器或转发规则将被忽略,其他功能会继续同步 |
扩展协议功能,证书 Secret 不存在 | SecretNotFoundError=ServiceErrorCode{Code:"E4044",Message:"Service:%sTCP_SSL、HTTPSorQUIClistenerusedsecret(%s)isnotfound.",Retry:false} | 忽略错误,监听器或转发规则将被忽略,其他功能会继续同步 |
扩展协议功能,证书 Secret 格式错误 | SecretContentError=ServiceErrorCode{Code:"E4045",Message:"Service:%sTCP_SSL、HTTPSorQUIClistenerusedsecret(%s)hasnodataof'qcloud_cert_id'.",Retry:false} | 忽略错误,监听器或转发规则将被忽略,其他功能会继续同步 |
创建转发规则时,用户监听器下没有配置任何域名 | TLSSNISecretEmptyError=ServiceErrorCode{Code:"E4047",Message:"Service:%sHTTPSlistenermustspecifyasecretmapfordomainandcert.",Retry:false} | 忽略错误,没有配置域名,不认为是错误场景,其他功能会继续同步 |
创建转发规则时,域名配置出现重复 | DuplicateHostError=ServiceErrorCode{Code:"E4048",Message:"Service:%sHTTPSlistenerhasdeclareduplicatehost(%s).",Retry:false} | 忽略错误,重复的域名将被忽略,其他功能会继续同步 |
创建转发规则时,域名配置出现错误 | RuleHostFormatError=ServiceErrorCode{Code:"E4049",Message:"Service:%sHTTPSlistenerhostisinvalid.host(%s)donotmatchtheregex'(\\\\*\\|[a-z0-9]([-a-z0-9]*[a-z0-9])?)(\\\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)+'",Retry:false} | 忽略错误,错误的域名将被忽略,其他功能会继续同步 |
创建转发规则时协议配置出现重复 | DuplicateProtocolError=ServiceErrorCode{Code:"E4050",Message:"Service:%sHTTPSlistenerhasdeclareduplicateprotocol(%s).",Retry:false} | 忽略错误,重复的协议将被忽略,其他功能会继续同步 |
优雅停机注解格式错误 | TKExGraceShutdownAnnotationError=ServiceErrorCode{Code:"E4051",Message:"Service:%sAnnotation'service.cloud.tencent.com/enable-grace-shutdown-tkex'shouldbetrueorfalse.",Retry:false} | 忽略错误配置,其他功能会继续同步 |
优雅停机注解格式错误 | TKEGraceShutdownAnnotationError=ServiceErrorCode{Code:"E4052",Message:"Service:%sAnnotation'service.cloud.tencent.com/enable-grace-shutdown'shouldbetrueorfalse.",Retry:false} | 忽略错误配置,其他功能会继续同步 |
扩展协议功能协议族冲突 | ConflictProtocolError=ServiceErrorCode{Code:"E4054",Message:"Service:%sHTTPSlistenerhasconflictprotocol.TCP,TCP_SSL,HTTP,HTTPScannotcreatelistenerinthesameport.UDP,QUICcannotcreatelistenerinthesameport.",Retry:false} | 忽略错误,冲突的部分监听器将被忽略,其他功能会继续同步 |
扩展协议功能七层转发域名为空,但是没有 IPv4 地址作为默认域名 | ServiceSpecifyProtocolHostEmptyError=ServiceErrorCode{Code:"E4059",Message:"Service:%s.Servicespecifyprotocolrulehostisempty.IPv6donothavedefaultdomain.",Retry:false} | 忽略错误配置,其他功能会继续同步 |
TkeServiceConfig 里面的参数配置不合法 | TkeServiceConfigContentError=ServiceErrorCode{Code:"E4060",Message:"Service:%s.tkeserviceconfigcontenterror.%s",Retry:false} | 忽略错误配置,其他功能会继续同步 |
Https 证书证书类型错误 | CreateLoadBalancerListenerCertTypeError=ServiceErrorCode{Code:"E4061",Message:"Service:%s.CertificatetypeisError.",Retry:true} | 忽略错误,监听器或转发规则将被忽略,其他功能会继续同步 |
Https 证书证书过期 | CreateLoadBalancerListenerCertOutOfDateError=ServiceErrorCode{Code:"E4062",Message:"Service:%s.CertificateoutofdateError.",Retry:true} | 忽略错误,监听器或转发规则将被忽略,其他功能会继续同步 |
后端选择后端选择语法错误 | BackendsLabelAnnotationError=ServiceErrorCode{Code:"E4063",Message:"Service:%s.Annotation'service.kubernetes.io/qcloud-loadbalancer-backends-label'isnotinvalidlabelselector.",Retry:false} | 忽略该注解配置,其他功能会继续同步 |
扩展协议功能用户没有 QUIC 协议白名单 | QUICNotSupportError=ServiceErrorCode{Code:"E4072",Message:"Service:%s.TheuseraccountdonotsupporttheQUICProtocol.whitelist:CLB_QUIC_Listener",Retry:false} | 忽略错误,监听器或转发规则将被忽略,其他功能会继续同步 |
扩展协议功能用户没有 QUIC 协议有端口冲突 | QUICConflicWithHttpsQUIC=ServiceErrorCode{Code:"E4073",Message:"Service:%s.portconflictwithHTTPSListener.theHTTPSListenermaybeopentheQUICSupport.",Retry:false} | 忽略错误,监听器或转发规则将被忽略,其他功能会继续同步 |
默认放通注解不合法 | PassToTargetAnnotationError=ServiceErrorCode{Code:"E4072",Message:"Service:%s.annotation:'service.cloud.tencent.com/pass-to-target'isinvalid.shouldbetrueorfalse.",Retry:false} | 忽略错误配置,其他功能会继续同步 |
安全组配置注解不合法 | SecurityGroupsAnnotationError=ServiceErrorCode{Code:"E4073",Message:"Service:%s.annotation:'service.cloud.tencent.com/security-groups'isinvalid.thisannotationatmosthas50securitygroupid.allofthesecuritygroupidshouldjoinby','",Retry:false} | 忽略错误配置,其他功能会继续同步 |
配置修改保护注解不合法 | ModificationProtectionAnnontationError=ServiceErrorCode{Code:"E4081",Message:"Service:%sAnnotation'service.cloud.tencent.com/modification-protection'shouldbetrueorfalse.",Retry:false} | 忽略错误配置,其他功能会继续同步 |
配置修改保护配置修改保护功能不适用于使用已有资源 | ReuseNotSupportModificationProtectionError=ServiceErrorCode{Code:"E4082",Message:"Service:%sAnnotation'service.cloud.tencent.com/modification-protection'donotsupporttheservicewithreuseloadbalancer.",Retry:false} | 忽略错误配置,其他功能会继续同步 |
配置修改保护配置修改保护未开白 | ModificationProtectionConflictError=ServiceErrorCode{Code:"E4083",Message:"Service:%sLoadbalancerwasprotectedbyuseroranotherservice.",Retry:true} | 忽略错误配置,其他功能会继续同步 |
配置修改保护配置修改保护已经被其他子账户开启,无法修改 | ModificationProtectionDoNotSupportError=ServiceErrorCode{Code:"E4084",Message:"Service:%sPleasecheckthewhitelistabouttheCLB.Functionmodificationprotectionmaynotbeopen.",Retry:true} | 忽略错误配置,其他功能会继续同步 |
四层防止回环注解不合法 | PreventLoopbackAnnontationError=ServiceErrorCode{Code:"E4085",Message:"Service:%sAnnotation'service.cloud.tencent.com/prevent-loopback'shouldbetrueorfalse.",Retry:false} | 忽略错误配置,其他功能会继续同步 |
用户在直连场景下,指定了 NoSelectService | NoSelectorService=ServiceErrorCode{Code:"E4086",Message:"Service:%s.LoadBalancerServicewithoutlabelselectorwon'thaveanyendpoint,evenifyousetEndpoints.",Retry:false} | 忽略负载均衡的后端同步,其他功能会继续同步 |
跨地域、IDC 功能 SNATIP 数量超过上限报错 | SnatIPLimitExceeded=ServiceErrorCode{Code:"E4089",Message:"Service:%s.Serviceusethe'service.cloud.tencent.com/snat-pro-info',snatipcan'texceed10.",Retry:false} | 将 SNATIP 裁剪到 10 个,其他功能会继续同步 |
安全组配置安全组 ID 格式错误 | SecurityGroupsFormatError=ServiceErrorCode{Code:"E4091",Message:"Service:%s.annotation:'service.cloud.tencent.com/security-groups'isinvalid.anyofsecuritygroupidformaterror.",Retry:false} | 忽略错误配置,其他功能会继续同步 |
安全组配置安全组不存在 | SecurityGroupsNotExistError=ServiceErrorCode{Code:"E4092",Message:"Service:%s.annotation:'service.cloud.tencent.com/security-groups'isinvalid.anyofsecuritygroupidisnotexist.",Retry:false} | 忽略错误配置,其他功能会继续同步 |
用户自行手动删除 TKE 创建 CLB
TKE CLB 类型的 Service/Ingress 组件会替用户创建 CLB。这种类型的 CLB 由 TKE 管理,且有 TKE 专有的标签:
tke-createdBy-flag:yes
。请勿单独在 CLB 侧删除或修改配置,否则会被 Service/Ingress 中描述的声明式参数覆盖。
若用户自行手动删除了由 TKE 创建的 CLB,例如通过 CLB 的控制台或者接口,Service/Ingress 组件同步时发现 CLB 不存在,不去创建新的 CLB,会在该 CLB 对应的 Service/Ingress 实例中的事件中报错。