7.3. 클러스터에 플러그인 배포


OpenShift Container Platform 클러스터에 플러그인을 배포할 수 있습니다.

7.3.1. Docker로 이미지 빌드

클러스터에 플러그인을 배포하려면 이미지를 빌드하고 먼저 이미지 레지스트리로 푸시해야 합니다.

프로세스

  1. 다음 명령을 사용하여 이미지를 빌드합니다.

    $ docker build -t quay.io/my-repositroy/my-plugin:latest .
  2. 선택 사항: 이미지를 테스트하려면 다음 명령을 실행합니다.

    $ docker run -it --rm -d -p 9001:80 quay.io/my-repository/my-plugin:latest
  3. 다음 명령을 실행하여 이미지를 내보냅니다.

    $ docker push quay.io/my-repository/my-plugin:latest

7.3.2. 클러스터에 플러그인 배포

레지스트리에 변경 사항이 있는 이미지를 푸시한 후 Helm 차트를 사용하여 클러스터에 플러그인을 배포할 수 있습니다.

사전 요구 사항

  • 이전에 내보낸 플러그인이 포함된 이미지의 위치가 있어야 합니다.

    참고

    플러그인의 필요에 따라 추가 매개변수를 지정할 수 있습니다. values.yaml 파일은 지원되는 전체 매개변수 세트를 제공합니다.

프로세스

  1. 플러그인 이름을 사용하여 클러스터에 플러그인을 배포하려면 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 Container Platform 4.10 이상에 배포하는 경우 매개변수 --set plugin.securityContext.enabled=false 를 추가하여 Pod 보안과 관련된 구성을 제외하는 것이 좋습니다.

  2. 선택 사항: 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 콘솔을 확인하여 플러그인 코드의 오류를 확인합니다.

7.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/helm-charts/releases?limit=10 은 10개의 helm 릴리스를 나열하는helm-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

1
프록시의 별칭입니다.
2
서비스 프록시 요청에 로그인한 사용자의 OpenShift Container Platform 액세스 토큰이 포함되어야 하는 경우 권한 부여 필드를 UserToken 으로 설정해야 합니다.
참고

서비스 프록시 요청에 로그인한 사용자의 OpenShift Container Platform 액세스 토큰이 포함되어 있지 않은 경우 권한 부여 필드를 None 으로 설정합니다.

3
서비스에서 사용자 정의 서비스 CA를 사용하는 경우 caCertificate 필드에 인증서 번들이 포함되어야 합니다.
4
프록시의 끝점입니다.

7.3.4. 브라우저에서 플러그인 비활성화

콘솔 사용자는 disable-plugins 쿼리 매개변수를 사용하여 일반적으로 런타임 시 로드되는 특정 또는 모든 동적 플러그인을 비활성화할 수 있습니다.

프로세스

  • 특정 플러그인을 비활성화하려면 플러그인 이름의 쉼표로 구분된 목록에서 비활성화하려는 플러그인을 제거합니다.
  • 모든 플러그인을 비활성화하려면 disable-plugins 쿼리 매개변수에 빈 문자열을 남겨 둡니다.
참고

클러스터 관리자는 웹 콘솔의 클러스터 설정 페이지에서 플러그인을 비활성화할 수 있습니다.

7.3.5. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.