1 - K8S 클러스터

사용자는 K8S 클러스터를 DevOps Console에 등록하고 DevOps Console을 통해 다양한 애플리케이션을 배포할 수 있습니다.

사용자는 K8S 클러스터와 네임스페이스를 추가, 수정, 삭제할 수 있습니다. 추가한 K8S 클러스터와 네임스페이스는 프로젝트 생성(프로젝트 생성 시작하기), 헬름인스톨(헬름인스톨 시작하기) 등 여러 메뉴에서 선택하여 사용할 수 있습니다.

참고
프로젝트 생성, 헬름인스톨 등의 메뉴에서 K8S 클러스터를 사용하기 위해서는 네임스페이스에 권한이 있어야 합니다.

K8S 클러스터 시작하기

K8S 클러스터 관리를 시작하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.

K8S 클러스터 추가하기

K8S 클러스터를 추가하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지에서 추가 버튼을 클릭하세요. K8S 클러스터 추가 페이지로 이동합니다.
  4. K8S 클러스터 추가 페이지에서 기본 정보와 접속 정보를 입력 한 후 Connection Test 버튼을 클릭하세요.
  5. 헬름 버전을 선택 후 저장 버튼을 클릭하세요.
    항목설명
    K8S 클러스터 명클러스터 이름을 입력하세요.
    K8S 클러스터 ID클러스터 ID를 입력하세요.
    클러스터 ID는 클러스터를 구분하기 위한 고유 ID 값으로, 사용자가 직접 결정해서 입력하세요.
    CA Certificatekubeconfig 파일 구성에 사용할 서버의 인증서 정보를 입력
    • 사용중인 kubeconfig 파일의 clusters[0].cluster.certificate-authority-data의 내용을 입력하세요.
    • 클러스터 공급자(관리자)에게 문의 후 입력하세요.
    • 확인이 불가능한 경우에는 임시 값(ex: temp)을 입력 후 확인이 되었을 때 정확한 값으로 수정하세요.
    인증 방식관리자 토큰 방식을 선택하세요.
    API 서버 URLKubernetes API Server 주소를 입력하세요.
    관리자 토큰kubeconfig 파일 구성에 사용할 Admin 권한을 가진 Token을 입력하세요.
    클러스터 Admin Token 확인하기을 참고하세요.
    헬름 버전헬름 버전을 선택
    • K8S 클러스터 버전에서 사용 가능한 헬름버전 목록이 나타납니다.
    표. K8S 클러스터 추가 - 관리자 토큰으로 인증하여 추가하기 항목
    항목설명
    인증 방식클라이언트 인증서 방식을 선택하세요.
    API 서버 URLKubernetes API Server 주소를 입력하세요.
    클라이언트 인증서클라이언트 인증서 정보를 입력하세요.
    클라이언트 Key클라이언트 Key 정보를 입력하세요.
    표. K8S 클러스터 추가 - 클라이언트 인증서로 인증하여 추가하기 항목
    항목설명
    인증 방식kubeconfig 파일 업로드 방식을 선택하세요.
    kubeconfig 파일찾아보기 버튼을 눌러 kubeconfig 파일을 선택
    • .yml, .yaml 확장자를 가진 파일만 업로드가 가능합니다.
    • 파일이 정상적으로 업로드가 되면 CA Certificate, API 서버 URL, 사용자, 관리자 토큰 혹은 클라이언트 인증서가 자동으로 입력됩니다.
    API 서버 URLKubernetes API Server 주소를 선택하세요.
    사용자인증할 사용자를 선택
    • 선택된 사용자에 따라 관리자 토큰 혹은 클라이언트 인증서 정보가 아래에 표시
    표. K8S 클러스터 추가 - kubeconfig 파일 업로드로 추가하기 항목

K8S 클러스터 관리하기

K8S 클러스터 수정하기

K8S 클러스터를 수정하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. K8S 클러스터 상세 페이지에서 수정 버튼을 클릭하세요.
  5. 정보를 수정한 후 Connection Test 버튼을 클릭하세요.
  6. 헬름 버전을 선택 후 저장 버튼을 클릭하세요.

K8S 클러스터 삭제하기

K8S 클러스터를 삭제하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. K8S 클러스터 상세 페이지에서 삭제 버튼을 클릭하세요.
  5. 확인 팝업창에서 확인 버튼을 클릭해서 삭제를 완료하세요.

K8S 클러스터 멤버 추가하기

K8S 클러스터 멤버를 추가하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. K8S 클러스터 상세 페이지에서 멤버 탭을 클릭하세요.
  5. 멤버 탭에서 추가 버튼을 클릭하면 멤버 추가 팝업창이 열립니다.
  6. 멤버 추가 팝업창에서 이메일 주소를 입력하고 검색 아이콘을 클릭하세요.
  7. 추가 버튼을 클릭하면 멤버가 아래 목록에 추가됩니다.
  8. 권한 선택 후 저장 버튼을 클릭하여 멤버 추가를 완료하세요.

K8S 클러스터 멤버 삭제하기

K8S 클러스터 멤버를 삭제하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. K8S 클러스터 상세 페이지에서 멤버 탭을 클릭하세요.
  5. 멤버 탭에서 삭제하려는 사용자의 체크박스를 선택하세요.
  6. 삭제 버튼을 클릭하여 선택된 사용자를 멤버에서 삭제하세요.

K8S 클러스터 권한 신청 관리하기

K8S 클러스터 권한 신청을 승인 또는 거절하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. 권한 신청을 승인할 클러스터의 K8S 클러스터 권한 신청 항목을 클릭하세요. 표시되는 숫자는 권한이 신청된 숫자입니다.
  4. K8S 클러스터 권한 신청 승인 팝업창이 열립니다.
  5. 승인 또는 거절하려는 신청 건을 클릭하세요.
  6. 의견 입력 후, 승인 또는 거절 버튼을 클릭하세요.
참고
권한 신청을 거절하려면 의견 입력이 필수입니다.

K8S 클러스터 권한 승인 이력 조회하기

K8S 클러스터 권한 신청 승인 이력을 조회하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. 승인 이력 탭을 클릭하세요. 승인 이력 목록이 나타납니다.
참고
해당 K8S 클러스터의 Administrator 권한이 있는 경우에만 조회 가능합니다.

