【问题标题】:What roles should be created/used for deploying a service that uses istio?应该创建/使用哪些角色来部署使用 istio 的服务?
【发布时间】:2019-07-09 02:10:07
【问题描述】:

我正在构建一个启用了 istio 的 RBAC AKS 集群。我已经分配了集群管理员角色,并且我能够成功部署最小的 istio 服务(Service/Deployment/Gateway/VirtualService),没有任何问题。

我需要为我的组织内的一个团队授予对 AKS 的访问权限,因此我创建了一个命名空间并为他们分配了该命名空间的管理员角色。 k8s 原生的一切(kubectl get services --namespace team)都运行良好。但是,当他们去部署相同的最小 istio 服务(Service/Deployment/Gateway/VirtualService)时,他们遇到了许多类似的错误:

Error from server (Forbidden): error when retrieving current configuration of:
Resource: "networking.istio.io/v1alpha3, Resource=gateways", GroupVersionKind: "networking.istio.io/v1alpha3, Kind=Gateway"

这是有道理的,因为我没有将组绑定到任何 istio 角色。一旦我授予他们集群管理员权限,它就会按预期工作。

问题是,我不知道要添加哪些 istio 角色。当我在安装 istio 后查看集群中存在的角色时,我没有看到任何明显的角色。

我看到的角色:

  • istio-citadel-istio-system
  • istio-vnetingressgateway-istio-system
  • istio-sidecar-injector-istio-system
  • istio-security-post-install-istio-system
  • istio-pilot-istio-system
  • istio-ingressgateway-istio-system
  • istio-grafana-post-install-istio-system
  • istio-mixer-istio-system
  • istio-galley-istio-system
  • istio-egressgateway-istio-system

对于需要对 istio 部署(在命名空间内)进行操作的用户来说,什么是合适的角色?是角色组合吗?我需要一个新角色吗?

【问题讨论】:

  • 我认为这不是 Istio 的限制。这应该是AKS的限制。正如您所说,您授予他们集群管理员,而不是 Istio 角色,然后它就可以工作。您显示的所有角色都名为 istos-*,它们是 Istio 角色,而不是 AKS 集群。

标签: azure kubernetes istio azure-aks


【解决方案1】:

这样的角色应该可以工作:

"apiGroups": [
    "istio.io"
],
"resources": [
    "*"
],
"verbs": [
    "*"
]

如果这不起作用,您需要执行以下操作:

"apiGroups": [
    "config.istio.io",
    "networking.istio.io",
    "rbac.istio.io",
    "authentication.istio.io"
],
"resources": [
    "*"
],
"verbs": [
    "*"
]

您可以为您的用户创建角色或集群角色以及绑定或角色绑定。

【讨论】:

  • 我想我必须走这条路。我会弄清楚(试错)最小的权限集。谢谢
  • 您可以使用 istio helm 图表来计算权限。考虑接受\upvoting这个答案;)
【解决方案2】:

我使用了以下内容,它聚合到默认的 edit(然后是 admin)ClusterRoles。那么任何绑定editadmin的账号都可以修改Istio资源:

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  labels:
    rbac.authorization.k8s.io/aggregate-to-edit: "true"
  name: istio-edit
rules:
- apiGroups:
  - "config.istio.io"
  - "networking.istio.io"
  - "rbac.istio.io"
  - "authentication.istio.io"
  - "security.istio.io"
  resources:
  - "*"
  verbs:
  - "*"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2017-12-07
    • 2020-01-01
    • 2020-08-07
    • 2019-02-12
    相关资源
    最近更新 更多