K8S
-
클라우드: 쿠버네티스 컨피그맵(Configmap) 실습하기K8S 2021. 3. 31. 01:13
대부분의 어플리케이션은 설정값을 가지고 있다. 예를 들어, Nginx 웹서버의 경우, nginx.conf파일에 설정값을 보관하며 이처럼 설정값을 저장하는 방법에 대한 쿠버네티스 오브젝트가 컨피그맵이다. 이번 포스팅은 컨피그맵을 이용하여 설정사항들을 저장하는 다양한 방법에 대해서 알아본다. create configmap명령어를 이용하여 다음과 같이 log-level-configmap이라는 이름의 컨피그 맵을 생성한다. --from-literal이라는 옵션을 통해 LOG_LEVEL을 key로 하고, DEBUG을 value으로 하는 키-값 한쌍을 생성한다. kubectl create configmap log-level-configmap --from-literal LOG_LEV..
-
클라우드: 쿠버네티스 네임스페이스(namespace) 실습하기K8S 2021. 3. 28. 03:01
네임스페이스는 리소스를 논리적으로 구분하는 역할을 한다. label과 유사하지만 더 폭넓은 용도로 사용가능하다는 점에서 차이가 있다. 1. namespace 확인하기 기본적으로 사용하는 namespace는 default namespace 기본적으로 생성되어 있는 kube-system namespace의 포드와 서비스를 다음과 같이 확인할 수 있다. (kube-system 네임스페이스는 쿠버네티스 클러스터 동작에 있어서 중요한 오브젝트이므로 건드리지 않는게 좋다) 2. 네임 스페이스 사용하기 다음과 같이 production이라는 이름으로 namespace yaml파일을 정의하고 적용해준다. 또는 다음과 같은 방법으로 namespace 생성가능하다. ku..
-
클라우드: 쿠버네티스 서비스(Service) ClusterIP와 NodePort 실습하기K8S 2021. 2. 18. 23:17
이전의 경우에서는 kubectl describe 커맨드로 포드의 내부의 IP를 찾고, 마스터노드를 통해 포드에 직접 접근했다. 네트워크: 쿠버네티스 포드(Pod) 오브젝트 사용하기 쿠버네티스는 대부분의 리소스를 오브젝트 형태로 관리한다. 쿠버네티스의 컨테이너의 집합(pods), 컨테이너의 집합을 관리하는 컨트롤러(replica set) 사용자(service account), 노드(node)등이 하나의 오 seungjuitmemo.tistory.com 하지만 이러한 방법은 쿠버네티스 클러스터 내부 또는 로컬을 통해서만 사용할 수 있다. 또한 포드의 IP는 계속 바뀔 수 있으므로, 하나의 어플리케이션으로 연동시킬려면 IP를 이용한 접근이 아닌 다른 방법이 필요하다. 이전에 포드를 생성할때 containerP..
-
클라우드: 쿠버네티스 디플로이먼트(Deployment) 실습하기K8S 2021. 2. 14. 11:04
네트워크: 쿠버네티스 레플리카셋(Replica Set) 실습하기 우선 포드는 기본적으로 여러 개의 컨테이너를 추상화하여 하나의 어플리케이션으로 동작한다. 외부 사용자가 어플리케이션으로 요청을 보내면 쿠버네티스에서는 이러한 요청을 동일한 여러 seungjuitmemo.tistory.com 앞서 레플리카셋을 yaml파일로 작성하고 이를 이용해서 레플리카셋을 만들었다. 하지만 실제 쿠버네티스 운영에서는 레플리카셋과 포드의 정보를 정의하는 디플로이먼트(Deployment)라는 오브젝트를 yaml파일에 정의하여 사용한다. 디플로이먼트는 레플리카 셋의 상위 오브젝트이기 때문에 디플로이먼트를 생성하면 해당 디플로이먼트에 대응하는 레플리카셋도 함께 생성된다. 다음 yaml 파일을 이용해서 디플로이먼트에 대해서 알아보자..
-
클라우드: 쿠버네티스 레플리카셋(Replica Set) 실습하기K8S 2021. 2. 5. 01:58
우선 포드는 기본적으로 여러 개의 컨테이너를 추상화하여 하나의 어플리케이션으로 동작한다. 외부 사용자가 어플리케이션으로 요청을 보내면 쿠버네티스에서는 이러한 요청을 동일한 여러개의 포드로 분배하여 전달한다. 그렇다면 동일한 여러개의 포드는 어떤식으로 생성할 수 있을까? yaml 파일에 하나의 포드를 더 정의해서 사용하는 방법은 매우 비효율적이다. 워커 노드가 다운되거나 어떠한 이유로 포드가 삭제된다면 해당 포드를 다시 생성하기는 어렵다. 그래서 이러한 문제점을 해결해주는 것이 레플리카셋이다. 레플리카 셋이 하는 일은 다음과 같다. ● 동일한 포드가 정해진 수 만큼 실행되도록 한다. ● 노드에 장애 발생시, 다른 노드에서 포드를 다시 생성한다. 이렇게 레플리카셋을 이용하여 일정한 수의 동일한 포드를 생성하..
-
클라우드: 쿠버네티스 포드(Pod) 오브젝트 사용하기K8S 2021. 2. 1. 19:56
쿠버네티스는 대부분의 리소스를 오브젝트 형태로 관리한다. 쿠버네티스의 컨테이너의 집합(pods), 컨테이너의 집합을 관리하는 컨트롤러(replica set) 사용자(service account), 노드(node)등이 하나의 오브젝트들이다. 오브젝트 종류 확인하기 kubectl api-resources 오브젝트 설명보기 kubectl explain pod 쿠버네티스는 대부분의 작업을 명령어로 수행할 수 있다. 하지만 쿠버네티스의 가장 큰 특징은 yaml파일을 이용한 클러스터 관리이기 때문에 쿠버네티스를 잘 사용하는 사람은 yaml파일을 잘 작성하는 사람이라 해도 과언이 아니다. 1. 마스터노드와 워커노드 쿠버네티스에서 노드의 역할은 크게 두가지로 마스터와 워커이다. 마스터노드의 경우, 클러스터를 관리하며 ..
-
클라우드: 쿠버네티스 설치하기K8S 2021. 1. 31. 20:30
쿠버네티스는 사용환경과 목적에 따라 설치하는 방법이 매우 다양하고 복잡하다. 하나의 호스트에서 개발용도로만 사용하려면 Minikube, Docker for Mac/Windows에 내장된 쿠버네티스가 적당하다 하지만 서비스 테스트 또는 운영용도로 사용하려면 다른 것들이 필요하다. (쿠버네티스는 여러 자원을 클러스터링해서 컨테이너를 배치하는것이 핵심 기능이기 때문) 우선 어떤 환경에 설치할 것인지 결정해야 한다. 1. 온프레미스 환경에 설치할 것이냐 2. 클라우드 환경에 설치할 것이냐 온프레미스 환경에 설치할 경우, 쿠버네티스를 포함한 모든 인프라를 직접 관리해야 한다. 원하는 대로 구성할 수 있지만, 유지 보수를 스스로 해야하는 것이 단점 클라우드 플랫폼을 이용할 경우, 서버 인스턴스에 직접 쿠버네티스를 ..