네임스페이스 관리하기

안내
  • 프로젝트 생성, 헬름인스톨 등의 메뉴에서 K8S 클러스터를 사용하기 위해서는 네임스페이스에 권한이 있어야 합니다.
  • 실제 K8S 클러스터에 네임스페이스를 생성할 수는 없습니다. 이미 생성된 네임스페이스를 DevOps Console에 가져올 수만 있습니다.

네임스페이스 가져오기

네임스페이스를 가져오려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. 네임스페이스 탭을 클릭하세요. 네임스페이스 목록이 나타납니다.
  5. 네임스페이스 탭 화면에서 가져오기 버튼을 클릭하면 네임스페이스 가져오기 팝업창이 열립니다.
  6. 네임스페이스 가져오기 팝업창에서 네임스페이스 선택 후 저장 버튼을 클릭하여 네임스페이스 가져오기를 완료하세요.

네임스페이스 삭제하기

안내
DevOps Console에서 관리하는 네임스페이스 정보만 삭제되며 클러스터 내 실제 네임스페이스는 삭제되지 않습니다.

네임스페이스를 삭제하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. 네임스페이스 탭을 클릭하세요. 네임스페이스 목록이 나타납니다.
  5. 네임스페이스 탭 화면에서 네임스페이스를 클릭하면 네임스페이스 상세 페이지로 이동합니다.
  6. 네임스페이스 상세 페이지에서 삭제 버튼을 클릭하여 네임스페이스 삭제를 완료하세요.

네임스페이스 멤버 추가하기

네임스페이스 멤버를 추가하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. 네임스페이스 탭을 클릭하세요. 네임스페이스 목록이 나타납니다.
  5. 네임스페이스 탭 화면에서 네임스페이스를 클릭하면 네임스페이스 상세 페이지로 이동합니다.
  6. 네임스페이스 상세 페이지에서 멤버 탭을 클릭하면 네임스페이스 멤버 목록이 나타납니다.
  7. 추가 버튼을 클릭하면 멤버 추가 팝업창이 열립니다.
  8. 멤버 추가 팝업창에서 이메일 주소를 입력하고 검색 아이콘을 클릭하세요.
  9. 추가 버튼을 클릭하면 멤버가 아래 목록에 추가됩니다.
  10. 권한 선택 후 저장 버튼을 클릭하여 멤버 추가를 완료하세요.

네임스페이스 멤버 삭제하기

네임스페이스 멤버를 삭제하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. 네임스페이스 탭을 클릭하세요. 네임스페이스 목록이 나타납니다.
  5. 네임스페이스 탭 화면에서 네임스페이스를 클릭하면 네임스페이스 상세 페이지로 이동합니다.
  6. 네임스페이스 상세 페이지에서 멤버 탭을 클릭하면 네임스페이스 멤버 목록이 나타납니다.
  7. 목록에서 삭제하려는 사용자의 체크박스를 선택하세요.
  8. 삭제 버튼을 클릭하여 선택된 사용자를 멤버에서 삭제하세요.

네임스페이스 권한 신청 관리하기

네임스페이스 권한 신청을 승인 또는 거절하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 권한 신청을 승인할 클러스터의 네임스페이스 권한 신청 항목을 클릭하세요. 표시되는 숫자는 권한이 신청된 숫자입니다.
  4. 네임스페이스 권한 신청 승인 팝업창이 열립니다.
  5. 승인 또는 거절하려는 신청 건의 체크박스를 선택하세요.
  6. 의견 입력 후, 승인 또는 거절 버튼을 클릭하세요.
참고
권한 신청을 거절하려면 의견 입력이 필수입니다.

네임스페이스 권한 신청 승인 이력 조회하기

네임스페이스 권한 신청 승인 이력을 조회하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. 네임스페이스 탭을 클릭하세요. 네임스페이스 목록이 나타납니다.
  5. 네임스페이스 탭 화면에서 네임스페이스를 클릭하면 네임스페이스 상세 페이지로 이동합니다.
  6. 네임스페이스 상세 페이지에서 승인 이력 탭을 클릭하면 승인 이력 목록이 나타납니다.

인그레스 도메인 관리하기

안내
  • DevOps Console에서만 관리되는 참고용 정보입니다.
  • 등록된 정보는 해당 클러스터를 이용하여 프로젝트 생성 또는 헬름인스톨 등을 진행할 때 사용자가 참고할 수 있도록 표시가 됩니다.

인그레스 도메인 추가하기

인그레스 도메인을 추가하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. 인그레스 도메인 탭을 클릭하세요. 인그레스 도메인 목록이 나타납니다.
  5. 인그레스 도메인 탭 화면에서 추가 버튼을 클릭하면 인그레스 도메인 정보 추가 팝업창이 열립니다.
  6. 인그레스 도메인 정보 추가 팝업창에서 정보를 입력하고 저장 버튼을 클릭하여 인그레스 도메인 추가를 완료하세요.
    항목설명
    노드 셀렉터노드 셀렉터를 입력하세요.
    입력값의 첫번째 슬래시(/)로 구분되는 접두사와 접두사를 포함하는 key, 그리고 value의 쌍으로 구성됩니다.
    접두사는 선택입니다.
    ex) kubernetes.io/nodetype: app
    프록시 IPProxy Server IP 또는 Proxy Server LoadBalancer IP를 입력하세요.
    인그레스 도메인애플리케이션이 기본적으로 사용할 도메인을 입력하세요.
    인그레스 클래스인그레스 컨트롤러 클래스를 입력하세요.
    표. 인그레스 도메인 추가 입력 항목

인그레스 도메인 수정하기

인그레스 도메인을 수정하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. 인그레스 도메인 탭을 클릭하세요. 인그레스 도메인 목록이 나타납니다.
  5. 인그레스 도메인 탭 화면에서 수정하려는 인그레스 도메인을 클릭하면 인그레스 도메인 정보 수정 팝업창이 열립니다.
  6. 인그레스 도메인 정보 수정 팝업창에서 정보를 수정하고 저장 버튼을 클릭하여 인그레스 도메인 수정을 완료하세요.

