Configuração: tarefas de administração do cluster
As seguintes tarefas são executadas pelo administrador de cluster do Red Hat OpenShift:
-
Efetue login no cluster Red Hat OpenShift como administrador do cluster.
-
Crie dois projetos correspondentes a projetos diferentes.
oc create namespace project-1 oc create namespace project-2
-
Crie a função de desenvolvedor para o projeto-1.
cat << EOF | oc create -f -
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: project-1
name: developer-project-1
rules:
- verbs:
- '*'
apiGroups:
- apps
- batch
- autoscaling
- extensions
- networking.k8s.io
- policy
- apps.openshift.io
- build.openshift.io
- image.openshift.io
- ingress.operator.openshift.io
- route.openshift.io
- snapshot.storage.k8s.io
- template.openshift.io
resources:
- '*'
- verbs:
- '*'
apiGroups:
- ''
resources:
- bindings
- configmaps
- endpoints
- events
- persistentvolumeclaims
- pods
- pods/log
- pods/attach
- podtemplates
- replicationcontrollers
- services
- limitranges
- namespaces
- componentstatuses
- nodes
- verbs:
- '*'
apiGroups:
- trident.netapp.io
resources:
- tridentsnapshots
EOF
|
|
A definição de função fornecida nesta seção é apenas um exemplo. As funções do desenvolvedor devem ser definidas com base nos requisitos do usuário final. |
-
Da mesma forma, crie funções de desenvolvedor para o projeto-2.
-
Todos os recursos de armazenamento do OpenShift e NetApp geralmente são gerenciados por um administrador de armazenamento. O acesso para administradores de armazenamento é controlado pela função de operador do Trident, criada quando o Trident é instalado. Além disso, o administrador de armazenamento também precisa de acesso ao ResourceQuotas para controlar como o armazenamento é consumido.
-
Crie uma função para gerenciar ResourceQuotas em todos os projetos no cluster para anexá-la ao administrador de armazenamento.
cat << EOF | oc create -f -
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: resource-quotas-role
rules:
- verbs:
- '*'
apiGroups:
- ''
resources:
- resourcequotas
- verbs:
- '*'
apiGroups:
- quota.openshift.io
resources:
- '*'
EOF
-
Certifique-se de que o cluster esteja integrado ao provedor de identidade da organização e que os grupos de usuários estejam sincronizados com os grupos do cluster. O exemplo a seguir mostra que o provedor de identidade foi integrado ao cluster e sincronizado com os grupos de usuários.
$ oc get groups NAME USERS ocp-netapp-storage-admins ocp-netapp-storage-admin ocp-project-1 ocp-project-1-user ocp-project-2 ocp-project-2-user
-
Configurar ClusterRoleBindings para administradores de armazenamento.
cat << EOF | oc create -f -
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: netapp-storage-admin-trident-operator
subjects:
- kind: Group
apiGroup: rbac.authorization.k8s.io
name: ocp-netapp-storage-admins
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: trident-operator
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: netapp-storage-admin-resource-quotas-cr
subjects:
- kind: Group
apiGroup: rbac.authorization.k8s.io
name: ocp-netapp-storage-admins
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: resource-quotas-role
EOF
|
|
Para administradores de armazenamento, duas funções devem ser vinculadas: trident-operator e resource-quotas. |
-
Crie RoleBindings para desenvolvedores vincularem a função developer-project-1 ao grupo correspondente (ocp-project-1) no project-1.
cat << EOF | oc create -f -
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: project-1-developer
namespace: project-1
subjects:
- kind: Group
apiGroup: rbac.authorization.k8s.io
name: ocp-project-1
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: developer-project-1
EOF
-
Da mesma forma, crie RoleBindings para desenvolvedores vinculando as funções de desenvolvedor ao grupo de usuários correspondente no projeto-2.