如何修改rancher 访问k8s集群的cluster IP?

Rancher Server 设置

  • Rancher 版本:2.7.9
  • 安装选项 (Docker install/Helm Chart):
    • 如果是 Helm Chart 安装,需要提供 Local 集群的类型(RKE1, RKE2, k3s, EKS, 等)和版本:helm安装,通过1.26 k8s TKE集群
  • 在线或离线部署:在线

下游集群信息

  • Kubernetes 版本: 1.26
  • Cluster Type (Local/Downstream): 导入第三方集群
    • 如果 Downstream,是什么类型的集群?(自定义/导入或为托管 等):

用户信息

  • 登录用户的角色是什么? (管理员/集群所有者/集群成员/项目所有者/项目成员/自定义):admin
    • 如果自定义,自定义权限集:

主机操作系统:

问题描述:
注册第三方集群后,一直提示notReady, [Disconnected] Cluster agent is not connected

重现步骤: 注册非rancher所在的其他K8S集群

结果: 查看日志是rancher连不上第三方集群的apiserver,发现是直接连接的第三方集群的default 命名空间的kubernetes cluster IP,rancher跟第三方集群不在一个k8s集群内,肯定无法访问第三方集群的cluster IP

E0110 04:16:56.515491 33 reflector.go:141] pkg/mod/github.com/rancher/client-go@v1.25.4-rancher1/tools/cache/reflector.go:170: Failed to watch *v1.ConfigMap: failed to list *v1.ConfigMap: Get “https://10.134.252.1:443/api/v1/configmaps?resourceVersion=463282301”: cluster agent disconnected

**预期结果:**修改可以修改rancher访问第三方集群的cluster IP为kubeconfig里面的lb IP

截图:

其他上下文信息:

日志


可以通过编辑kubectl edit clusters.management.cattle.io c-m-vzktcwjf crd修改apiEndpoint,貌似签发的证书也要改,有更优雅的方式吗?比如直接传入一个kubeconfig给rancher

详细的说下你的网络架构是啥样的呗

注册集群时候需要添加环境变量如下:
- name: KUBERNETES_SERVICE_HOST
value: 106.55.220.46
- name: KUBERNETES_SERVICE_PORT
value: “443”

一套rancher k8s专有集群,一套业务k8s集群
rancher k8s集群跟业务k8s集群容器网络能互通,但是service网络不能互通,所以rancher请求业务k8s集群的apiserver不能为defualt.kubernetes cluster IP,需要修改该地址。建议官网文档注册集群页面补全支持的环境变量