인그레스 도메인 삭제하기

인그레스 도메인을 수정하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > K8S 클러스터 메뉴를 클릭하세요. K8S 클러스터 페이지로 이동합니다.
  3. K8S 클러스터 페이지의 목록에서 K8S 클러스터를 클릭하세요. 선택한 K8S 클러스터의 K8S 클러스터 상세 페이지로 이동합니다.
  4. 인그레스 도메인 탭을 클릭하세요. 인그레스 도메인 목록이 나타납니다.
  5. 인그레스 도메인 탭 화면에서 삭제하려는 인그레스 도메인의 체크박스를 선택하세요.
  6. 인그레스 도메인 탭 화면에서 삭제 버튼을 클릭하여 선택된 인그레스 도메인을 삭제하세요.

1.1 - 클러스터 Admin Token 확인하기

K8S 클러스터를 등록하기 위해서는 클러스터의 Admin Token을 확인해야 합니다.

Admin Token이란 ClusterRole/cluster-admin이 ClusterRoleBinding된 ServiceAccount의 Token 값을 의미합니다.

시작 전 준비

안내

Admin Token을 확인하기 전에 다음 내용을 확인하고 준비하세요.

  • kubectl CLI 사용이 가능한 환경
  • 클러스터 Admin 권한 확인
    • ClusterRole, ClusterRoleBinding 조회 및 생성
    • Namespace, ServiceAccount 조회 및 생성
  • ClusterRole 중 cluster-admin 조회 됨
배경색 변경
$ kubectl get clusterrole cluster-admin
NAME            CREATED AT
cluster-admin   2022-12-09T08:21:50Z
$ kubectl get clusterrole cluster-admin
NAME            CREATED AT
cluster-admin   2022-12-09T08:21:50Z
cluster-admin ClusterRole 조회 결과

Admin Token 조회하기

기존 생성된 Admin Token 조회하기

  1. ClusterRole/cluster-admin이 binding 되어 있는 ClusterRoleBinding을 조회하세요.
  2. ClusterRoleBinding 된 ServiceAccount를 확인하세요.
    배경색 변경
    # admin token 조회
    $ kubectl get clusterrolebinding | grep ClusterRole/cluster-admin
    [crb_name]     ClusterRole/cluster-admin     77d
    
    $ kubectl describe clusterrolebinding [crb_name]
    Name:         [crb_name]
    Labels:       <none>
    Annotations:  <none>
    Role:
    Kind:  ClusterRole
    Name:  cluster-admin
    Subjects:
    Kind            Name       Namespace
      ----            ----       ---------
    ServiceAccount  [sa_name]  [namespace_name]
    # admin token 조회
    $ kubectl get clusterrolebinding | grep ClusterRole/cluster-admin
    [crb_name]     ClusterRole/cluster-admin     77d
    
    $ kubectl describe clusterrolebinding [crb_name]
    Name:         [crb_name]
    Labels:       <none>
    Annotations:  <none>
    Role:
    Kind:  ClusterRole
    Name:  cluster-admin
    Subjects:
    Kind            Name       Namespace
      ----            ----       ---------
    ServiceAccount  [sa_name]  [namespace_name]
    기존 생성된 Admin Token 조회 결과
  3. ServiceAccount에 연결된 Secret을 확인하고, token(Admin Token)을 조회하세요.
    배경색 변경
    # Secret 조회
    $ kubectl get secret -n [namespace_name] | grep [sa_name]
    [sa_name]-token-xxxxx                            kubernetes.io/service-account-token   3      77d
    
    # token 조회
    $ kubectl describe secret [sa_name]-token-xxxxx -n [namespace_name]
    Name:         [sa_name]-token-xxxxx
    ...<중략>...
    Data
    ====
    ca.crt:     1070 bytes
    namespace:  11 bytes
    token:      eyJhbGciOiJSUzI1NiI...
    # Secret 조회
    $ kubectl get secret -n [namespace_name] | grep [sa_name]
    [sa_name]-token-xxxxx                            kubernetes.io/service-account-token   3      77d
    
    # token 조회
    $ kubectl describe secret [sa_name]-token-xxxxx -n [namespace_name]
    Name:         [sa_name]-token-xxxxx
    ...<중략>...
    Data
    ====
    ca.crt:     1070 bytes
    namespace:  11 bytes
    token:      eyJhbGciOiJSUzI1NiI...
    ServiceAccount에 연결된 Secret, token 조회 결과

