安装 tke-extend-network-controller 前请确保满足以下前提条件:
- 确保腾讯云账号是带宽上移账号,参考 账户类型说明 进行判断或升级账号类型(如果账号创建的时间很早,有可能是传统账号)。
- 创建了 TKE 集群,且集群版本大于等于 1.26。
- 集群中安装了 cert-manager (webhook 依赖证书),可通过 TKE 应用市场 安装。
- 集群 DNS 可正常解析腾讯云内网 API 域名(如
clb.internal.tencentcloudapi.com)。控制器默认通过内网 API 域名访问云 API,不再通过 hostAlias 固定解析 API IP。 - 需要一个腾讯云子账号的访问密钥(SecretID、SecretKey),参考子账号访问密钥管理,要求账号至少具有以下权限:
{ "version": "2.0", "statement": [ { "effect": "allow", "action": [ "clb:CreateLoadBalancer", "clb:DeleteLoadBalancer", "clb:DescribeLoadBalancers", "clb:CreateListener", "clb:DeleteListener", "clb:DeleteLoadBalancerListeners", "clb:DescribeListeners", "clb:RegisterTargets", "clb:BatchRegisterTargets", "clb:DeregisterTargets", "clb:BatchDeregisterTargets", "clb:DescribeTargets", "clb:DescribeQuota", "clb:DescribeTaskStatus", "vpc:DescribeAddresses", "cvm:DescribeAddresses", "tag:TagResources", "cam:GetUserAppId" ], "resource": ["*"] } ] }
如果为访问密钥启用了网络访问限制策略,需要在“专有网络”策略中选择集群所在地域和 VPC,并放行控制器访问云 API 的 VPC 内网源 IP 或网段。若策略不生效,可通过云 API 操作审计确认该 SecretId 的实际来源 IP 与访问域名。
在 TKE 应用市场 的网络分类中找到 tke-extend-network-controller,编辑 values.yaml,根据需求进行配置,以下几个参数是必填的:
vpcID: "" # TKE 集群所在 VPC ID (vpc-xxx)
region: "" # TKE 集群所在地域,如 ap-guangzhou
clusterID: "" # TKE 集群 ID (cls-xxx)
secretID: "" # 腾讯云子账号的 SecretID
secretKey: "" # 腾讯云子账号的 SecretKey配置完成后单击【完成】即可安装到集群。
另外您也可以通过 helm 安装:
helm repo add tke-extend-network-controller https://tkestack.github.io/tke-extend-network-controller
helm upgrade --install --namespace kube-system -f values.yaml \
tke-extend-network-controller tke-extend-network-controller/tke-extend-network-controller升级方法:先执行
helm repo update,然后再重复执行上面相同的helm upgrade完整命令即可完成升级。
2.4.x 新增了 tag:TagResources 和 cam:GetUserAppId 这两个 CAM 权限,从 2.3.x 升级到 2.4.x 时,确保这两个 CAM 权限被正确添加,否则会导致无法正常工作。
如需升级,确保升级前后的 release 所在命名空间一致,比如之前安装在 tke-extend-network-controller 命名空间,那么后续升级时也需要指定 --namespace tke-extend-network-controller 而不要指定成 --namespace kube-system 或者其它。
升级时也不要执行 helm uninstall 来彻底卸载的操作,除非你清楚后果。这个很危险,因为卸载时也会删除 CRD 本身(CRD 是 chart 的 template 的一部分),如果有存量的端口池,也会被清理。