본문 바로가기

클라우드/쿠버네티스(Kubernetes)

(47)
쿠버네티스 Kubernetes Pod # Pod의 특징 파드안에는 하나의 독립적인 서비스를 구동할 수 있는 컨테이너들이 있다. 그 컨테이너들은 서비스가 연결될 수 있도록 포트를 가지고 있는데 한 컨테이너가 포트를 하나 이상 가질 수 있지만 한 파드내에서 컨테이너들끼리 포트가 중복될 수 없다. 이 두 컨테이너는 한 호스트로 묶여있다. Container1 에서 Container2로 접근할 때 localhost:8080으로 접근 가능하다. 파드가 생성될 때 고유의 IP 주소가 할당이 되는데, 쿠버네티스 클러스터내에서만 이 IP를 통해 파드에 접근할 수 있고, 외부에서는 이 IP로 접근할 수 없다. Pod에 문제가 생기면 System이 감지를 해서 파드를 삭제시키고 재생성하게 되고 IP는 변경이 된다. 더보기 apiVersion: v1 kind: ..
쿠버네티스 Kubernetes 개요 쿠버네티스는 서버 한 대는 Master로 사용하고 다른 서버들은 Node로 사용하여 Master에 여러 노드들을 연결한다. Master Node1 Node2 Node3 → 이것들이 묶여 하나의 클러스터(Cluster) 가 된다. # Master 쿠버네티스의 전반적인 기능들을 컨트롤하는 역할 # Node 자원을 제공하는 역할 만약 클러스터의 자원을 늘리고 싶다면 ? → 노드를 추가 하면 된다. # Namespace 클러스터안의 Namespace가 쿠버네티스 오브젝트들을 독립 된 공간으로 분리시켜준다. Namespace 안에는 쿠버네티스 최소 배포 단위인 Pod 들이 있고, Pod 들에게 외부로부터 연결이 가능하도록 IP를 할당해주는 서비스가 있다. (서로다른 Namespace에 있는 파드들에게는 연결할 수..
리눅스 → 도커 → 쿠버네티스 실습 시나리오 도커 환경과 쿠버네티스 환경에서 실제 앱을 구동시키는 실습 리눅스 → 도커 → 쿠버네티스 실습 시나리오 # 리눅스 1. 최초의 리눅스 서버에서 Hello world 라는 node.js 앱을 만들어 띄워 보기 → 리눅스에는 node.js를 실행할 수 있는 패키지가 깔려있어 앱이 구동이 된다. 2. 도커가 깔려있는 다른 서버에서 앞에서 만든 Hello world 앱을 가져올것 → 이 서버에는 node.js가 깔려있지 않기 때문에 실행 되지 않는다. # 도커를 이용해 컨테이너를 만든다. 1. 여러가지 컨테이너 이미지들을 공개적으로 올릴 수 있는 도커허브에서 node.js 이미지를 실행할 수 있는 컨테이너 이미지를 가져온다. 2. 복사해온 Hello world 앱을 하나의 컨테이너로 만든다. 더보기 Docker..
VM(가상머신) 과 Container(컨테이너)의 차이 # VM vs Container # VM 공통적으로 하나의 서버가 있고 한서버에는 어떤 운영 체제가 있건 HostOS (맥 OS, 리눅스, 마이크로소프트 윈도우) 가 올라간다. VM의 경우 호스트OS에 의해 VM을 가상화 시켜주는 하이퍼바이저(virtual box, Xen, KVM, VMware)들이 있다. 하이퍼 바이저를 사용하여 원하는 운영체제로 GuestOS를 올려 여러 VM을 만들 수 있다. GuestOS도 HostOS와 같이 하나의 OS를 독립적으로 가지고 있는것처럼 사용가능하다. 여러 어플리케이션들을 설치하고 각각의 서비스를 만들 수 있다. # 컨테이너 VM과 HostOS 까지 설치는 동일하다. 이 OS에 의해 컨테이너를 가상화 시켜주는 여러가지 소프트웨어들(docker, rkt, LXC)이 ..
쿠버네티스 Kubernetes의 등장 배경 # 쿠버네티스를 왜 사용하는가? 대규모의 서비스를 운영할 때 자원을 최대한 효율적으로 사용해야 비용적으로 유리하기 때문이다. 서버 자원을 효율적으로 사용하기 위해서는 가상화기술을 사용한다. # 쿠버네티스 등장 배경 시스템에 대한 꾸준한 개발을 통해 리눅스는 자원들을 격리해 프로세스들이 독립적인 환경에서 돌아가게 해주는 기술들( 리눅스 자원 격리 기술 : chroot, namespace, cgroup )이 있었지만 사용하기에 어려워 대중적으로 사용되지 않았다. 이 기술과는 별개로 vm 가상화 기술이 기업들은 물론 일반인들에게 까지 쉽게 vm을 가상화 할수있을정도로 발전해있었다. 2010년도에 rackspace 클라우드 기업과 미국 NASA에서 OpenStack 이라는 VM을 가상화 시켜주는 오픈소스가 등장..
kubernetes 에서 VM 생성하기 1 # 우분투에 microk8s를 이용하여 kubernetes 설치 --> 터미널 유지 더보기 $ sudo snap install microk8s --classic $ microk8s enable dashboard dns helm3 ingress prometheus registry $ sudo usermod -a -G microk8s user $ sudo chown -f -R user ~/.kube $ newgrp microk8s $ microk8s dashboard-proxy # 프록시 돌아가는 터미널 유지 -> config 넣어주기 # kubevirt 및 cdi 설치 -> 리소스들이 Running 상태에 오른것 확인 -> 리소스들이 Running 상태에 오른것 확인 더보기 $ sudo apt instal..
쿠버네티스 Kubernetes 스테이트풀셋 1 https://thenewstack.io/how-to-treat-your-kubernetes-clusters-like-cattle-not-pets/ How to Treat Your Kubernetes Clusters Like Cattle, Not Pets - The New Stack The Cloud Native Computing Foundation sponsored this post. Michael Dell, founder, chairman and CEO of Dell Technologies, defined cloud not as a place, but “as a way of doing IT.” As IT becomes more and more central to what every company do..
쿠버네티스 Kubernetes 애플리케이션 사용자화 6 / 시크릿(Secret)을 이용한 사용자화 1 # 시크릿을 이용한 사용자화 컨피그맵과 같은 키/값 저장소 , 소량의 민감한 데이터를 저장하고 안전하게 제공될 수 있도록 만들어 졌다 또한 값을 BASE64로 인코딩해 데이터 저장하고 인코딩된 경우 별도의 절차 없이 디코딩하여 제공 인코딩 : 데이터를 다른 형태의 코드로 바꾸는 것 , 시크릿에서는 데이터를 잘 알아보지 못하도록 인코딩한다 (암호화는 아님) https://www.base64encode.org/ Base64 Encode and Decode - Online Encode to Base64 format or decode from it with various advanced options. Our site has an easy to use online tool to convert your data...