클라우드 (419) 썸네일형 리스트형 쿠버네티스 Kubernetes 스토리지 볼륨 4 / hostPath 볼륨 # hostPath 볼륨 - 파드가 동작하는 쿼네티스 클러스터의 노드(호스트)의 로컬 파일시스템의 파일 및 디렉터리를 파드가 사용 할 수 있는 볼륨으로 제공 - 호스트의 디렉토리를 지정해줄 수 있음(데이터를 채워서 또는 빈 디렉토리여도 가능함) - 네트워크 스토리지가 아니라서 다른 호스트의 파드에게 제공할 수 없음, 각 노드에 각각의 볼륨이 생성 - 쿠버네티스 클러스터 노드에 로그 파일을 저장하거나 CA인증서 및 토큰을 파드에 제공하기 위한 용도로 사용 # hostPath 볼륨생성 # 볼륨 리소스 정의 volumes: - name: hostPath: type: path: # .volumes.hostPath.type: 볼륨의 종류 지정 DirectoryOrCreate: 지정된 경로의 디렉토리 사용 (없으면.. 쿠버네티스 Kubernetes 스토리지 볼륨 3 / 초기화 컨테이너 (initcontainer) # 초기화 컨테이너 - gitRepo 볼륨은 더 이상 사용되지 않는다, 대신 InitContainer 를 이용하여 Git 저장소가 있는 컨테이너를 프로비전 한다. - 초기화 컨테이너(InitContainer )에 EmptyDir 볼륨을 마운트 하고, git 명령을 사용해서 Git 저장소를 복제하고, 파드 컨테이너 에서 EmptyDir 볼륨을 마운트한다. - 컨테이너 실행 전 추가작업이 필요할 때(파드 생성할 때 딱 한번, 애플리케이션은 꼭 종료되는 애플리케이션) - git 저장소를 제공 - 파드의 애플리케이션 컨테이너가 실행되기 전에 , 여러가지 작업을 수행 하도록 설정, 성공하기 전까지는 에플리케이션 컨테이너는 실행되지 않는다. # 초기화 컨테이너를 사용하여 Git 저장소를 제공 더보기 # ldh-po.. 쿠버네티스 Kubernetes 스토리지 볼륨 2 / emptyDir 볼륨 # emptyDir 볼륨 -아무 데이터도 없는 빈 디렉토리를 제공해 주는 볼륨이다. 파드가 생성하는 데이터를 저장 할 수 있으며, 동일한 파드 내의 컨테이너 간에 네이터를 공유할 때 유용하게 사용 할 수 있다. 또한 빅데이터와 같은 큰 데이터 셋트를 처리하기 위한 임시 저장소로도 사용이 가능하다. # emptyDir 볼륨 생성 더보기 # emptyDir 볼륨을 사용하는 레플리카셋 정의 # ldh-rs-emptydir.yml apiVersion: apps/v1 kind: ReplicaSet metadata: name: ldh-rs-fortune spec: replicas: 1 selector: matchLabels: app: ldh-rs-fortune template: metadata: labels: ap.. 쿠버네티스 Kubernetes 스토리지 볼륨 1 https://kubernetes.io/ko/docs/concepts/storage/ 스토리지 클러스터의 파드에 장기(long-term) 및 임시 스토리지를 모두 제공하는 방법 kubernetes.io # 스토리지 스토리지를 설정해두지 않으면 DB에 있던 데이터가 모두 사라진다. PersistentVolume 및 RersistentVolumeClaim 같은 별도의 리소스를 사용하여 볼륨을 분리할 수 있다. Pod나 컨트롤러가 제거되고 다시 생성되더라도 기존 볼륨을 사용 할 수 있게 된다. 대부분 네트워크 관련 볼륨이다. # 볼륨 종류 - 쿠버네티스에서 지원하는 볼륨의 종류 1) emptyDir : 임시 데이터를 저장하는 빈 볼륨 2) gitRepo : 사용자가 지정한 git 리포지토리 내용을 채움 3) .. xxxxxxxxxxxx vagrant@k-control:~$ cat ldh-svc-extname.yml apiVersion: v1 kind: Service metadata: name: gooogle spec: type: ExternalName externalName: www.google.com vagrant@k-control:~$ kubectl create -f ldh-svc-extname.yml service/gooogle created vagrant@k-control:~$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE gooogle ExternalName www.google.com 12s kubernetes ClusterIP 10.96.0.1 443/TCP 11.. 로드 밸런서 vagrant@k-control:~$ kubectl create -f ldh-cj.yml cronjob.batch/ldh-cj created vagrant@k-control:~$ kubectl get cronjobs.batch NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE ldh-cj */2 * * * * False 1 60s 5m41s vagrant@k-control:~$ kubectl get pods --watch NAME READY STATUS RESTARTS AGE h 0/1 ImagePullBackOff 0 17m ldh-cj-1625807880-9jmkk 0/1 Completed 0 5m24s ldh-cj-1625808000-rpmhh 0/1 Complet.. eeeeeeeeeeeeeeeee 192.168.0.0/16 모든 파드를 생성했을때 ip /24 네트워크 호스트네트워크 254개 /16 네트워크 부여 256*256-2 =65534개 쿠버네티스를 설계할 때 파드 갯수 고려 파드에 아이피가 부여가 되는데 사용자가 직접 부여가능 spec에서 충돌이 나면 안된다 파드 아이피 조사를 해야겠다 ->현실적으로 불가능 ip 자동셋팅 권장 예측할 수 없다 예측해서 셋팅할수 없다 ----> 괴롭,, 동적환경에서 예측이 안됨 그래서 서비스라는 리소스를 만든다! 기본적으로 프록시의 기능이 있다 중간에서 릴레이 역할을 한다 리버스프록시 a ------------->프록시(서버측에 프록시있음)------>b 클라이언트 프록시만 바라보고 통신 --->프록시가 릴레이 해준다(연결)---> 서버 로드밸런서 포워드프록.. 쿠버네티스 Kubernetes 크론잡 (CronJob) batch 같은 그룹이더라도 다른 버전을 사용할 수 있다 동시실행정책 끝나는 시간이 정해져있다 60ㅊ 간격으로 80초동안 실행? 동시에동시 두개의 작업이 실행 allow 기본값 실행 forbid replace 기존에있던걸 취소 백ㅇㅓㅂ작업이며 ㄴ 단일백업이 보장 ->forbid vagrant@k-control:~$ kubectl create -f ldh-cj.yml error: error parsing ldh-cj.yml: error converting YAML to JSON: yaml: line 19: found unexpected end of stream vagrant@k-control:~$ vi ldh-cj.yml vagrant@k-control:~$ kubectl create -f ldh-cj.y.. 이전 1 ··· 15 16 17 18 19 20 21 ··· 53 다음