목록k8s #핵심만 콕 쿠버네티스 (9)
진취적 삶
12.1 리소스 관리 가상의 논리 클러스터인 네임스페이스를 이용하여 리소스를 관리할수 있게 해준다. 일반 사용자 : 자신이 개발한 애플리케이션을 k8s 플랫폼 위에 실행하는 사용자 관리자 : k8s 클러스터 자체를 관리하고 필요한 물리 리소스를 제공하는 총 책임자 클러스터 관리자가 일반 사용자에게 리소스 사용량을 제한하기 위해 사용하는 것이 LimitRange ,ResourceQuota 리소스 이다. 12.1.1 limitRange 일반 사용자가 리소스 사용량 정의를 생략하더라도 자동으로 pod의 리소스 사용량 설정 관리자가 설정한 최대 요청량을 일반 사용자가 넘지 못하게 제한 # limit-range.yaml apiVersion: v1 kind: LimitRange metadata: name: limi..
k8s 는 데이터 저장소를 제공하는 부분과 마련한 저장소를 사용하는 부분으로 구분지었다. PersistentVolume : 클러스터 관리자가 데이터를 어떻게 제공할 것인지 관련한 리소스 PersistentVolumeClaim : 일반 사용자가 데이터 저장소를 어떻게 활용한 것인지 StorageClass :클러스터 관리자가 사용자들에게 제공하는 저장소 종류 10.1 PersistentVolume PV 은 데이터 저장소를 추상화 시킨 리소스이다. 추상화 리소스를 사용하고 각 환경에 따라 그에 맞는 타입을 선택한다. 10.1.1 hostPath PV apiVersion: v1 kind: PersistentVolume metadata: name: my-volume spec: storageClassName: ma..
네트워크 애플리케이션 계층에서 외부의 트래픽을 처리하는 ingress 9.1 ingress 란 ? ingress : HTTP ,HTTPS 등 네트워크 Layer 7에 대한 설정을 담당하는 리소스 가장 기본적인 역할은 외부 HTTP 호출에 대한 트래픽을 처리한다. ingress 는 k8s 클러스터 내부 서비스에 외부 접근 가능한 URL을 부여함으로서 사용자들이 쉽게 접근할수 있는 통로를 제공 9.1.1 Ingress Controller 란 ingress 리소스 자체로는 트래픽 처리에 대한 정보를 담고있는 정의에 가깝다. ingress 규칙을 읽고 외부의 트래픽을 service로 전달하는 주체는 ingress controller k8s 리소스는 해당 리소스에 대응하는 리소스 컨트롤러가 존재한다. 9.1.2 ..
Deployment , Service, ConfigMap 과 같은 다양한 리소스의 조합으로 구성된다. 8.1 helm 이란 helm 은 k8s 패키지 매니저이다. apt ,yum ,pip 틀과 비슷하게 플랫폼의 패키지를 관리한다. values.yaml : 사용자가 원하는 값들을 설정하는 파일 templates /: 설치할 리소스 파일들이 존재하는 디렉터리 해당 디렉터리 안에는 Deployment , Serivce 등과 같은 k8s 리소스가 YAML 파일 형태로 들어가 있다. 도커가 단순히 프로세스 레벨에서 외부의 것을 가져다 쓸수 있게 해준것이라면 ,K8S 는 helm을 이용하여 프로세스와 네트워크 저장소 등 애플리케이션에서 필요한 모든 자원들을 외부에서 가져올수 있게한다. helm chart 생성 cu..
쿠버네티스의 네트워크를 담당하는 Service 리소스에 대해서 알아보자. Service 리소스는 Pod IP 와는 또 다른 독자적인 IP를 부여받아 서비스의 끝점을 제공하여 라벨링 시스템을 통해 Pod로 부터 트래픽을 전달한다. 6.1 Service 소개 k8s 는 Pod 자체에도 IP가 부여된다. 6.1.1 불안정한 Pod vs 안정적인 service k8s 에서는 Pod 리소스를 불안정한 자원으로 여긴다. Pod는 쉽게 생성했다가 쉽게 삭제 가능 Pod의 생명주기와는 상관없이 안정적인 서비스 endpoint를 제공하는 service라는 리소스가 등장 리버스 프록시 : 클라이언트 서버 구조에서 서버로 전송되는 요청을 대신 받아 원래의 서버로 전달해주는 대리 서버를 의미한다. 6.1.2 서비스 탐색 my..
5.1 pod 소개 pod는 쿠버네티스의 최소 실행단위 p8s 는 pod를 통해 기본 가상환경을 제공한다. 가상머신의 instance 도커의 컨테이너와 같이 p8s 에서 지원하는 가상환경 실행 단위 5.1.1 Pod 특징 pod는 1개 이상의 컨테이너를 가질수 있다. 동일 노드에 할당 동일한 생명주기 고유의 Pod IP IP 공유 volume 공유 NAT : 여러개의 내부 IP를 1개의 외부 IP 와 연결하는 기술 apiVersion: v1 kind: Pod metadata: labels: run:mynginx name: mynginx spec: containers: - name: mynginx image: nginx restartPolicy: Never apiVersion : 리소스 이름이 동일할 경우..
쿠버네티스 클러스터를 컨트롤하기 위해 kubectl 명령 툴을 사용한다. 사용자가 직접 HTTP 프로토콜로 API 서버와 통신할수도 있지만 쿠버네티스에서는 쉽게 마스터와 통신 할수 있게 해주는 클라이언트 툴인 kubectl 을 제공한다. 4.1 기본명령 4.1.1 컨테이너 실행 kubectl run --image 4.1.2 컨테이너 조회 kubectl get pod STATUS 상태 Pending : 쿠버네티스 마스터에 생성 명령은 전달되었지만 아직 실행되지 않은 상태 ContainerCreating : 특정 노드에 스케줄링되어 컨테이너를 생성 중인 단계 Running : Pod 가 정상적으로 실행되고 있는 상태 Completed: 계속 실행되고 있는 프로세스가 아닌 한번 실행하고 완료되는 배치 작업 p..
3.1 k3s 설치가 쉽고 가벼워서 선택 3.2 MobaXterm putty 대신 사용 아주 좋음 3.2.2 마스터 노드 설치 sudo apt update sudo apt install -y docker.io nfs-common dnsutils curl #k3s 마스터 설치 curl -sfL | INSTALL_K3S_EXEC="\\ --disable traefik \\ --disable metrics-server \\ --node-name master --docker" \\ INSTALL_K3S_VERSION="v1.18.6+k3s1" sh -s - # 마스터 통신을 위한 설정 mkdir ~/.kube sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config sudo cho..