higress需要调用k8s哪些接口或功能,需要k8s最低哪一级的角色权限?higress需要调用k8s哪些接口或功能,需要k8s最低哪一级的角色权限?
我们给到的建议是:
Higress 作为 Kubernetes (K8s) 上的 Ingress 控制器,主要负责管理和路由外部请求到 K8s 集群内的服务。为了实现这些功能,Higress 需要调用 K8s 的以下接口或功能,并且需要 K8s 最低为 ClusterRole 角色的权限:
读取 Service 和 Endpoints:Higress 需要读取 Kubernetes 集群中的 Service 和对应的 Endpoints,以便知道如何将流量路由到正确的后端服务。这通常涉及到 list 和 watch 操作,以实时更新其路由规则。
读写 Ingress 资源:Higress 会读取 Ingress 资源来了解如何配置 HTTP(S) 路由规则。同时,它可能需要更新这些资源的状态,以反映实际实施的路由配置情况。
网络策略:为了正确地管理进出流量,Higress 可能需要创建和管理 NetworkPolicy,确保只有合法的流量能够到达服务。
ServiceAccount:Higress 运行时可能需要使用 ServiceAccount 来获取访问 Kubernetes API 的凭据。
ConfigMap 和 Secret:Higress 配置可能存储在 ConfigMap 和 Secret 中,因此需要读取这些资源的能力,以便加载其配置。
关于角色权限,Higress 至少需要一个具备如下权限的 ClusterRole 或更细粒度的 Role(如果采用命名空间范围):
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: higress-clusterrole
rules:
apiGroups: [""]
resources: ["services", "endpoints", "pods", "nodes"]
verbs: ["get", "list", "watch"]
apiGroups: ["extensions", "networking.k8s.io"]
resources: ["ingresses", "ingresses/status"]
verbs: ["get", "list", "watch", "update"]
apiGroups: ["higress.io"]
resources: ["higressroutes", "higressglobalplugins", "higressclusterplugins"]
verbs: ["*"]
apiGroups: ["policy"]
resources: ["podsecuritypolicies"]
verbs: ["use"]
apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["get", "create", "update"]
由于在提供的知识内容中并未直接提及所需的最低角色权限级别和具体接口调用细节,以上信息基于 Kubernetes Ingress 控制器的一般需求推测。实际部署时,请参考 Higress 的官方文档来确认最准确的权限需求和配置指南。
参考链接:
*专家经验:在 K8s 中使用higress此回答整理自钉群"Higress 社区交流 2 群"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。