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 - 클러스터 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 권한 확인 명령어