2. K8S 관리

2.1 클라우드 등록

2.1.1 K8S 클라우드 등록

  • 새로운 클라우드 등록 management
    1. 클라우드 메뉴 선택
    2. 클라우드 정보 관리 선택
    3. 새로운 클라우드 등록

  • 클라우드 정보 등록 management
    1. Kuberntes 선택
    2. 클라우드 이름을 입력해주세요
    3. K8S Service Account 이름 - serengeti-admin
    4. K8S Service Account Secret Token

  • 클라우드 상세 정보 등록 management
    1. K8S Master Node IP
    2. Https 사용 여부
    3. [3, 4, 5]항목 /root/.kube/config 파일 확인
      • management
    4. [6, 7]항목 사용자 Docker Hub 계정 등록
    5. [8]항목 K8S 공식 문서 참조
      • 요청 필요
    6. [9]항목 Private Registry 주소
      • Default : serengeti.registry:30443

  • 클라우드 Region
  • 생성한 클라우드 정보 상세보기
  • K8S에선 namespace, NodeSelector Default Label 설정
    management
    1. 리전 이름
    2. 리전 위치
    3. K8S Namespace
      management
    4. 리전 선택
  • 정보 입력 후 저장

  • 클라우드 Zone 등록
    management
    1. Zone 이름
    2. Zone 선택 (Namespace 이름과 동일하게 NodeSelector 생성)
      management
  • Zone 정보 입력 후 저장

2.1.2 K8S 클라우드 접속 등록

  • 클라우드 접속 management
    1. 클라우드 메뉴 선택
    2. 클라우드 접속 관리 선택
    3. 새로운 클라우드 접속 등록

  • 클라우드 접속 등록 management
    1. 클라우드 선택
    2. 클라우드 Regsion, Zone 선택
    3. 클라우드 접속 이름
    4. 컨테이너 접속 계정
      • K8S는 root로 지정
    5. 컨테이너 접속 계정 패스워드
      • K8S는 root로 지정

2.2 카탈로그 관리

  • 카탈로그
    management
    1. 클라우드 메뉴 선택
    2. 카탈로그 정보 관리 선택
    3. 카탈로그 생성

  • 카탈로그 생성
    management
    1. 카탈로그 이름 설정
    2. 카탈로그 버전 설정
      • ex) 1.0.0
    3. 카탈로그 상세 구성

2.2.1 사용할 service 생성

  • K8S Service 생성
    management
    1. 카탈로그에 보일 서비스(로드발란서) 이름
    2. 신규 자원 생성 선택
    3. 속성 정보 입력 탭으로 이동

  • Service 속성 정보 입력
    management
    1. 로드발런서 이름 ex) ulsan-usdc, ulsan-usop
    2. 로드발란서 유형 - NodePort로 변경
    3. 연결 컨테이너 레이블 - 이름과 동일하게 입력

  • 리스너 생성 버튼으로 리스너 추가
    management

    1. 리스터 추가 버튼으로 리스너 추가
    2. 로드발란서 룰 이름 ex) usdc, usdw
    3. 서비스 포트 - 컨테이너에서 사용할 Port
    4. 서비스 프로토콜
    5. 연결할 컨테이너에 연결 Port
    6. 노드 포트 지정 방식 - Node에서 사용할 Port
    • 자동 지정 - 30000 ~ 32767 랜덤한 값으로 할당 됩니다.
    • 수동 지정 - 위 범위에서 수동으로 지정 가능.
      • 현재 사용중인 Node Port 목록
        • 세렝게티 - 30000~30100
        • 세렝게티 DB - 32363
        • 세렝게티 registry - 30443
        • API GateWay - 30527, 31873
        • ulsan-jenkins 31002
        • ulsan-usdc - 31009
        • ulsan-usdw - 31007
        • ulsan-usop 31005
        • hj-ulsan-usdc - 31013
        • hj-ulsan-usdw - 31012
        • hj-ulsan-usop - 31011


  • K8S Service Role 설정
    management management

    1. 카탈로그에 보일 서비스 Role 이름
    2. 기존 자원 선택
    • 이름만 입력 후 저장

2.2.2 사용할 인스턴스 생성

  • K8S Instance 생성
    management
    1. 카탈로그에 보일 인스턴스 이름
    2. 속성 정보 입력 탭으로 이동

  • Instance 속성 정보 입력
    management
    1. 컨테이너 이름
    2. 컨테이너 호스트 - 생략 가능
      • Default: WorkNode 사용
      • NodeSelector로 사용할 Node명 입력시 Node 지정 가능.
    3. 이미지 선택
      • 제공 이미지 선택 - Serengeti에서 제공 되는 이미지
      • 사용자 이미지 선택 - 사용자가 Upload한 이미지 선택 ex) usdc, usdw
      • 도커 허브 이미지 선택 - 도커 허브에 올라와 있는 Public 이미지 선택
    4. 3에서 제공 이미지, 사용자 이미지 선택 시 이미지 목록
    5. 컨테이너에서 사용할 Volume 추가
    6. 컨테이너에서 사용할 Port 추가
    7. HostAlias 설정
    8. 컨테이너에서 사용할 Command 명령어, arg 입력 가능.

  • K8S Instance Resource 설정
    management management
    1. 카탈로그에 보일 인스턴스 리소스 설정 이름
    2. 속성 정보 입력 탭으로 이동

  • K8S Instance Resource 속성 설정
    management
    1. 사용할 자원 선택
    2. 선택 후 저장

2.2.3 Service, Instance 연결

  • 생성한 서비스와 인스터스를 연결합니다.
  • 연결되어야 카탈로그로 자원 생성 시 연결됩니다.

2.2.4 카탈로그 실행

  • 카탈로그 실행
    management
    1. 카탈로그 실행 - 위에서 생성한 정보로 카탈로그 생성
    2. 생성된 카탈로그 정보 상세보기

  • 카탈로그 상세 정보
    management
    1. 이전 카탈로그 상셍 정보로 돌아가기
    2. 생성된 카탈로그를 종료 합니다.
    3. 카탈로그로 생성 된 인스턴스 자원 정보

  • 런타임 정보
    management
    1. 런타임 제어 목록 열기
    2. 스케일 아웃
    3. 스케일 인
    4. 인스턴스의 이미지 최신버전을 받아와 다시 실행시킵니다.
    5. 위 동작을 하는 API의 URL을 복사합니다. Jenkins에서 사용합니다.
    6. 생성되어 있는 자원의 상태 정보와 동기화 합니다.
    7. 속성 설정 화면 열기
    8. 속성 설정 화면에서 적용한 내용을 적용합니다.

  • 런타임 속성 정보
    management
    1. 작동할 인스턴스 수 ex) 3이면 3개의 인스턴스가 작동됩니다.
    2. 최대 생성 가능한 갯수
    3. 최소 운영할 갯수