VMware/Tanzu

쿠버네티스 입문 : 실습 - 02 ( K8s로 컨테이너 실행하기 )

moonee 2021. 9. 11. 13:06

쿠버네티스 입문 : 설치 - 01 

 

쿠버네티스 입문 : 설치 - 01

GCP 이용 / 보안상 캡처는 하지 않았음 - 제어 노드 3대, 워커 노드 2대 - OS : ubuntu 20.04 - pip version : 20.0.2 - kubespray version : 2.14.2 * 모든 노드에 마스터 1번 노드의 SSH 공개키 배포 마스터 1번..

moosvmware.tistory.com

금일은 설치된 쿠버네티스를 가지고 직접 컨테이너를 실행하고, kubectl 명령어에 대해서 알아보도록 하겠다.

그전에~ 우리 실습의 쿠버네티스 클러스터 구성도를 먼저 살펴보자

 

하나씩 알아보자

 

kube-scheduler : 노드가 배정되지 않은 Pod를 감지하여 어떤 노드에서 실행할지 선택하는 제어부 컴포넌트. 선언적 특성에서 중요한 역할을 하고 있는 것으로 보인다.

 

kube-controller-manager : 컨트롤러 프로세스를 실행하는 제어부 컴포넌트. 논리적으로는 분리되어 있지만, 복잡성을 낮추기 위해 모두 단일 바이너리로 컴파일되고 단일 프로세스 내에서 실행됨. 다음 컨트롤러를 포함한다.

 - 컨트롤러 종류

   - 노드 컨트롤러 : 노드 다운 시 통지 및 대응에 관한 책임을 가진다.

   - 레플리케이션 컨트롤러 : 시스템의 모든 레플리케이션 컨트롤러 오브젝트에 대해 알맞은 수의 파드들을

 유지시켜 주는 책임을 가진다.

   - 엔트포인트 컨트롤러 : 엔트포인트 오브젝트를 채운다 - 서비스와 Pod를 연결시킨다.

   - 서비스 어카운트 & 토큰 컨트롤러 : 새로운 네임스페이스에 대한 기본 계정과 API 접근 토큰을 생성한다.

 

kube-apiserver : 쿠버네티스 API를 노출하는 쿠버네티스 제어부 컴포넌트이다. 제어부의 앞단.

 

ectd : 쿠버네티스 클러스터의 모든 데이터를 담는 뒷단의 저장소 ( 일관성, 고가용성 키-값 저장 )

 

kubelet : 다양한 메커니즘을 통해 제공된 PodSpec의 집합을 받아서 컨테이너가 해당 PodSpec에 따라 정상적으로 작동할 수 있도록 보장해준다.

 

kube-proxy : 클러스터의 각 노드에서 실행되는 네트워크 프록시. 쿠버네티스 서비스 ( Pod 집합에서 실행중인 애플리케이션을 노출하는 방법 )의 구현부이다.

 

calico-agent : Kubespray가 지원하는 네트워크 플러그인 중 하나이며, 디폴트 설정이다. BGP를 지원하고, AWS, GCP 등 관리형 쿠버네티스 서비스를 제공하는 회사 대부분에서 칼리코를 기본 네트워크 플러그인으로 사용함.

 

Kubectl 

 

* 기본 사용법

kubectl [command] [resource type : pod, service, ingress] [name] [flags]

 

* echoserver 이름의 Pod 생성

root@instance-1:~# kubectl run echoserver --image="k8s.gcr.io/echoserver:1.10" --port=8080

pod/echoserver created

 

* K8s의 Pod에 접근할 떄 필요한 echoserver라는 이름의 서비스를 생성

root@instance-1:~# kubectl expose po echoserver --type=NodePort
service/echoserver exposed

 

* 파드 생성 확인

root@instance-1:~# kubectl get pods
NAME         READY   STATUS    RESTARTS   AGE
echoserver   1/1     Running   0          2m43s

 

* 서비스 생성 확인

root@instance-1:~# kubectl get services
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
echoserver   NodePort    x.x.0.150       <none>          8080:30237/TCP   104s
kubernetes   ClusterIP     x.x.0.1          <none>          443/TCP          39

 

'VMware > Tanzu' 카테고리의 다른 글

Tanzu K8s 릴리즈용 Local Contents Library 생성  (0) 2021.10.11
vSphere with Tanzu & Bitfusion #1 - AVI  (0) 2021.09.15