Admin Token 생성하기

  1. ServiceAccount를 생성할 Namespace를 생성하세요. 이미 생성되어 있다면 다음 단계를 진행하세요.
    배경색 변경
    $ kubectl create namespace [namespace_name]
    
    # ex) kubectl create namespace my-app
    $ kubectl create namespace [namespace_name]
    
    # ex) kubectl create namespace my-app
    Admin Token 생성 명령어
  2. [namespace_name]-additional-cluster-admin-sa.yaml 파일을 생성 후 실행하세요.
    배경색 변경
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: [namespace_name]-additional-cluster-admin
    namespace: [namespace_name]
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: [namespace_name]-additional-cluster-admin
    namespace: [namespace_name]
    ServiceAccount 작성 예시
    배경색 변경
    # ServiceAccount 생성 
    $ kubectl apply -f [namespace_name]-additional-cluster-admin-sa.yaml -n [namespace_name]
    
    # ex) kubectl apply -f my-app-additional-cluster-admin-sa.yaml -n my-app
    # ServiceAccount 생성 
    $ kubectl apply -f [namespace_name]-additional-cluster-admin-sa.yaml -n [namespace_name]
    
    # ex) kubectl apply -f my-app-additional-cluster-admin-sa.yaml -n my-app
    ServiceAccount 생성 명령어
  3. [namespace_name]-additional-cluster-admin-crb.yaml 파일을 생성 후 실행하세요.
    배경색 변경
    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
       name: [namespace_name]-additional-cluster-admin
    subjects:
    - kind: ServiceAccount
      name: [namespace_name]-additional-cluster-admin
      namespace: [namespace_name]
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: ""
    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
       name: [namespace_name]-additional-cluster-admin
    subjects:
    - kind: ServiceAccount
      name: [namespace_name]-additional-cluster-admin
      namespace: [namespace_name]
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: ""
    ClusterRoleBinding 작성 예시
    배경색 변경
    # ClusterRoleBinding 생성
    $ kubectl apply -f [namespace_name]-additional-cluster-admin-crb.yaml
    
    # ex) kubectl apply -f my-app-additional-cluster-admin-crb.yaml
    # ClusterRoleBinding 생성
    $ kubectl apply -f [namespace_name]-additional-cluster-admin-crb.yaml
    
    # ex) kubectl apply -f my-app-additional-cluster-admin-crb.yaml
    ClusterRoleBinding 생성 명령어
  4. ServiceAccount에 연결된 Secret을 확인하고, token(Admin Token)을 조회하세요.
    배경색 변경
    # Secret 조회
    $ kubectl get secret -n [namespace_name] | grep [namespace_name]-additional-cluster-admin
    [namespace_name]-additional-cluster-admin-token-xxxxx   kubernetes.io/service-account-token   3      4m53s
    
    # token 조회
    $ kubectl describe secret [namespace_name]-additional-cluster-admin-token-xxxxx -n [namespace_name]
    Name:         [namespace_name]-additional-cluster-admin-token-xxxxx
    ...<중략>...
    Data
    ====
    ca.crt:     1111 bytes
    namespace:  6 bytes
    token:      eyJhbGciOiJSUzI1Ni...
    # Secret 조회
    $ kubectl get secret -n [namespace_name] | grep [namespace_name]-additional-cluster-admin
    [namespace_name]-additional-cluster-admin-token-xxxxx   kubernetes.io/service-account-token   3      4m53s
    
    # token 조회
    $ kubectl describe secret [namespace_name]-additional-cluster-admin-token-xxxxx -n [namespace_name]
    Name:         [namespace_name]-additional-cluster-admin-token-xxxxx
    ...<중략>...
    Data
    ====
    ca.crt:     1111 bytes
    namespace:  6 bytes
    token:      eyJhbGciOiJSUzI1Ni...
    ServiceAccount에 연결된 Secret, token 조회 결과
    참고
    생성된 Secret이 없다면(Kuberentes 1.24 이후 버전) 직접 생성 후 token을 조회하세요.
    배경색 변경
    apiVersion: v1
    kind: Secret
    type: kubernetes.io/service-account-token
    metadata:
    name: [namespace_name]-additional-cluster-admin-token
    namespace: [namespace_name]
    annotations:
    kubernetes.io/service-account.name: "[namespace_name]-additional-cluster-admin"
    apiVersion: v1
    kind: Secret
    type: kubernetes.io/service-account-token
    metadata:
    name: [namespace_name]-additional-cluster-admin-token
    namespace: [namespace_name]
    annotations:
    kubernetes.io/service-account.name: "[namespace_name]-additional-cluster-admin"
    secret 작성 예시

Admin Token 유효성 확인하기

~/.kube/config 파일을 수정해서 조회한 Admin Token 값의 유효성을 확인할 수 있습니다.

  1. ~/.kube/config 파일의 사용자 인증에 token을 사용하도록 수정하세요.
    ex) users[0].user.token 으로 수정 후 Admin Token 값을 입력하세요.
    배경색 변경
    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: LS0...
        server: https://devopscluster-12345.sk...
      name: devopscluster-12345
    contexts:
    - context:
        cluster: devopscluster-12345
        user: user
      name: user@devopscluster-12345
    current-context: user@devopscluster-12345
    kind: Config
    users:
    - name: user
      user:
        token: [admin_token]
    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority-data: LS0...
        server: https://devopscluster-12345.sk...
      name: devopscluster-12345
    contexts:
    - context:
        cluster: devopscluster-12345
        user: user
      name: user@devopscluster-12345
    current-context: user@devopscluster-12345
    kind: Config
    users:
    - name: user
      user:
        token: [admin_token]
    ~/.kube/config 수정 예시
  2. kubectl 명령어를 실행해서 cluster-admin 권한이 있는지 확인하세요.
    배경색 변경
    $ kubectl get nodes
    $ kubectl get namespace
    $ kubectl get all -n kube-system
    $ kubectl create namespace admin-test
    $ kubectl delete namespace admin-test
    
    # 기타 명령어 실행
    $ kubectl get nodes
    $ kubectl get namespace
    $ kubectl get all -n kube-system
    $ kubectl create namespace admin-test
    $ kubectl delete namespace admin-test
    
    # 기타 명령어 실행
    cluster-admin 권한 확인 명령어

2 - VM서버 그룹

VM서버 그룹은 VM서버를 묶어서 관리하기 위한 논리적 단위입니다.

사용자는 VM서버 그룹과 VM서버를 추가, 수정, 삭제할 수 있습니다. 설정한 VM서버 그룹과 VM서버는 프로젝트 생성(배포대상 환경 설정하기) 또는 VM 배포(VM 배포 추가하기)에서 배포 대상 VM으로 사용할 수 있습니다.

배포 방식설명
SSH시큐어 셀(Secure SHell, SSH)을 이용하여 빌드 파이프라인이 실행되는 Jenkins에서 Target VM서버로 직접 배포를 실행합니다.
  • Jenkins → Target VM 으로 SSH 통신이 필요합니다.
에이전트에이전트 연동하기를 참고하여 에이전트를 Target VM서버에서 실행해야 합니다.
빌드 파이프라인이 실행되는 Jenkins에서는 직접 배포를 실행하지 않습니다. 실행된 에이전트는 REST API를 이용해 DevOps Console로부터 배포 관련 정보를 수집하고 실행합니다.
  • 배포 파일은 Rollback을 이용하지 않을 경우 DevOps Console에 저장됩니다. (최대 파일크기 200MB 가능)
  • 배포 파일은 Rollback을 사용할 경우 사용자가 선택한 Rollback Artifact Repository에 저장됩니다. (최대 파일 크기는 Rollback Artifact Repository 에서 관리됨)
  • Target VM → DevOps Console 로 REST API 통신이 필요합니다.
  • (Rollback을 사용한경우) Target VM → Rollback Artifact Repository 와 통신이 필요합니다.
표. SSH 방식 vs 에이전트 방식
주의

