인프라 모델링 (쿠버네티스)


Getting started

Kuber-Ez는 Yaml 및 CLI에 대한 최소한의 이해만으로도 kubernetes 매니페스트 및 배포 모형을
구성할 수 있는 시각적 방식의 웹 기반 다이어그래밍 도구입니다.

사이트rul: 쿠버네티스 시작하기

  • 우측 상단의 + NEW에서 Kubernetes Deploy Diagram 클릭해 줍니다.


Quick Tour

화면 구성


1. 팔레트 영역

Kubernetes 오브젝트 팔레트 영역으로 쿠버네티스 객체 목록을 그룹화하여 각 카테고리별로 나눠져 있습니다.

오브젝트 팔레트

카테고리 오브젝트 설명
Workload Namespace
Deployment
ReplicaSet
Pod
StatefulSet
DaemonSet
쿠버네티스의 기본 Object와
Desired State를 유지하기 위한
컨트롤러 객체들의 집합
Routing Service
Ingress
Workload 객체을 외부에서
접근할 수 있도록 서비스하는 객체
Persistence PersistentVolume
PersistentVolumeClaim
StorageClass
쿠버네티스 스토리지를 관리하기
위한 볼륨 리소스 집합
Autosalcer HorizontalPodAutoscaler CPU, 메모리의 사용량을 관찰하여
리소스의 파드 개수를
자동으로 스케일하는 객체
Job Job
CronJob
지정된 수의 파드가 성공적으로
실행되어 종료되도록 하는
컨트롤러 객체들의 집합
Configuration ConfigMap
Secret
다른 객체가 사용할 데이터를
저장하는 객체들의 집합
Role Based Access Control
(RBAC)
Role
RoleBinding
ClusterRole
ClusterRoleBinding
ServiceAccount
사용자의 역할을 기반으로
쿠버네티스 시스템의 권한을
관리하는 객체들의 집합
Istio Gateway
VirtualService
DestinationRule
ServiceEntry
Sidecar
Quota
Rule
QuotaSpec
QuotaSpecBinding
MemQuota
Knative Service
Argo Workflow


2. 메뉴 영역

우측 상단에 표시되는 클러스터 연결 및 배포, 생성된 YAML 코드의 관리를 위한 기능으로 상세 설명은 다음과 같습니다.

1) Manage Clusters : 사용자의 클러스터를 등록 및 삭제할 수 있으며 등록된 클러스터를 클릭하여 사용할 클러스터를 선택할 수 있습니다.

톱니바퀴 버튼 클릭시 호출되는 Manage Clusters 화면

+버튼을 클릭하여 이름, 클러스터의 API Server, token을 입력하여 저장하면 화면에 입력한 클러스터 정보가 등록됩니다. 사용할 클러스터는 등록된 클러스터를 클릭하여 선택합니다.

2) Deploy : 캔버스에 모델링된 객체를 서버에 배포해주는 버튼으로 사용자가 선택한 클러스터가 있는 경우 사용할 수 있습니다.

Deploy 버튼 클릭시 나오는 팝업창. 배포할 클러스터 정보를 확인하고 Deploy 버튼을 누르면 캔버스에 모델링된 객체들이 배포됩니다.

3) Code Preview : Code Preview, Download Archive 두가지 메뉴가 있으며 Code Preview 클릭시 캔버스에 모델링한 객체의 Yaml 파일을 Template에 따라 미리볼 수 있습니다.
Download Archive 클릭시 선택한 Template에 따른 Yaml 파일이 다운로드 됩니다.

Code Preview를 클릭하여 Template에서 Separate File per kind를 선택한 화면

원하는 Template별로 모델링 객체의 Yaml을 확인할 수 있습니다.

Download Archive를 클릭하여 호출된 팝업창. 원하는 Template을 골라 Yaml 파일을 다운로드 할 수 있습니다.



3. 커맨드 영역

Kubernetes CLI 명령어를 출력하는 Shell 영역으로 캔버스 상에 객체를 정의하고,
객체의 컨텍스트 메뉴에서 명령어를 클릭시 Shell 영역에 해당 커맨드가 출력됩니다.
오브젝트의 context menu에서 터미널 오픈

메뉴를 통한 kubectl get deployment 명령어 호출



4. 캔버스 영역

오브젝트 팔레트에서 선택한 객체가 구현되는 영역으로 오브젝트를 더블클릭시,
해당 객체의 프로퍼티를 수정할 수 있는 편집창이 나와 추가적인 정의를 할 수 있습니다.

UI 편집창을 통한 프로퍼티 정의

Tutorial

pod 추가 및 터미널 오픈

pod를 추가하고 터미널을 open 해줍니다.

번호 이름 기능 설명
1 pod pod 추가
2 terminal 내부 터미널 작동

터미널 클릭시 화면

pod를 더블 클릭하여 아래와 같이 세팅 해줍니다.

  • Name: nginx
  • Image: nginx
  • Port: 8080

labels 과 Containers 설명

labels 이란 쿠버네티스에서 나를 조회할 때 사용하는 태그입니다.

  • App라고 하는 태그로 된 nginx
  • nginx라고 된 애플리케이션

Containers(복수형)란 기본적으로 프로세스라고 생각하면 됩니다.

  • 하나의 pod 안에 하나 이상의 프로세스가 뜰 수 있기 때문에

· Pod

kubectl create pod(pod를 생성하는 명령어입니다.)

  • 아래 이미지의 터미널 아이콘을 클릭하여 kubectl create pod를 클릭합니다.

pod/nginx created



kubectl get pod nginx(nginx pod 상태를 확인하는 명령어입니다.)

  • 명령어 입력 시 아래와 같이 출력 됩니다.



kubectl describe pod nginx(nginx pod 상세정보를 확인하는 명령어입니다.)

  • 결과화면

· Service

Service를 더블 클릭하여 아래와 같이 세팅 해줍니다.

  • Name: nginx
  • Image: nginx
  • Target Port: 8080
  • Type: ClusterIp

Type의 ClusterIp와 LoadBalancer의 차이점

  • clusterIp(쿠버네티스 내부에서만 접근하도록 하는 설정) - 보안 적합
  • LoadBalancer (외부에서도 접근할 수 있게 설정) - 보안 부적합



화살표 아이콘을 클릭하여 pod(nginx) 에 연결해 줍니다.



kubectl create service(service를 생성하는 명령어입니다.)

service/nginx created

· Ingress

Ingress(API 게이트 대문 역할)

  • Ingress란 하나의 API 게이트웨이입니다.

Ingress를 더블 클릭하여 아래와 같이 세팅해 줍니다.

  • Name: main



kubectl create ingress(ingress를 생성하는 명령어입니다.)

  • 결과화면
ingress.extensions/main created



kubectl get ingress(ingress 상태를 확인하는 명령어입니다.)

  • 결과화면



ADDRESS의 아이피 주소로 접속

  • 결과화면(kubectl get ingress로 획득한 ADDRESS의 아이피 주소)

uEngine has registered trademarks and uses trademarks. and MSA-Ez is licensed under the GNU General Public License version 3.0.