Skip to content

Commit

Permalink
Merge pull request #170 from aixiak/master
Browse files Browse the repository at this point in the history
优化cloudprovider相关文档
  • Loading branch information
aixiak authored Sep 11, 2024
2 parents c3c304d + 41700f7 commit d958576
Show file tree
Hide file tree
Showing 6 changed files with 117 additions and 14 deletions.
8 changes: 4 additions & 4 deletions introduction/vulnerability/cloudprovider.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ UK8S 通过 CloudProvider 插件,实现集群中 LoadBalancer 类型服务(S

## 版本问题

如您集群 CloudProvider 为以下版本,请您务必及时按照文档更新,避免影响业务。升级过程不影响线上业务,但仍建议您在业务闲时进行更新,如有问题请及时与我们联系。

* 低于`20.10.1`版本

`20.10.1` 之前的版本存在 bug,会在 Service 重启时发生误判,导致重复创建 ULB 实例并写入集群,造成集群相应 Service 的不可用。为此我们对 CloudProvider
插件进行了优化,完善 ULB 相关接口的调用逻辑,避免了上述问题的出现。

* `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. 版本查看及插件升级

Expand All @@ -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 老版本升级
Expand Down
6 changes: 3 additions & 3 deletions service/annotations.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@
| -------------------------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 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)。<br>1. ULB 类型为请求代理,VServer 协议为 tcp:该参数配置为 requestproxy,vserver-protocol 配置为 tcp;<br>2. ULB 类型为请求代理,VServer 协议为 http / https:无需配置该参数,自动按照 vserver-protocol 配置;<br>3. ULB 类型为报文转发,VServer 协议为 tcp / udp:无需配置该参数,自动按照 vserver-protocol 配置。<br>负载均衡类型及 VServer 协议类型详情说明请参见:[负载均衡类型](/ulb/fast/createulb/networktype) <br> 4. ULB类型application时创建的是alb(仅24.03.13版本之后支持),vserver可选 http/https|
| service.beta.kubernetes.io/ucloud-load-balancer-listentype | / | 负载均衡类型,枚举值为 packetstransmit / requestproxy / application。<br>1. ULB 类型为请求代理,VServer 协议为 tcp:该参数配置为 requestproxy,vserver-protocol 配置为 tcp;<br>2. ULB 类型为请求代理,VServer 协议为 http / https:无需配置该参数,自动按照 vserver-protocol 配置;<br>3. ULB 类型为报文转发,VServer 协议为 tcp / udp:无需配置该参数,自动按照 vserver-protocol 配置。<br> 4. ULB类型为ALB,该参数配置为 application(仅24.03.13版本之后支持),vserver-protocol 可选 http / https;<br>负载均衡类型及 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(不需要指定参数)。<br>使用 ULB7 时,表示空闲连接的回收时间,单位为秒,取值为 (0, 86400],0 表示禁用连接保持,默认为 60。<br>指定参数后,persistence-type 不能为 none。 |
| service.beta.kubernetes.io/ucloud-load-balancer-vserver-session-persistence-type | none | 会话保持方式,枚举值为 none(关闭)、serverinsert(自动生成 KEY)、userdefined(用户自定义 KEY)。 |
| service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-port | / | 开启 ssl 协议的端口,多个用 "," 分隔开,必须和 ssl-cert 同时指定。 |
| service.beta.kubernetes.io/ucloud-load-balancer-vserver-ssl-cert | / | ssl 证书 ID,必须和 ssl-port 同时指定,需要先将证书上传至 UCloud。<br>负载均衡所使用的 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。<br>请求代理型 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 检查路径。<br>默认值为空,表示检查根路径`/`;如要自定义路径,只需提供根路径后面的部分,如`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 检查路径。<br>默认值为空,表示检查根路径`/`;如要自定义路径,只需提供根路径后面的部分,如`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 剔除。<br>仅在 21.04.1 及以后 cloudprovider 版本中支持。 |
| service.beta.kubernetes.io/ucloud-load-balancer-vserver-monitor-reqmsg | / | UDP 健康检查发出的请求报文,仅在 protocol 设置为 udp 时生效。<br>仅在 21.05.1 及以后 cloudprovider 版本中支持。 |
Expand Down
8 changes: 4 additions & 4 deletions service/cp_update.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ UK8S 通过 CloudProvider 插件,实现集群中 LoadBalancer 类型服务(S

## 版本问题

如您集群 CloudProvider 为以下版本,请您务必及时按照文档更新,避免影响业务。升级过程不影响线上业务,但仍建议您在业务闲时进行更新,如有问题请及时与我们联系。

* 低于`20.10.1`版本

`20.10.1` 之前的版本存在 bug,会在 Service 重启时发生误判,导致重复创建 ULB 实例并写入集群,造成集群相应 Service 的不可用。为此我们对 CloudProvider
插件进行了优化,完善 ULB 相关接口的调用逻辑,避免了上述问题的出现。

* `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. 版本查看及插件升级

Expand All @@ -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 老版本升级
Expand Down
4 changes: 2 additions & 2 deletions service/internalservice.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

* 参数修改

Expand Down Expand Up @@ -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)

Expand Down
2 changes: 1 addition & 1 deletion service/ulb_designation.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
103 changes: 103 additions & 0 deletions yaml/cloudprovider/24.08.13.yml
Original file line number Diff line number Diff line change
@@ -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/

0 comments on commit d958576

Please sign in to comment.