1.12. 사용자 및 프로파일 관리
1.12.1. Red Hat OpenShift Service Mesh 멤버 생성
ServiceMeshMember
리소스는 Red Hat OpenShift Service Mesh 관리자가 서비스 메시에 프로젝트를 추가할 수 있는 권한을 위임할 수 있는 방법을 제공합니다. 해당 사용자가 서비스 메시 프로젝트 또는 구성원 목록에 직접 액세스할 수 없는 경우에도 마찬가지입니다. 프로젝트 관리자가 프로젝트에서 ServiceMeshMember
리소스를 생성할 수 있는 권한을 자동으로 부여하는 동안 서비스 메시 관리자가 서비스 메시에 대한 액세스 권한을 명시적으로 부여할 때까지 ServiceMeshControlPlane
를 가리킬 수 없습니다. 관리자는 mesh-user
사용자 역할을 부여하여 메시에 액세스할 수 있는 권한을 사용자에게 부여할 수 있습니다. 이 예제에서 istio-system
은 Service Mesh Control Plane 프로젝트의 이름입니다.
$ oc policy add-role-to-user -n istio-system --role-namespace istio-system mesh-user <user_name>
관리자는 Service Mesh Control Plane 프로젝트에서 meshuser
역할 바인딩을 수정하여 액세스 권한이 부여된 사용자 및 그룹을 지정할 수 있습니다. ServiceMeshMember
는 이를 참조하는 Service Mesh Control Plane 프로젝트 내의 ServiceMeshMemberRoll
에 프로젝트를 추가합니다.
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. Service Mesh Control Plane 프로필 생성
ServiceMeshControlPlane
프로필을 사용하여 재사용 가능한 구성을 생성할 수 있습니다. 개별 사용자는 생성한 프로필을 자체 구성으로 확장할 수 있습니다. 프로필은 다른 프로필의 구성 정보를 상속할 수도 있습니다. 예를 들어, 회계 팀에 대한 계정 컨트롤 플레인과 마케팅 팀에 대한 마케팅 컨트롤 플레인을 생성할 수 있습니다. 개발 템플릿과 프로덕션 템플릿을 생성하는 경우 마케팅 팀과 회계 팀의 구성원은 팀별 사용자 지정을 통해 개발 및 프로덕션 프로필을 확장할 수 있습니다.
ServiceMeshControlPlane
과 동일한 구문을 따르는 Service Mesh Control Plane 프로필을 구성하면, 사용자는 계층적으로 설정을 상속합니다. Operator는 Red Hat OpenShift Service Mesh의 기본 설정이 포함된 default
프로필과 함께 제공됩니다.
1.12.2.1. ConfigMap 생성
사용자 지정 프로필을 추가하려면 openshift-operators
프로젝트에서 smcp-templates
라는 ConfigMap
을 생성해야 합니다. Operator 컨테이너는 ConfigMap
을 자동으로 마운트합니다.
사전 요구 사항
- Service Mesh Operator 설치 및 검증.
-
cluster-admin
역할이 있는 계정. Red Hat OpenShift Dedicated를 사용하는 경우dedicated-admin
역할의 계정이 있어야 합니다. - Operator 배포 위치.
-
OpenShift CLI(
oc
)에 액세스합니다.
절차
-
OpenShift Container Platform CLI에
cluster-admin
로 로그인합니다. Red Hat OpenShift Dedicated를 사용하는 경우dedicated-admin
역할의 계정이 있어야 합니다. CLI에서 이 명령을 실행하여
openshift-operators
프로젝트에서smcp-templates
라는 ConfigMap을 생성하고<profiles-directory>
를 로컬 디스크의ServiceMeshControlPlane
파일의 위치로 교체합니다.$ oc create configmap --from-file=<profiles-directory> smcp-templates -n openshift-operators
ServiceMeshControlPlane
에서profiles
매개변수를 사용하여 하나 이상의 템플릿을 지정할 수 있습니다.apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic spec: profiles: - default
1.12.2.2. 올바른 네트워크 정책 설정
서비스 메시는 서비스 메시 컨트롤 플레인과 멤버 네임스페이스에서 네트워크 정책을 생성하여 트래픽을 허용합니다. 배포하기 전에 다음 조건을 고려하여 OpenShift Container Platform 경로를 통해 이전에 노출된 서비스 메시의 서비스를 확인하십시오.
- Istio가 제대로 작동하려면 서비스 메시로 들어오는 트래픽이 항상 Ingress-gateway를 통과해야 합니다.
- 서비스 메시에 없는 별도의 네임스페이스에서 서비스 메시 외부에 서비스를 배포합니다.
-
서비스 메시 등록 네임스페이스에 배포해야 하는 메시 외 서비스는 해당 배포
maistra.io/expose-route: "true"
에 레이블을 지정하여 OpenShift Container Platform 경로가 여전히 작동하도록 해야 합니다.