SSH 혹은 에이전트가 root 권한으로 동작하는 경우, 악의적인 명령어 실행으로 서버 전체를 장악 할 수 있는 위험이 있습니다.

  • root 계정 이외의 다른 계정 사용을 권장합니다.

VM서버 그룹 시작하기

VM서버 그룹 관리를 시작하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.

VM서버 그룹 추가하기

VM서버 그룹을 추가하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지에서 추가 버튼을 클릭하세요. VM서버 그룹 추가 페이지로 이동합니다.
  4. 기본 정보 입력 후 저장 버튼을 클릭하여 VM서버 그룹 설정을 완료하세요.
    항목설명
    서버그룹명VM서버 그룹 이름을 입력하세요.
    설명설명을 입력하세요.
    타입VM서버그룹의 타입을 선택
    • SSH: VM 배포시 SSH 명령어를 통하여 배포를 수행합니다.
    • 에이전트: VM 배포시 에이전트를 이용하여 배포를 수행합니다. (에이전트 연동하기)
    VM서버
    • 추가: VM서버 그룹에 포함되는 VM서버를 추가 하세요.
    • 삭제: VM서버 그룹에서 삭제하려는 VM서버의 체크박스를 체크하고 삭제를 클릭하여 삭제 하세요.
    표. VM서버 그룹 추가 입력 항목

VM서버 추가하기

VM서버를 추가하기 위해서는 해당 VM서버 그룹의 Manager 권한이 필요합니다.

참고
VM서버 그룹의 타입에 따라 VM 서버 추가 팝업창이 다르게 열립니다.

VM서버를 추가하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 VM서버를 추가할 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
  4. VM서버 그룹 상세 페이지에서 추가 버튼을 클릭하세요. VM서버 추가 페이지로 이동합니다.
  5. VM서버 추가 페이지에서 기본 정보 입력 후 추가 버튼을 클릭하여 VM서버 설정을 완료하세요.
    항목설명
    서버명VM서버 이름을 입력하세요.
    설명설명을 입력하세요.
    IPIP를 입력하세요.
    SSH PortSSH 연결시 사용할 VM서버의 port를 입력하세요.
    OSOS를 입력하세요.
    위치위치를 선택하세요.
    인증정보SSH 연결시 사용할 VM서버의 인증정보를 입력하세요.
    Secret Key에이전트가 설치된 VM서버를 인증하기 위한 비밀키입니다.
    표. VM서버 추가 입력 항목

VM서버 그룹 수정하기

VM서버 그룹을 수정하기 위해서는 해당 VM서버 그룹의 Manager 권한이 필요합니다.

VM서버 그룹을 수정하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 수정하기를 원하는 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
  4. VM서버 그룹 상세 페이지에서 수정 버튼을 클릭하세요. VM서버 그룹 수정 페이지로 이동합니다.
  5. 수정 완료 후 저장 버튼을 클릭해서 VM서버 그룹 수정을 완료하세요.

VM서버 수정하기

VM서버를 수정하기 위해서는 해당 VM서버 그룹의 Manager 권한이 필요합니다.

VM서버를 수정하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 수정하기를 원하는 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
  4. VM서버 그룹 상세 페이지의 VM서버 목록에서 수정하기 원하는 VM서버를 클릭하세요. VM서버 상세 페이지로 이동합니다.
  5. VM서버 상세 페이지에서 수정 버튼을 클릭하면 VM서버 수정 페이지로 이동합니다.
  6. VM서버 수정 페이지에서 수정 완료 후 저장 버튼을 클릭해서 VM서버 수정을 완료하세요.

VM서버 그룹 삭제하기

VM서버 그룹을 삭제하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 삭제하기를 원하는 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
  4. VM서버 그룹 상세 페이지에서 삭제 버튼을 클릭해서 VM서버 그룹 삭제를 완료하세요.

VM서버 삭제하기

VM서버를 삭제하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 삭제하기를 원하는 VM서버의 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
  4. VM서버 그룹 상세 페이지에서 삭제하려는 VM서버를 클릭하세요. VM서버 상세 페이지로 이동합니다.
  5. VM서버 상세 페이지에서 삭제 버튼을 클릭해서 VM서버 삭제를 완료하세요.

VM서버 그룹 멤버 관리하기

VM서버 그룹 멤버를 관리하려면 해당 VM서버 그룹의 Manager 권한이 필요합니다.

VM서버 그룹 멤버 추가하기

VM서버 그룹의 멤버를 추가하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 멤버 추가하기를 원하는 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
  4. VM서버 그룹 상세 페이지에서 사용자 탭을 클릭하세요.
  5. 사용자 탭에서 추가 버튼을 클릭하면 멤버 추가 팝업창이 열립니다.
  6. 설정 완료 후 확인 버튼을 클릭하여 VM서버 그룹 멤버 추가를 완료하세요. (Manager 는 서버그룹의 수정, 삭제할 수 있으며 Member 는 프로젝트 생성이나 파이프라인 추가 시 해당 서버그룹을 활용할 수 있습니다.)

VM서버 그룹 멤버 삭제하기

VM서버 그룹의 멤버를 삭제하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 멤버 삭제하기를 원하는 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
  4. VM서버 그룹 상세 페이지에서 사용자 탭을 클릭하세요.
  5. 사용자 목록에서 삭제하려는 사용자의 체크박스를 선택하세요.
  6. 삭제 버튼을 클릭하여 선택된 사용자를 VM서버 그룹 멤버에서 삭제하세요.

VM서버 그룹 권한 신청 관리하기

VM서버 그룹 권한 신청을 승인 또는 거절하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 권한 신청을 승인할 VM서버 그룹의 권한 신청 항목을 클릭하세요. 표시되는 숫자는 권한이 신청된 숫자입니다. VM서버 그룹 권한 신청 승인 팝업창이 열립니다.
  4. VM서버 그룹 권한 신청 승인 팝업창에서 승인 또는 거절하려는 신청 건을 클릭하세요.
  5. 의견 입력 후, 승인 또는 거절 버튼을 클릭하세요.
참고
권한 신청을 거절하려면 의견입력이 필수입니다.

VM서버 그룹 권한 승인 이력 조회하기

