본문 바로가기

Docker/k8s

(5)
볼륨, 영구 볼륨, 영구 볼륨 클레임 볼륨 emptyDir hostPath downwardAPI projected nfs iscsi cephfs emptyDir 특징 pod 용 임시 디스크 영역 pod 종료 시 삭제 된다. host 의 임의 영역을 마운트 할 수 없음. 리소스 제한이 가능하며, 초과 사용 시 pod 가 축출(Evict) 된다. # emptyDir.sizeLimit: 128Mi tmpfs 로 할당 가능하다. 역시 초과 사용 시, OOM 이 발생하여 pod 가 정지 된다. # emptyDir.medium: Memory hostPath node 의 영역을 컨테이너에 마운트 한다. host 의 어떤 영역을 사용할 지 지정해야 한다. # Directory, DirectoryOrCreate, File, Socket, BlockDevic..
pod stuck [1. 개요] pod 생성 시, status 가 계속 ContainerCreating 인 경우 describe 로 pod 상태 확인 시, cni.0 ~~ ip 문제 인 경우 이런 상황에서 해결 방법? [2. 원인] CNI 플러그인으로 flannel 설치 시에도 문제가 되었던 부분이 있었는데, host 상에 ifconfig 로 네트워크 인터페이스에 할당 된 ip 주소 범위가 겹치는 경우 주로 발생했음 kubectl get services 에서 service/kubernetes 의 Cluster-ip : 10.96.0.1 일 때, --pod-network-cidr 및 kube-flannel.yml 에서 ip 주소 대역을 10.96.0.0/16 으로 명시한 경우 [3. 해결책] Docker 및 쿠버네티스 설치..
워크로드 API [1. 개요] 쿠버네티스에서 컨테이너 실행에 관련된 리소스 제공 사용자가 직접 사용하는 리소스 Pod => 가장 작은 실행 단위 ReplicaSet => Deployment => DaemonSet => ReplicaSet 의 변종 => 각 노드에 Pod 를 하나씩 배치 => 레플리카 수 지정이 불가능하다. => Pod 를 배치하고 싶지 않은 노드가 있는 경우 스케줄링에서 제외 가능 => nodeSelector, Anti-Affinity StatefulSet => ReplicaSet 의 변종 => Pod 명이 바뀌지 않는다. => 데이터를 영구적으로 저장하기 위한 구조로 되어 있다. => 영구 볼륨, 영구 볼륨 클레임 => 같은 데이터를 보유한 상태로 다른 노드에서 컨테이너가 다시 생성될 수 있다. Job..
쿠버네티스 종류 1. 단일 노드 쿠버네티스 (=로컬 쿠버네티스) 한대의 물리머신에 쿠버네티스 클러스터 구축 이중화가 보장되지 않으며, 사용할 수 없는 기능도 다수 존재 minikube, Docker desktop, kind Docker desktop 에서 설정에서 쿠버네티스를 활성화 할 수 있다. => wsl 접속 후, kubectl 로 바로 배포 가능. => 단일 노드이므로, 멀티 노드처럼 따로 설정이 복잡하진 않다. => 테스트 환경으로 사용하면 좋을 듯. 2. 멀티 노드 쿠버네티스 on premise 형태로 쿠버네티스 클러스터 구축 => on premise 란? aws 같은 클라우드 환경이 아닌, 머신을 직접 운영하는 환경 kubectl, kubeadm, kubelet 등을 이용하여 쿠버테스트 환경 구축 노드 내 ..
쿠버네티스 설치 과정 [1. 개요] 리눅스 서버에 쿠버네티스 설치 과정을 정리 Host OS: Ubuntu 20.04 vmware 이용 어느정도 설치 후, snapshot 으로 이미지 복제해서 사용 => 기존에 사용하던 이미지 파일이 존재하는 디렉터리를 통째로 복사해서 따로 저장 [2. 설치 개요] 전체 적인 과정은 ubuntu 나 centos 나 비슷하다. 각 노드 별, hostname 을 유니크하게 설정 => 멀티 노드 클러스터 구축 이후, 노드 구분을 위함. 쿠버네티스 repository 설정 => redhat 계열과 debian 계열이 좀 다름 docker 설치 => 최초 설치 시, cgroup driver 가 cgroupfs 이면, systemd 로 변경이 필요하다. => 버전은 18 버전 이상이면 됨(?). swa..