Oracle 관리 Kubernetes 클러스터에 애플리케이션 배치

컨테이너를 Oracle Container Engine for Kubernetes 클러스터에 배치하려면 이미지를 레지스트리에 업로드한 다음 Oracle Container Engine for Kubernetes 클러스터에 배치를 설명하는 배치 매니페스트 파일을 생성합니다.

Docker 이미지를 Oracle Cloud Infrastructure Registry로 업로드

Oracle Cloud Infrastructure Registry는 애플리케이션 이미지를 저장할 수 있는 개인 레지스트리입니다. 클라우드 인프라가 액세스할 수 있을 경우 이 용도로 모든 레지스트리를 사용할 수 있습니다.

이미지를 Oracle Cloud Infrastructure Registry에 업로드하려면 적절히 태그를 지정한 다음 레지스트리에 업로드해야 합니다. Oracle Cloud Infrastructure Registry에 이미지를 업로드하려면 저장소 이름을 포함하여 선택적으로 이미지를 업로드할 Oracle Cloud Infrastructure Registry의 대상 위치에 대한 전체 경로를 지정합니다. 여기에서 build.gradle 태그에 태그 이름을 지정하여 이미 Docker 플러그인으로 다운그레이드하도록 태그를 지정했습니다.

tag = 'data-region.ocir.io/my-tenant/my-repo/omc-sample-app:latest'

이미지를 Oracle Cloud Infrastructure Registry로 업로드할 준비가 되면 Oracle Cloud Infrastructure 콘솔에 사인인하여 Oracle Cloud Infrastructure에서 액세스 토큰을 설정합니다. 액세스 토큰을 사용하면 Oracle Cloud Infrastructure CLI(명령행 인터페이스) 를 사용하여 Docker에 사인인할 수 있습니다.

  1. Oracle Cloud Infrastructure 콘솔의 오른쪽 상단 모서리에서 사용자 메뉴를 누르고 사용자 설정 을 눌러 세부정보를 봅니다.
  2. [인증 토큰] 페이지에서 토큰 생성 을 누릅니다.
  3. 토큰 생성 대화상자에서 인증 토큰에 대한 친숙한 설명을 입력하고 토큰 생성 을 누릅니다. 새 인증 토큰이 표시됩니다.
  4. Oracle Cloud Infrastructure 콘솔에서 인증 토큰을 다시 표시하지 않으므로 나중에 검색할 수 있는 보안 위치에 인증 토큰을 복사합니다.
  5. [토큰 생성 ] 대화상자를 닫고 Oracle Cloud Infrastructure 콘솔을 닫습니다.


인증 토큰을 생성한 후 이미지를 Oracle Cloud Infrastructure Registry로 업로드합니다.

  1. 표준 Docker CLI를 사용하여 Oracle Cloud Infrastructure에 사인인합니다.

    docker login data-region.ocir.io

  2. my-tenant/username@example.com 형식으로 사용자 이름을 입력합니다. 메시지가 표시되면 이전에 저장한 인증 토큰을 입력합니다.
  3. Oracle Cloud Infrastructure Registry에 이미지를 업로드합니다.

    docker push data-region.ocir.io/my-tenant/my-repo/omc-sample-app

업로드한 후에는 저장소에서 이미지를 볼 수 있습니다.



Oracle Container Engine for Kubernetes 클러스터에 애플리케이션 배치

이미지를 업로드한 후 애플리케이션을 배치 단위로 관리하려면 Kubernetes 배치 적하 목록을 설정하고 Kubernetes 클러스터를 배치해야 합니다.

이 Manifest는 생성한 이미지를 기반으로 하나의 복제본을 가져야 하는 Deployment 객체를 설명합니다.

  1. 다음과 유사한 현재 디렉토리에서 매니페스트 파일 omc-sample-svc.yaml을 생성합니다.
    apiVersion: apps/v1
    kind: Deployment
    metadata: 
    name: omc-sample-app
    spec: 
    selector: 
        matchLabels:
        app: omc-sample-app
    replicas: 1
    template:
        metadata:
        labels: 
            app: omc-sample-app
        spec:
        containers:
        - name: omc-sample-app
            image: data-region.ocir.io/my-tenant/my-repo/omc-sample-app:latest 
            ports:
            - containerPort: 8080
    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: omc-sample-app
    spec:
    selector:
        app: omc-sample-app
    ports:
    - protocol: "TCP"
        port: 8080
        targetPort: 8080
    type: LoadBalancer
    

    애플리케이션의 컨테이너를 생성하는 omc-sample-app 배치 이름이 지정됩니다. 전체 배치에 대한 액세스를 사용으로 설정하려면 서비스를 생성합니다. 이 경우에는 LoadBalancer 유형입니다. 배치될 때 자동으로 Oracle Cloud Infrastructure Load Balancing 인스턴스를 프로비전하여 응용 프로그램을 관리하고 트래픽 경로를 지정합니다.

  2. 현재 디렉토리에서 kubectl를 실행하여 애플리케이션 이미지를 배포합니다.

    kubectl apply -f omc-sample-svc.yaml