VM서버 그룹 권한 신청 승인 이력을 조회하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지의 VM서버 그룹 목록에서 조회할 VM서버 그룹을 클릭하세요. VM서버 그룹 상세 페이지로 이동합니다.
  4. VM서버 그룹 상세 페이지에서 승인 이력 탭을 클릭하세요.

VM서버 방화벽 해제하기

SSH 방식

SSH 방식 VM배포는 시큐어 셀(Secure SHell, SSH)을 이용하여 Jenkins → Target VM서버로 직접 배포를 진행합니다.

참고

배포를 위한 방화벽 해제정보

  • Source IP: 파이프라인 구성시 선택한 Jenkins IP
  • Target IP: 배포하려는 VM서버 IP

방화벽을 해제하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지에서 방화벽 신청 안내 링크를 클릭하세요. 방화벽 신청 안내 팝업창이 열립니다.
  4. Jenkins 방화벽 정보가 나타납니다.
    • 해당 정보들은 Jenkins 툴 정보 등록 시 입력한 내용이 보여지며, 툴 등록 시 입력하지 않은 경우 빈값으로 보일 수 있습니다.
    • 필요한 경우 해당 툴 관리자에 문의하세요.

에이전트 방식

에이전트 방식 VM배포는 에이전트를 Target VM서버에서 실행해야 합니다. 실행된 에이전트는 DevOps Console로부터 정보를 수집하여 배포를 진행합니다.

참고
배포를 위한 방화벽 해제정보
  • Source IP: 배포하려는 VM서버 IP
  • Target IP: DevOps Console IP, (Rollback을 사용한 경우) Rollback Artifact Repository IP
  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지에서 에이전트 설치 안내 링크를 클릭하세요. 에이전트 설치 안내 팝업창이 열립니다.
  4. DevOps Console 방화벽 상세정보와 사용자 가이드 바로가기에이전트 파일 다운로드 링크가 나타납니다.

에이전트 연동하기

에이전트 방식 VM배포는 에이전트를 Target VM서버에서 실행해야 합니다. 실행된 에이전트는 DevOps Console로부터 정보를 수집하여 배포를 수행합니다.

에이전트 연동전 준비사항

VM 서버 준비사항

Java 설치

에이전트는 Java 8 기준으로 작성 및 테스트 되었습니다. Target VM서버에 Java 8 이상의 버전을 설치하세요.

방화벽 해제 및 hosts 파일 수정

에이전트는 REST API를 이용해 DevOps Console로부터 배포 수행 정보를 수집하기 때문에 에이전트가 실행된 Target VM에서 DevOps Console로 8443 port 통신이 필요합니다.

추가로 Rollback을 사용하는 경우에는 Rollback Artifact Repository 와의 통신도 필요합니다.

필요한 경우, 방화벽 해제 또는 hosts 파일 등록 등의 작업이 필요할 수 있습니다. 방화벽 정보는 DevOps Console 의 에이전트 설치 안내(에이전트 방식) 팝업창을 참고하세요.

DevOps Console 준비사항

인증키 준비

Target VM서버에서 에이전트 실행 시 에이전트의 인증이 필요합니다. 인증을 위한 사용자 인증키와 비밀키를 생성하세요. (인증키 관리하기)

VM 서버 Secret Key 준비

Target VM서버에서 에이전트 실행 시 에이전트와 매칭되는 VM서버의 인가를 위하여 Secret Key 값이 필요합니다.

에이전트 타입의 VM서버 그룹 및 VM서버 추가 시 VM서버 Secret Key가 자동 생성됩니다. 이후에도 VM서버 상세 페이지에서 확인할 수 있습니다.

참고
에이전트 연동 시 입력한 Secret Key 뿐 아니라 VM서버의 실제 OS명, IP(IPv4)가 DevOps Console에 등록한 정보와 일치해야 연동이 됩니다.

에이전트 실행하기

에이전트 파일 다운로드하기

에이전트 설치 안내 팝업창에서 에이전트 실행 파일을 다운로드 받을 수 있습니다.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > VM서버 그룹 메뉴를 클릭하세요. VM서버 그룹 페이지로 이동합니다.
  3. VM서버 그룹 페이지에서 에이전트 설치 안내 링크를 클릭하세요. 에이전트 설치 안내 팝업창이 열립니다.
  4. 에이전트 설치 안내 팝업창에서 에이전트 파일 다운로드 버튼을 클릭하세요.
  5. deploy-agent.jar 파일이 다운로드 됩니다.

직접 에이전트 실행하기

Target VM서버에서 에이전트를 실행하려면 다음 절차를 따르세요.

  1. Target VM 서버에서 디렉토리를 생성하세요.
  2. deploy-agent.jar 파일을 해당 디렉토리에 옮기세요.
  3. 아래 Usage를 참고하여 에이전트를 실행 하세요.
    배경색 변경
    usage: java -jar deploy-agent.jar -A <arg> -L <arg> [-P <arg>] -S <arg> -V <arg>
     -A,--accessKey <arg>               AccessKey for HMAC
     -L,--serverUrl <arg>               Api server url
     -P,--loggingConfigFilePath <arg>   Path to the property file with 'java.util.logging' settings
     -S,--secretKey <arg>               SecretKey for HMAC
     -V,--vmSecretKey <arg>             VM SecretKey
    usage: java -jar deploy-agent.jar -A <arg> -L <arg> [-P <arg>] -S <arg> -V <arg>
     -A,--accessKey <arg>               AccessKey for HMAC
     -L,--serverUrl <arg>               Api server url
     -P,--loggingConfigFilePath <arg>   Path to the property file with 'java.util.logging' settings
     -S,--secretKey <arg>               SecretKey for HMAC
     -V,--vmSecretKey <arg>             VM SecretKey
    배포용 에이전트 실행 Usage
항목설명
-A, –accessKey사용자 인증키로 생성한 인증키
-L, –serverUrlDevOps Console의 API URL 경로
ex) https://{DEVOPS_CONSOLE_URL}:8443/devops-console-api
-P, –loggingConfigFilePath에이전트 로그 파일 경로
입력하지 않으면 {JAVA_HOME}\jre\lib\logging.properties 파일이 적용됩니다.
-S, –secretKey사용자 인증키로 생성한 비밀키
-V, –vmSecretKeyVM 서버에서 생성한 비밀키
표. 직접 에이전트 실행 옵션 항목

