4.3. 클러스터에 플러그인 배포
OpenShift Dedicated 클러스터에 플러그인을 배포할 수 있습니다.
4.3.1. Docker로 이미지 빌드
클러스터에 플러그인을 배포하려면 이미지를 빌드하고 먼저 이미지 레지스트리로 푸시해야 합니다.
프로세스
다음 명령을 사용하여 이미지를 빌드합니다.
$ docker build -t quay.io/my-repositroy/my-plugin:latest .
선택 사항: 이미지를 테스트하려면 다음 명령을 실행합니다.
$ docker run -it --rm -d -p 9001:80 quay.io/my-repository/my-plugin:latest
다음 명령을 실행하여 이미지를 내보냅니다.
$ docker push quay.io/my-repository/my-plugin:latest
4.3.2. 클러스터에 플러그인 배포
레지스트리에 변경 사항이 있는 이미지를 푸시한 후 Helm 차트를 사용하여 클러스터에 플러그인을 배포할 수 있습니다.
사전 요구 사항
이전에 내보낸 플러그인이 포함된 이미지의 위치가 있어야 합니다.
참고플러그인의 필요에 따라 추가 매개변수를 지정할 수 있습니다.
values.yaml
파일은 지원되는 전체 매개변수 세트를 제공합니다.
프로세스
플러그인 이름을 사용하여 클러스터에 플러그인을 배포하려면 Helm 릴리스 이름으로
-n
명령줄 옵션에 지정된 기존 네임스페이스 또는 기존 네임스페이스에 Helm 차트를 설치합니다. 다음 명령을 사용하여plugin.image
매개변수 내에 이미지 위치를 제공합니다.$ helm upgrade -i my-plugin charts/openshift-console-plugin -n my-plugin-namespace --create-namespace --set plugin.image=my-plugin-image-location
다음과 같습니다.
n <my-plugin-namespace>
- 플러그인을 배포할 기존 네임스페이스를 지정합니다.
--create-namespace
- 선택 사항: 새 네임스페이스에 배포하는 경우 이 매개변수를 사용합니다.
--set plugin.image=my-plugin-image-location
-
plugin.image
매개변수 내의 이미지 위치를 지정합니다.
참고OpenShift Dedicated 4.10 이상에 배포하는 경우 매개변수
--set plugin.securityContext.enabled=false
를 추가하여 Pod 보안과 관련된 구성을 제외하는 것이 좋습니다.선택 사항:
charts/openshift-console-plugin/values.yaml
파일에서 지원되는 매개변수 세트를 사용하여 추가 매개변수를 지정할 수 있습니다.plugin: name: "" description: "" image: "" imagePullPolicy: IfNotPresent replicas: 2 port: 9443 securityContext: enabled: true podSecurityContext: enabled: true runAsNonRoot: true seccompProfile: type: RuntimeDefault containerSecurityContext: enabled: true allowPrivilegeEscalation: false capabilities: drop: - ALL resources: requests: cpu: 10m memory: 50Mi basePath: / certificateSecretName: "" serviceAccount: create: true annotations: {} name: "" patcherServiceAccount: create: true annotations: {} name: "" jobs: patchConsoles: enabled: true image: "registry.redhat.io/openshift4/ose-tools-rhel8@sha256:e44074f21e0cca6464e50cb6ff934747e0bd11162ea01d522433a1a1ae116103" podSecurityContext: enabled: true runAsNonRoot: true seccompProfile: type: RuntimeDefault containerSecurityContext: enabled: true allowPrivilegeEscalation: false capabilities: drop: - ALL resources: requests: cpu: 10m memory: 50Mi
검증
-
관리
클러스터 설정 구성 콘솔 operator.openshift.io
콘솔 플러그인에서 이동하거나 개요 페이지를 방문하여 활성화된 플러그인 목록을 확인합니다.
새 플러그인 구성이 표시되는 데 몇 분 정도 걸릴 수 있습니다. 플러그인이 표시되지 않는 경우 플러그인이 최근에 활성화된 경우 브라우저를 새로 고쳐야 할 수 있습니다. 런타임 시 오류가 발생하면 브라우저 개발자 도구의 JS 콘솔을 확인하여 플러그인 코드의 오류를 확인합니다.
4.3.3. 플러그인 서비스 프록시
플러그인에서 클러스터 내 서비스에 HTTP 요청을 수행해야 하는 경우 spec.proxy
array 필드를 사용하여 ConsolePlugin
리소스에서 서비스 프록시를 선언할 수 있습니다. 콘솔 백엔드는 /api/proxy/plugin/<plugin-name>/<proxy-alias>/<request-path>?<optional-query-parameters
> 끝점을 노출하여 플러그인과 서비스 간의 통신을 프록시합니다. 프록시 요청은 기본적으로 서비스 CA 번들을 사용합니다. 서비스에서 HTTPS를 사용해야 합니다.
플러그인은 JavaScript 코드에서 요청을 만들기 위해 consolefetch
API를 사용해야 합니다. 그렇지 않으면 일부 요청이 실패할 수 있습니다. 자세한 내용은 "Dynamic plugin API"를 참조하십시오.
각 항목에 대해 끝점 및 별칭 필드 아래에 프록시의 끝점
과 별칭
을 지정해야 합니다. Service 프록시 유형의 경우 끝점 유형
필드를 Service
로 설정해야 하며 서비스에
이름
,네임스페이스
, 포트
필드의 값이 포함되어야 합니다. 예를 들어 /api/proxy/plugin/helm/
은 10개의 helm 릴리스를 나열하는 helm-charts
/release=10helm
-charts 서비스가 있는 helm 플러그인의 프록시 요청 경로입니다.
서비스 프록시 예
apiVersion: console.openshift.io/v1 kind: ConsolePlugin metadata: name:<plugin-name> spec: proxy: - alias: helm-charts 1 authorization: UserToken 2 caCertificate: '-----BEGIN CERTIFICATE-----\nMIID....'en 3 endpoint: 4 service: name: <service-name> namespace: <service-namespace> port: <service-port> type: Service
4.3.4. 브라우저에서 플러그인 비활성화
콘솔 사용자는 disable-plugins
쿼리 매개변수를 사용하여 일반적으로 런타임 시 로드되는 특정 또는 모든 동적 플러그인을 비활성화할 수 있습니다.
프로세스
- 특정 플러그인을 비활성화하려면 플러그인 이름의 쉼표로 구분된 목록에서 비활성화하려는 플러그인을 제거합니다.
-
모든 플러그인을 비활성화하려면
disable-plugins
쿼리 매개변수에 빈 문자열을 남겨 둡니다.
클러스터 관리자는 웹 콘솔의 클러스터 설정 페이지에서 플러그인을 비활성화할 수 있습니다.