产品动态
公告
产品发布记录
TkeServiceConfig 中可以声明多组域名、转发规则配置,目前主要针对负载均衡的健康检查以及对后端访问提供配置。spec.loadBalancer.l7Listeners.protocol:七层协议spec.loadBalancer.l7Listeners.port:监听端口spec.loadBalancer.l7Listeners.protocol:七层协议spec.loadBalancer.l7Listeners.port:监听端口spec.loadBalancer.l7Listeners.domains[].domain:域名spec.loadBalancer.l7Listeners.domains[].rules[].url:转发路径spec.loadBalancer.l7listeners.protocol.domain.rules.url.forwardType:指定后端协议,支持 HTTP/HTTPS/GRPC。-auto-service-config 与 -auto-ingress-config 为后缀。apiVersion: apps/v1kind: Deploymentmetadata:labels:app: jettyname: jetty-deploymentnamespace: defaultspec:progressDeadlineSeconds: 600replicas: 3revisionHistoryLimit: 10selector:matchLabels:app: jettystrategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:creationTimestamp: nulllabels:app: jettyspec:containers:- image: jetty:9.4.27-jre11imagePullPolicy: IfNotPresentname: jettyports:- containerPort: 80protocol: TCP- containerPort: 443protocol: TCPresources: {}terminationMessagePath: /dev/termination-logterminationMessagePolicy: FilednsPolicy: ClusterFirstrestartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}terminationGracePeriodSeconds: 30
apiVersion: v1kind: Servicemetadata:name: jetty-servicenamespace: defaultspec:ports:- name: tcp-80-80port: 80protocol: TCPtargetPort: 80- name: tcp-443-443port: 443protocol: TCPtargetPort: 443selector:app: jettytype: NodePort
apiVersion: networking.k8s.io/v1kind: Ingressmetadata:annotations:kubernetes.io/ingress.rule-mix: "true"kubernetes.io/ingress.http-rules: '[{"path":"/health","backend":{"serviceName":"jetty-service","servicePort":"80"}}]'kubernetes.io/ingress.https-rules: '[{"path":"/","backend":{"serviceName":"jetty-service","servicePort":"443","host":"sample.tencent.com"}}]'ingress.cloud.tencent.com/tke-service-config: jetty-ingress-config# 指定已有的 tke-service-config# ingress.cloud.tencent.com/tke-service-config-auto: "true"# 自动创建 tke-service-configname: jetty-ingressnamespace: defaultspec:rules:- http:paths:- backend:service:name: jetty-serviceport:number: 80path: /healthpathType: ImplementationSpecific- host: "sample.tencent.com"http:paths:- backend:service:name: jetty-serviceport:number: 80path: /pathType: ImplementationSpecifictls:- secretName: jetty-cert-secret
sample.tencent.com 域名暴露了一个 HTTPS 服务。/health,HTTPS 服务的转发路径是/。jetty-ingress-config 负载均衡配置。apiVersion: cloud.tencent.com/v1alpha1kind: TkeServiceConfigmetadata:name: jetty-ingress-confignamespace: defaultspec:loadBalancer:l7Listeners:- protocol: HTTPport: 80domains:- domain: "" # domain为空表示使用VIP作为域名rules:- url: "/health"forwardType: HTTP # 指定后端协议为 HTTP,目前支持 HTTP/HTTPS/GRPC。healthCheck:enable: false- protocol: HTTPSport: 443defaultServer: "sample.tencent.com" # 默认域名keepaliveEnable: 1 # 监听器开启长连接(非keepalive白名单用户,请勿声明该字段)domains:- domain: "sample.tencent.com"http2: true # 启用 HTTP 2.0rules:- url: "/"forwardType: HTTPS # 指定后端协议为 HTTPS,目前支持 HTTP/HTTPS/GRPC。session:enable: truesessionExpireTime: 3600healthCheck:enable: trueintervalTime: 10 # intervalTime 要大于 timeout,否则会出错timeout: 5 # timeout 要小于 intervalTime,否则会出错healthNum: 2unHealthNum: 2httpCheckPath: "/checkHealth"httpCheckDomain: "sample.tencent.com" #注意:健康检查必须使用固定域名进行探测,如果您在.spec.loadBalancer.l7Listeners.protocol.domains.domain 里填写的是泛域名,一定要使用 httpCheckDomain 字段明确具体需要健康检查的域名,否则泛域名不支持健康检查。httpCheckMethod: HEADhttpCode: 31 # 可选值:1~31,默认 31。 1 表示探测后返回值 1xx 代表健康,2 表示返回 2xx 代表健康,4 表示返回 3xx 代表健康,8 表示返回 4xx 代表健康,16 表示返回 5xx 代表健康。若希望多种返回码都可代表健康,则将相应的值相加。sourceIpType: 0 # 可选值:0或1,设定健康检查源ip。0 表示负载均衡VIP,1 表示 100.64.0.0/10 网段ip。对于域名化clb默认值为1且只能为1,对于非域名化的clb默认值不一定,可在clb控制台配置页面看能否看到VIP探测方式,如能看到默认值为0,否则为1,更多详情查看 https://www.tencentcloud.com/document/product/214/53639。checkType: "HTTPS" # 可选值:HTTP,HTTPS 或 TCP,默认 HTTP。2024.06之后新建的集群支持改字段,存量集群如有需要可提工单升级后台组件来支持。当 forwardType 为 HTTPS 时,checkType 只能为 TCP 或 HTTPS。scheduler: WRR # 可选值:WRR、LEAST_CONN、IP_HASH
jetty-ingress-config。且在七层监听器配置中,声明了两段配置:/health 路径下的健康检查被关闭了。sample.tencent.com。该域名下仅描述了一个转发路径为/的转发规则配置,其中配置包含以下内容:/checkHealth,检查域名为 sample.tencent.com。$ kubectl apply -f jetty-deployment.yaml$ kubectl apply -f jetty-service.yaml$ kubectl apply -f jetty-ingress.yaml$ kubectl apply -f jetty-ingress-config.yaml$ kubectl get podsNAME READY STATUS RESTARTS AGEjetty-deployment-8694c44b4c-cxscn 1/1 Running 0 8m8sjetty-deployment-8694c44b4c-mk285 1/1 Running 0 8m8sjetty-deployment-8694c44b4c-rjrtm 1/1 Running 0 8m8s# 获取TkeServiceConfig配置列表$ kubectl get tkeserviceconfigs.cloud.tencent.comNAME AGEjetty-ingress-config 52s# 更新修改TkeServiceConfig配置$ kubectl edit tkeserviceconfigs.cloud.tencent.com jetty-ingress-configtkeserviceconfigs.cloud.tencent.com/jetty-ingress-config edited
文档反馈