diff --git a/introduction/vulnerability/cloudprovider.md b/introduction/vulnerability/cloudprovider.md index 2acf1f66..1fa6285a 100644 --- a/introduction/vulnerability/cloudprovider.md +++ b/introduction/vulnerability/cloudprovider.md @@ -4,6 +4,8 @@ UK8S 通过 CloudProvider 插件,实现集群中 LoadBalancer 类型服务(S ## 版本问题 +如您集群 CloudProvider 为以下版本,请您务必及时按照文档更新,避免影响业务。升级过程不影响线上业务,但仍建议您在业务闲时进行更新,如有问题请及时与我们联系。 + * 低于`20.10.1`版本 `20.10.1` 之前的版本存在 bug,会在 Service 重启时发生误判,导致重复创建 ULB 实例并写入集群,造成集群相应 Service 的不可用。为此我们对 CloudProvider @@ -11,9 +13,7 @@ UK8S 通过 CloudProvider 插件,实现集群中 LoadBalancer 类型服务(S * `24.03.13`版本 -从 `24.03.13` 版本开始支持了[应用型负载均衡ALB](/ulb/alb/intro/whatisalb),但是此版本在多个 Service 绑定同一个 ALB 时存在问题,使用此版本的用户建议尽快升级到 `24.06.28`。 - -如您集群 CloudProvider 版本为相关版本,请您务必及时按照文档更新,避免影响业务。升级过程不影响线上业务,但仍建议您在业务闲时进行更新,如有问题请及时与我们联系。 +从 `24.03.13` 版本开始支持了[应用型负载均衡ALB](/ulb/alb/intro/whatisalb),后续版本修复了 ALB 使用中的一些问题,推荐升级到 `24.08.13` 版本来使用 ALB。 ## 1. 版本查看及插件升级 @@ -34,7 +34,7 @@ CloudProvider 插件升级功能会在集群中执⾏ CloudProvider 插件查询 这时候,您可以手动升级cloudprovider,请执行下面的命令: ```bash -kubectl apply -f https://docs.ucloud.cn/uk8s/yaml/cloudprovider/24.06.28.yml +kubectl apply -f https://docs.ucloud.cn/uk8s/yaml/cloudprovider/24.08.13.yml ``` ### 1.3 老版本升级 diff --git a/service/annotations.md b/service/annotations.md index cfbf7b15..f0234a4b 100644 --- a/service/annotations.md +++ b/service/annotations.md @@ -16,7 +16,7 @@ | -------------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | service.beta.kubernetes.io/ucloud-load-balancer-type | outer | 负载均衡网络类型,枚举值为 inner / outer。 | | service.beta.kubernetes.io/ucloud-load-balancer-vserver-protocol | tcp | VServer 协议类型,枚举值为 tcp / udp / http / https。 | -| service.beta.kubernetes.io/ucloud-load-balancer-listentype | / | 负载均衡类型,枚举值为 packetstransmit / requestproxy/application(alb)。
1. ULB 类型为请求代理,VServer 协议为 tcp:该参数配置为 requestproxy,vserver-protocol 配置为 tcp;
2. ULB 类型为请求代理,VServer 协议为 http / https:无需配置该参数,自动按照 vserver-protocol 配置;
3. ULB 类型为报文转发,VServer 协议为 tcp / udp:无需配置该参数,自动按照 vserver-protocol 配置。
负载均衡类型及 VServer 协议类型详情说明请参见:[负载均衡类型](/ulb/fast/createulb/networktype)
4. ULB类型application时创建的是alb(仅24.03.13版本之后支持),vserver可选 http/https| +| service.beta.kubernetes.io/ucloud-load-balancer-listentype | / | 负载均衡类型,枚举值为 packetstransmit / requestproxy / application。
1. ULB 类型为请求代理,VServer 协议为 tcp:该参数配置为 requestproxy,vserver-protocol 配置为 tcp;
2. ULB 类型为请求代理,VServer 协议为 http / https:无需配置该参数,自动按照 vserver-protocol 配置;
3. ULB 类型为报文转发,VServer 协议为 tcp / udp:无需配置该参数,自动按照 vserver-protocol 配置。
4. ULB类型为ALB,该参数配置为 application(仅24.03.13版本之后支持),vserver-protocol 可选 http / https;
负载均衡类型及 VServer 协议类型详情说明请参见:[负载均衡类型](/ulb/fast/createulb/networktype) | | service.beta.kubernetes.io/ucloud-load-balancer-vserver-method | roundrobin | VServer的负载均衡模式,枚举值为 roundrobin(轮询)、source(源地址)、consistenthash(一致性哈希)、sourceport(源地址计算端口)、consistenthashport(端口一致性哈希)、backup(主备,alb独占)。 | | service.beta.kubernetes.io/ucloud-load-balancer-vserver-client-timeout | 0/60 | 使用 ULB4 时,表示连接保持时间,单位为秒,取值 [60, 900],0 表示禁用连接保持,默认为 0(不需要指定参数)。
使用 ULB7 时,表示空闲连接的回收时间,单位为秒,取值为 (0, 86400],0 表示禁用连接保持,默认为 60。
指定参数后,persistence-type 不能为 none。 | | service.beta.kubernetes.io/ucloud-load-balancer-vserver-session-persistence-type | none | 会话保持方式,枚举值为 none(关闭)、serverinsert(自动生成 KEY)、userdefined(用户自定义 KEY)。 | @@ -24,8 +24,8 @@ | service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-cert | / | ssl 证书 ID,必须和 ssl-port 同时指定,需要先将证书上传至 UCloud。
负载均衡所使用的 SSL 证书的管理,请参见 ULB 文档:[添加证书](/ulb/guide/certificate/addcertificate) | | service.beta.kubernetes.io/ucloud-load-balancer-vserver-session-persistence-info | / | 用户自定义 KEY,persistence-type 为 userdefined 时有效。 | | service.beta.kubernetes.io/ucloud-load-balancer-vserver-monitor-type | port | 健康检查方式,枚举值为 port / path / customize。
请求代理型 TCP 协议仅支持 port,其他协议支持 port 和 path;报文转发型 TCP 协议仅支持 port,UDP 协议支持 port 和 customize;ALB支持Port,HTTP | -| service.beta.kubernetes.io/ucloud-load-balancer-vserver-monitor-domain | / | monitor-type 为 path 时有效,指 http 检查域名。 | -| service.beta.kubernetes.io/ucloud-load-balancer-vserver-monitor-path | none | monitor-type 为 path 时有效,指 http 检查路径。
默认值为空,表示检查根路径`/`;如要自定义路径,只需提供根路径后面的部分,如`health`或`status/ready` | +| service.beta.kubernetes.io/ucloud-load-balancer-vserver-monitor-domain | / | clb7 的 monitor-type 为 path 时, 或者 alb 的 monitor-type 为 HTTP 时有效,指 http 检查域名。 | +| service.beta.kubernetes.io/ucloud-load-balancer-vserver-monitor-path | none | clb7 的 monitor-type 为 path 时, 或者 alb 的 monitor-type 为 HTTP 时有效,指 http 检查路径。
默认值为空,表示检查根路径`/`;如要自定义路径,只需提供根路径后面的部分,如`health`或`status/ready` | | service.beta.kubernetes.io/ucloud-load-balancer-subnet-id | VPC 默认子网 | 创建 ULB 所在子网,填写子网 ID,如 subnet-xxxxxxxx。 | | service.beta.kubernetes.io/ucloud-load-balancer-remove-unscheduled-backend | true | 移除不可被调度节点,枚举值 true / false,设置为 false 后节点不可调度时不会自动被 ULB 剔除。
仅在 21.04.1 及以后 cloudprovider 版本中支持。 | | service.beta.kubernetes.io/ucloud-load-balancer-vserver-monitor-reqmsg | / | UDP 健康检查发出的请求报文,仅在 protocol 设置为 udp 时生效。
仅在 21.05.1 及以后 cloudprovider 版本中支持。 | diff --git a/service/cp_update.md b/service/cp_update.md index f8ee37f1..a0ce7e87 100644 --- a/service/cp_update.md +++ b/service/cp_update.md @@ -4,6 +4,8 @@ UK8S 通过 CloudProvider 插件,实现集群中 LoadBalancer 类型服务(S ## 版本问题 +如您集群 CloudProvider 为以下版本,请您务必及时按照文档更新,避免影响业务。升级过程不影响线上业务,但仍建议您在业务闲时进行更新,如有问题请及时与我们联系。 + * 低于`20.10.1`版本 `20.10.1` 之前的版本存在 bug,会在 Service 重启时发生误判,导致重复创建 ULB 实例并写入集群,造成集群相应 Service 的不可用。为此我们对 CloudProvider @@ -11,9 +13,7 @@ UK8S 通过 CloudProvider 插件,实现集群中 LoadBalancer 类型服务(S * `24.03.13`版本 -从 `24.03.13` 版本开始支持了[应用型负载均衡ALB](/ulb/alb/intro/whatisalb),但是此版本在多个 Service 绑定同一个 ALB 时存在问题,使用此版本的用户建议尽快升级到 `24.06.28`。 - -如您集群 CloudProvider 版本为相关版本,请您务必及时按照文档更新,避免影响业务。升级过程不影响线上业务,但仍建议您在业务闲时进行更新,如有问题请及时与我们联系。 +从 `24.03.13` 版本开始支持了[应用型负载均衡ALB](/ulb/alb/intro/whatisalb),后续版本修复了 ALB 使用中的一些问题,推荐升级到 `24.08.13` 版本来使用 ALB。 ## 1. 版本查看及插件升级 @@ -34,7 +34,7 @@ CloudProvider 插件升级功能会在集群中执⾏ CloudProvider 插件查询 这时候,您可以手动升级cloudprovider,请执行下面的命令: ```bash -kubectl apply -f https://docs.ucloud.cn/uk8s/yaml/cloudprovider/24.06.28.yml +kubectl apply -f https://docs.ucloud.cn/uk8s/yaml/cloudprovider/24.08.13.yml ``` ### 1.3 老版本升级 diff --git a/service/internalservice.md b/service/internalservice.md index 1eb7f014..637c7da6 100644 --- a/service/internalservice.md +++ b/service/internalservice.md @@ -12,7 +12,7 @@ * ALB使用 -目前请求代理型 CLB 存在[一系列配额限制](/ulb/intro/limit),可能会在使用过程造成服务问题,因此如有七层代理的需求,推荐您使用[应用型负载均衡ALB](/ulb/alb/intro/whatisalb)。如需使用 ALB 产品,请升级 cloudprovider 版本到 `24.06.28` 及以上,参考[CloudProvider 插件更新](/uk8s/service/cp_update)。 +目前请求代理型 CLB 存在[一系列配额限制](/ulb/intro/limit),可能会在使用过程造成服务问题,因此如有七层代理的需求,推荐您使用[应用型负载均衡ALB](/ulb/alb/intro/whatisalb)。如需使用 ALB 产品,请升级 cloudprovider 版本到 `24.08.13` 及以上,参考[CloudProvider 插件更新](/uk8s/service/cp_update)。 * 参数修改 @@ -45,7 +45,7 @@ ULB支持“报文转发(ULB4)”及“请求代理(ULB7)”两种转发模 ### 4.1 通过ULB7对外暴露服务(http/https) -> ⚠️ 使用 ALB 需要 [CloudProvider](/uk8s/service/cp_update) 版本 >= 24.06.28。 +> ⚠️ 使用 ALB 时,推荐升级 [CloudProvider](/uk8s/service/cp_update) 版本到 >= 24.08.13。 UK8S在集群内可以直接使用 LoadBalancer 类型的Service,如果需要对外提供http/https协议,建议选择应用型负载均衡ALB;用户可以通过Service的"annotations"来配置ULB类型以及其他参数;更多参数信息可参考[ULB参数说明](/uk8s/service/annotations)。 diff --git a/service/ulb_designation.md b/service/ulb_designation.md index 1636bc26..60f7d1ff 100644 --- a/service/ulb_designation.md +++ b/service/ulb_designation.md @@ -16,7 +16,7 @@ UK8S支持在创建 LoadBalancer 类型的 Service 时,指定使用已有的 U ## 使用已有ALB -> ⚠️ 使用 ALB 需要 [CloudProvider](/uk8s/service/cp_update) 版本 >= 24.06.28。 +> ⚠️ 使用 ALB 时,推荐升级 [CloudProvider](/uk8s/service/cp_update) 版本到 >= 24.08.13。 ```yaml apiVersion: v1 diff --git a/yaml/cloudprovider/24.08.13.yml b/yaml/cloudprovider/24.08.13.yml new file mode 100644 index 00000000..789fb0d1 --- /dev/null +++ b/yaml/cloudprovider/24.08.13.yml @@ -0,0 +1,103 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: cloudprovider-ucloud + namespace: kube-system + labels: + app: "cloudprovider-ucloud" +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: cloudprovider-ucloud + labels: + app: "cloudprovider-ucloud" +rules: + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["services"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["services/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["endpoints"] + verbs: ["create", "get", "list", "watch", "update"] + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["create", "get", "list", "watch", "update"] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: cloudprovider-ucloud + labels: + app: "cloudprovider-ucloud" +subjects: + - kind: ServiceAccount + name: cloudprovider-ucloud + namespace: kube-system +roleRef: + kind: ClusterRole + name: cloudprovider-ucloud + apiGroup: rbac.authorization.k8s.io +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: cloudprovider-ucloud + namespace: kube-system + labels: + app: cloudprovider-ucloud +spec: + replicas: 1 + selector: + matchLabels: + app: cloudprovider-ucloud + template: + metadata: + labels: + app: cloudprovider-ucloud + spec: + serviceAccount: cloudprovider-ucloud + hostNetwork: true + containers: + - name: cloudprovider-ucloud + image: uhub.service.ucloud.cn/uk8s/cloudprovider-ucloud:24.08.13 + imagePullPolicy: Always + resources: + requests: + memory: "128Mi" + cpu: "100m" + limits: + memory: "1Gi" + cpu: "500m" + envFrom: + - configMapRef: + name: uk8sconfig + env: + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + volumeMounts: + - name: host-log + mountPath: /var/log/ucloud/ + volumes: + - name: host-log + hostPath: + path: /var/log/ucloud/