스크립트 파일로 에이전트 실행하기

Target VM서버에서 스크립트를 이용하여 에이전트를 실행하려면 다음 절차를 따르세요.

  1. Target VM 서버에서 디렉토리를 생성하세요.
  2. deploy-agent.jar 파일을 해당 디렉토리에 옮기세요.
  3. 아래 샘플 실행 스크립트를 참고하여 파일을 생성하세요.
  4. 샘플 실행 스크립트의 정보를 수정하세요.
    • DC_URL, ACCESS_KEY, SECRET_KEY, VM_SECRET_KEY
  5. 스크립트를 실행하세요.

리눅스 샘플 스크립트

리눅스 샘플 스크립트
배경색 변경
#!/bin/sh

JAVA_EXE="java"
DC_URL="https://devops-console-url.com:8443/devops-console-api"
ACCESS_KEY="user-access-key"
SECRET_KEY="user-secret-key"
VM_SECRET_KEY="vm-secret-key"

start()
{
  [ -f deploy-agent.jar ] || { echo "ERROR: deploy-agent.jar file does not exist."; exit 1; }
  echo "Starting Deploy Agent..."
  $JAVA_EXE -jar deploy-agent.jar -A $ACCESS_KEY -S $SECRET_KEY -V $VM_SECRET_KEY -L $DC_URL > deploy-agent.log 2>&1 &
  PID=`ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}'`
  echo "Process ID : $PID"
  echo $PID > deploy-agent.pid
  echo "Done."
}
stop()
{
  echo "Shutdown Deploy Agent..."
  ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}' | xargs kill
  echo "Done."
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo $ "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac
exit 0
#!/bin/sh

JAVA_EXE="java"
DC_URL="https://devops-console-url.com:8443/devops-console-api"
ACCESS_KEY="user-access-key"
SECRET_KEY="user-secret-key"
VM_SECRET_KEY="vm-secret-key"

