基于角色的访问控制

最佳实践指南的这一部分讨论了 chart 清单中 RBAC 资源的创建和格式化。

RBAC 资源是:

  • ServiceAccount (namespaced)
  • Role (namespaced)
  • ClusterRole
  • RoleBinding (namespaced)
  • ClusterRoleBinding

YAML 配置

RBAC 和 ServiceAccount 配置应该在单独的密钥下进行。他们是不同的东西。将 YAML 中的这两个概念拆分出来可以消除混淆并使其更清晰。

rbac:
  # Specifies whether RBAC resources should be created
  create: true

serviceAccount:
  # Specifies whether a ServiceAccount should be created
  create: true
  # The name of the ServiceAccount to use.
  # If not set and create is true, a name is generated using the fullname template
  name

此结构可以扩展到需要多个 ServiceAccounts 的更复杂的 chart。

serviceAccounts:
  client:
    create: true
    name:
  server:
    create: true
    name:

RBAC 资源应该默认创建

rbac.create 应该是一个布尔值,控制是否创建 RBAC 资源。默认应该是 true。想要管理 RBAC 访问控制的用户可以将此值设置为 false(在这种情况下请参阅下文)。

使用 RBAC 资源

serviceAccount.name 应设置为由 chart 创建的访问控制资源使用的 ServiceAccount 的名称。如果 serviceAccount.create 为 true,则应该创建一个带有该名称的 ServiceAccount。如果名称未设置,则使用该 fullname 模板生成名称,如果 serviceAccount.create 为 false,则不应创建该名称,但它仍应与相同的资源相关联,以便稍后通过手动创建的 RBAC 资源将引用它从而功能正常。如果 serviceAccount.create 为 false 且名称未指定,则使用默认的 ServiceAccount。

为 ServiceAccount 使用以下 helper 模板。

{{/*
Create the name of the service account to use
*/}}
{{- define "mychart.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
    {{ default (include "mychart.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
    {{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}
Copyright © Mingo(whmzsu@gmail.com) 2017-2018 all right reserved,powered by GitbookUpdated at 2019-01-22 19:58:55

results matching ""

    No results matching ""