1.12. 사용자 및 프로파일 관리

1.12.1. Red Hat OpenShift Service Mesh 멤버 생성

ServiceMeshMember 리소스는 Red Hat OpenShift Service Mesh 관리자가 서비스 메시에 프로젝트를 추가할 수 있는 권한을 위임할 수 있는 방법을 제공합니다. 해당 사용자가 서비스 메시 프로젝트 또는 구성원 목록에 직접 액세스할 수 없는 경우에도 마찬가지입니다. 프로젝트 관리자가 프로젝트에서 ServiceMeshMember 리소스를 생성할 수 있는 권한을 자동으로 부여하는 동안 서비스 메시 관리자가 서비스 메시에 대한 액세스 권한을 명시적으로 부여할 때까지 ServiceMeshControlPlane를 가리킬 수 없습니다. 관리자는 mesh-user 사용자 역할을 부여하여 메시에 액세스할 수 있는 권한을 사용자에게 부여할 수 있습니다.

$ oc policy add-role-to-user -n istio-system --role-namespace istio-system mesh-user <user_name>

apiVersion: maistra.io/v1
kind: ServiceMeshMember
metadata:
  name: default
spec:
  controlPlaneRef:
    namespace: istio-system
    name: basic

관리자가 ServiceMeshControlPlane 리소스를 생성한 후 mesh-users 역할 바인딩이 자동으로 생성됩니다. 관리자는 다음 명령을 사용하여 사용자에게 역할을 추가할 수 있습니다.

$ oc policy add-role-to-user

관리자가 ServiceMeshControlPlane 리소스를 생성하기 전에 mesh-user 역할 바인딩을 생성할 수도 있습니다. 예를 들어 관리자는 ServiceMeshControlPlane 리소스와 동일한 oc apply 작업으로 이를 생성할 수 있습니다.

이 예제에서는 alice에 대한 역할 바인딩이 추가되었습니다.

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  namespace: istio-system
  name: mesh-users
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: mesh-user
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: alice

1.12.2.

ServiceMeshControlPlane 프로필을 사용하여 재사용 가능한 구성을 생성할 수 있습니다. 개별 사용자는 생성한 프로필을 자체 구성으로 확장할 수 있습니다. 프로필은 다른 프로필의 구성 정보를 상속할 수도 있습니다. 예를 들어, 회계 팀에 대한 계정 컨트롤 플레인과 마케팅 팀에 대한 마케팅 컨트롤 플레인을 생성할 수 있습니다. 개발 템플릿과 프로덕션 템플릿을 생성하는 경우 마케팅 팀과 회계 팀의 구성원은 팀별 사용자 지정을 통해 개발 및 프로덕션 프로필을 확장할 수 있습니다.

Operator는 Red Hat OpenShift Service Mesh의 기본 설정이 포함된 default 프로필과 함께 제공됩니다.

1.12.2.1. ConfigMap 생성

사전 요구 사항

  • Service Mesh Operator 설치 및 검증.
  • cluster-admin 역할이 있는 계정. Red Hat OpenShift Dedicated를 사용하는 경우 dedicated-admin 역할의 계정이 있어야 합니다.
  • Operator 배포 위치.
  • OpenShift CLI(oc)에 액세스합니다.

절차

  1. Red Hat OpenShift Dedicated를 사용하는 경우 dedicated-admin 역할의 계정이 있어야 합니다.
  2. CLI에서 이 명령을 실행하여 openshift-operators 프로젝트에서 smcp-templates라는 ConfigMap을 생성하고 <profiles-directory>를 로컬 디스크의 ServiceMeshControlPlane 파일의 위치로 교체합니다.

    $ oc create configmap --from-file=<profiles-directory> smcp-templates -n openshift-operators
  3. ServiceMeshControlPlane에서 profiles 매개변수를 사용하여 하나 이상의 템플릿을 지정할 수 있습니다.

      apiVersion: maistra.io/v2
      kind: ServiceMeshControlPlane
      metadata:
        name: basic
      spec:
        profiles:
        - default

1.12.2.2. 올바른 네트워크 정책 설정

  • Istio가 제대로 작동하려면 서비스 메시로 들어오는 트래픽이 항상 Ingress-gateway를 통과해야 합니다.
  • 서비스 메시에 없는 별도의 네임스페이스에서 서비스 메시 외부에 서비스를 배포합니다.