start()
{
  [ -f deploy-agent.jar ] || { echo "ERROR: deploy-agent.jar file does not exist."; exit 1; }
  echo "Starting Deploy Agent..."
  $JAVA_EXE -jar deploy-agent.jar -A $ACCESS_KEY -S $SECRET_KEY -V $VM_SECRET_KEY -L $DC_URL > deploy-agent.log 2>&1 &
  PID=`ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}'`
  echo "Process ID : $PID"
  echo $PID > deploy-agent.pid
  echo "Done."
}
stop()
{
  echo "Shutdown Deploy Agent..."
  ps aux | grep 'java -jar deploy-agent.jar' | grep '\-A' | grep '\-S' | grep '\-V' | grep '\-L' | awk '{print $2}' | xargs kill
  echo "Done."
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo $ "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac
exit 0
리눅스 샘플 스크립트

윈도우 샘플 스크립트

윈도우 샘플 스크립트
배경색 변경
@ECHO OFF

SET JAVA_EXE="java"
SET DC_URL="https://devops-console-url.com:8443/devops-console-api"
SET ACCESS_KEY="user-access-key"
SET SECRET_KEY="user-secret-key"
SET VM_SECRET_KEY="vm-secret-key"

IF NOT EXIST deploy-agent.jar (
    ECHO "ERROR: deploy-agent.jar file does not exist."
    EXIT /b 0
)
ECHO "Starting Deploy Agent..."
%JAVA_EXE% -jar deploy-agent.jar -A %ACCESS_KEY% -S %SECRET_KEY% -V %VM_SECRET_KEY% -L %DC_URL%

EXIT /b 0
@ECHO OFF

SET JAVA_EXE="java"
SET DC_URL="https://devops-console-url.com:8443/devops-console-api"
SET ACCESS_KEY="user-access-key"
SET SECRET_KEY="user-secret-key"
SET VM_SECRET_KEY="vm-secret-key"

IF NOT EXIST deploy-agent.jar (
    ECHO "ERROR: deploy-agent.jar file does not exist."
    EXIT /b 0
)
ECHO "Starting Deploy Agent..."
%JAVA_EXE% -jar deploy-agent.jar -A %ACCESS_KEY% -S %SECRET_KEY% -V %VM_SECRET_KEY% -L %DC_URL%

EXIT /b 0
윈도우 샘플 스크립트

안내
  • java 8 이상에서 실행 가능합니다.
  • jar 파일 실행 위치를 {WORKSPACE} 로 가정합니다.
  • {WORKSPACE} 에 backup,logs 등의 추가적인 디렉토리가 생성됩니다.
  • -loggingConfigFilePath 를 입력하지 않으면 {JAVA_HOME}\jre\lib\logging.properties 파일이 적용됩니다.
  • {WORKSPACE}/backup 아래 배포 관련 파일들이 저장됩니다.
  • 배포 관련 파일은 배포에 성공한 것 중 최근 3개만 유지합니다.
  • deploy-agent.jar 전체 로그는 자동 저장되지 않습니다. 전체 로그 중 배포 관련 로그만 {WORKSPACE}/logs 에 저장됩니다.
  • log 는 30일간 유지합니다.

에이전트 문제해결

로그 레벨 변경하기

필요한 경우, 에이전트 로그 레벨을 변경할 수 있습니다. 아래 샘플 로그 파일을 참고하여 -P, --loggingConfigFilePath 옵션을 추가하세요.

샘플 로그파일

배경색 변경
############################################################
#      Default Logging Configuration File
#
# You can use a different file by specifying a filename
# with the java.util.logging.config.file system property.
# For example java -Djava.util.logging.config.file=myfile
############################################################

############################################################
#      Global properties
############################################################

# "handlers" specifies a comma separated list of log Handler
# classes.  These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
handlers= java.util.logging.ConsoleHandler

# To also add the FileHandler, use the following line instead.
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers.  For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
#.level= INFO
.level= FINE

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

# Limit the message that are printed on the console to INFO and above.
#java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

# Example to customize the SimpleFormatter output format
# to print one-line log message like this:
#     <level>: <log message> [<date/time>]
#
# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n

############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
com.xyz.foo.level = SEVERE
############################################################
#      Default Logging Configuration File
#
# You can use a different file by specifying a filename
# with the java.util.logging.config.file system property.
# For example java -Djava.util.logging.config.file=myfile
############################################################

############################################################
#      Global properties
############################################################

# "handlers" specifies a comma separated list of log Handler
# classes.  These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.
handlers= java.util.logging.ConsoleHandler

# To also add the FileHandler, use the following line instead.
#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers.  For any given facility this global level
# can be overriden by a facility specific level
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.
#.level= INFO
.level= FINE

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

# default file output is in user's home directory.
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

# Limit the message that are printed on the console to INFO and above.
#java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

# Example to customize the SimpleFormatter output format
# to print one-line log message like this:
#     <level>: <log message> [<date/time>]
#
# java.util.logging.SimpleFormatter.format=%4$s: %5$s [%1$tc]%n

############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

# For example, set the com.xyz.foo logger to only log SEVERE
# messages:
com.xyz.foo.level = SEVERE
샘플 로그파일

IP 인식이 안될 경우

에이전트 연동 시 입력한 Secret Key 뿐 아니라 VM서버의 실제 OS 명과 IP(IPv4)가 DevOps Console에 등록한 정보와 일치해야 연동이 됩니다.

일부 다중 네트워크 장비가 설치된 VM서버의 경우, 에이전트가 IP를 제대로 인식하지 못할 수 있습니다. 이러한 경우 아래처럼 IP와 hostname 설정을 /etc/hosts 파일에 추가하세요.

hostname 확인 절차
그림. hostname 확인 절차

3 - 권한 신청

권한 신청은 DevOps Console에서 배포 타겟으로 관리되는 K8S 클러스터, 네임스페이스, VM서버 그룹을 사용하기 위한 권한을 신청할 수 있습니다.

권한 신청 시작하기

권한 신청을 시작하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > 권한 신청 메뉴를 클릭하세요. 권한 신청 화면이 나타납니다.

K8S 클러스터 권한 신청하기

K8S 클러스터 권한을 신청하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > 권한 신청 메뉴를 클릭하세요. 권한 신청 화면이 나타납니다.
  3. 권한 신청 화면에서 K8S 클러스터 탭을 클릭하세요. K8S 클러스터 화면이 나타납니다.
  4. K8S 클러스터 화면에서 신청 버튼을 클릭하세요. K8S 클러스터 권한 신청 팝업창이 열립니다.
  5. K8S 클러스터 권한 신청 팝업창에서 권한을 신청할 K8S 클러스터를 검색하세요.
  6. 신청 사유를 입력하고 추가 버튼을 클릭하세요.
  7. 추가된 K8S 클러스터의 권한을 선택한 후 저장 버튼을 클릭하세요.

K8S 클러스터 권한 신청 취소하기

K8S 클러스터 권한 신청을 취소하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > 권한 신청 메뉴를 클릭하세요. 권한 신청 화면이 나타납니다.
  3. 권한 신청 화면에서 K8S 클러스터 탭을 클릭하세요. K8S 클러스터 화면이 나타납니다.
  4. K8S 클러스터 화면에서 클러스터를 선택하여 취소 버튼을 클릭하세요.
참고
상태가 REQUESTED인 신청만 취소 버튼이 표시됩니다.

네임스페이스 권한 신청하기

네임스페이스 권한을 신청하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > 권한 신청 메뉴를 클릭하세요. 권한 신청 화면이 나타납니다.
  3. 권한 신청 화면에서 네임스페이스 탭을 클릭하세요. 네임스페이스 화면이 나타납니다.
  4. 네임스페이스 화면에서 신청 버튼을 클릭하세요. 네임스페이스 권한 신청 팝업창이 열립니다.
  5. 네임스페이스 권한 신청 팝업창에서 권한을 신청할 네임스페이스가 속한 K8S 클러스터를 검색하세요.
  6. 네임스페이스를 선택하고 신청 사유를 입력한 후 추가 버튼을 클릭하세요.
  7. 추가된 네임스페이스의 권한을 선택한 후 저장 버튼을 클릭하세요.

네임스페이스 권한 신청 취소하기

네임스페이스 권한 신청을 취소하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > 권한 신청 메뉴를 클릭하세요. 권한 신청 화면이 나타납니다.
  3. 권한 신청 화면에서 네임스페이스 탭을 클릭하세요. 네임스페이스 화면이 나타납니다.
  4. 네임스페이스 화면에서 네임스페이스를 선택하여 취소 버튼을 클릭하세요.
참고
상태가 REQUESTED인 신청만 취소 버튼이 표시됩니다.

VM서버 그룹 권한 신청하기

VM서버 그룹 권한을 신청하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > 권한 신청 메뉴를 클릭하세요. 권한 신청 화면이 나타납니다.
  3. 권한 신청 화면에서 VM서버 그룹 탭을 클릭하세요. VM서버 그룹 화면이 나타납니다.
  4. VM서버 그룹 화면에서 신청 버튼을 클릭하세요. VM서버 그룹 권한 신청 팝업창이 열립니다.
  5. VM서버 그룹 권한 신청 팝업창에서 권한을 신청할 VM서버 그룹을 검색하세요.
  6. 신청 사유를 입력하고 추가 버튼을 클릭하세요.
  7. 추가된 VM서버 그룹의 권한을 선택한 후 저장 버튼을 클릭하세요.

VM서버 그룹 권한 신청 취소하기

VM서버 그룹 권한 신청을 취소하려면 다음 절차를 따르세요.

  1. 메인 페이지 오른쪽 위의 관리 아이콘을 클릭하세요. 테넌트 대시보드 페이지로 이동합니다.
  2. 왼쪽 메뉴에서 배포 타겟 > 권한 신청 메뉴를 클릭하세요. 권한 신청 화면이 나타납니다.
  3. 권한 신청 화면에서 VM서버 그룹 탭을 클릭하세요. VM서버 그룹 화면이 나타납니다.
  4. VM서버 그룹 화면에서 VM서버 그룹을 선택하여 취소 버튼을 클릭하세요.
참고
상태가 REQUESTED인 신청만 취소 버튼이 표시됩니다.