본문 바로가기

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

(47)
쿠버네티스 Kubernetes 애플리케이션 사용자화 5/ 컨피그 맵(Config Map)을 이용한 사용자화 2 https://daaa0555.tistory.com/312 쿠버네티스 Kubernetes 애플리케이션 사용자화 4 / 컨피그 맵(Config Map)을 이용한 사용자화 1 # 컨피그 맵을 이용한 사용자화 컨피그 맵 (Config Map) : 간단한 정, 변수, 설정 파일의 값을 키/값 쌍 형태로 저장하고 사용할 수 있는 쿠버네티스 저장소 설정값을 환경 변수나 명령의 인수로 제공 daaa0555.tistory.com # ConfigMap 생성 및 확인 파드에게 제공할 포트 정보와 메세지 정보를 담은 파일을 생성 # ConfigMap 디렉터리에 message 파일 생성 # 해당 파일을 이용하여 ConfigMap 생성 디렉터리를 지정하면 하나의 컨피그 맵에 여러키를 지정할 수 있다 # myapp-message..
쿠버네티스 Kubernetes 애플리케이션 사용자화 4 / 컨피그 맵(Config Map)을 이용한 사용자화 1 # 컨피그 맵을 이용한 사용자화 컨피그 맵 (Config Map) : 간단한 정, 변수, 설정 파일의 값을 키/값 쌍 형태로 저장하고 사용할 수 있는 쿠버네티스 저장소 설정값을 환경 변수나 명령의 인수로 제공, 설정파일(ex> nginx.conf) 및 간단한 파일을 저장했다가 볼륨으로 제공 -> 데이터를 저장하는 용도로 사용하지 않고 읽는 용도로 사용(일반적으로 설정파일) ​ # Config Map 정의 및 확인 # Config Map 생성 방법 1) kubectl create configmap 명령 이용 2) YAML 형식의 오브젝트를 작성하여 생성 # 명령형 커멘드를 사용하여 정의 # Config Map 생성 사용 법 1) --from-file 옵션 - key/value가 있는 파일 지정 - 키를 별..
쿠버네티스 Kubernetes 애플리케이션 사용자화 3 / 환경 변수를 이용한 사용자화 # 환경 변수를 이용한 사용자화 도커에서의 컨테이너 환경 변수 선언 --env 옵션에 환경 변수를 지정 (일반적으로 환경 변수명은 대문자) # 쿠버네티스 정의에서 환경변수 설정 쿠버네티스에서 환경변수를 정의하려면 env 필드 정의 더보기 # ldh-pod-env.yml apiVersion: v1 kind: Pod metadata: nameL ldh-pod-env spec: containers: - image: ghcr.io/c1t1t1d0s7/go-myweb name: ldh env: - name: MESSAGE value: "Customized Hello World!" ports: - containerPort: 8080 protocol: TCP # .spec.containers.env : 환경 변수 정..
쿠버네티스 Kubernetes 애플리케이션 사용자화 2 / 이미지 사용자화 # 이미지 사용자화 도커 이미지 빌드 시 사용하는 Docerfile 에서 이미지를 컨테이너로 실행했을 때 실행할 수 있는 어플리케이션을 정의하는 속성 ENTRYPOINT / CMD # 쿠버네티스에서 인수 변경 도커 쿠버네티스 ENTRYPOINT command CMD args # 인수를 변경하여 서비스 포트를 변경하는 파드 오브젝트 포트를 8088로 변경 더보기 # ldh-pod-arg.yml apiVersion: v1 kind: Pod metadata: name: ldh-pod-arg spec: containers: - name: ldh image: ghcr.io/c1t1d0s7/go-myweb args: - port=8080 ports: - containerPort:8088 protocol: TCP #..
쿠버네티스 Kubernetes 애플리케이션 사용자화 1 # 컨테이너 애플리케이션 사용자화 # 이미지 사용자화 도커 이미지 작성 시 Dockerfile의 ENTEYPOINT 및 CMD 지시어를 지정한다 # 환경 변수 사용자화 쉘의 환경 변수를 전달해 사용자화 컨테이너의 설정 파일을 매번 변경하는것이 어렵기 때문에, 해당 서비스의 설정 파일을 환경 변수를 통해 사용자화 ex) Apache - httpd.conf / nginx - nginx.conf # 컨피그 맵을 이용한 사용자화 쿠버네티스 시스템의 컨피그 맵 리소스는 key/value 저장소를 제공 스토리지 혹은 어떤 text를 환경변수나 설정파일로 제공하여 어플리케이션을 사용자화 # 시크릿을 이용한 사용자화 컨피그맵과 같은 기능을 제공한다 (인코딩 차이) 패스워드나 암호화 키, 토큰등 민감한 정보를 저장하고,..
쿠버네티스 Kubernetes 스토리지 볼륨 7 / 정적 볼륨 프로비저닝 2 https://daaa0555.tistory.com/306 쿠버네티스 Kubernetes 스토리지 볼륨 6 / 정적 볼륨 프로비저닝 1 # 정적 볼륨 프로비저닝 - PV 및 PVC리소스를 직접 생성하고 사용하는 방식 # NFS 스토리지 구성 # NFS 서버 패키지 설치 # NFS 공유 디렉터리 설정 # NFS 내보내기 설정 # NFS 공유 디렉터리에 파드가 사 daaa0555.tistory.com # 레플리카셋 컨트롤러 생성 및 확인 -NFS PVC 볼륨을 사용할 레플리카셋 리소스 정의 파일 더보기 # ldh-rs-nfs.yml apiVersion: apps/v1 kind: ReplicaSet metadata: name: ldh-rs-nfs spec: replicas: 2 selector: matchLa..
쿠버네티스 Kubernetes 스토리지 볼륨 6 / 정적 볼륨 프로비저닝 1 # 정적 볼륨 프로비저닝 - PV 및 PVC리소스를 직접 생성하고 사용하는 방식 # NFS 스토리지 구성 # NFS 서버 패키지 설치 # NFS 공유 디렉터리 설정 # NFS 내보내기 설정 # NFS 공유 디렉터리에 파드가 사용 할 index.html 파일 생성 # NFS 공유 디렉터리에 적절한 권한 부여 # NFS 서버 서비스 재시작 # NFS 서버 서비스 상태 확인 더보기 vagrant@k-control:~$ sudo apt install -y nfs-kernerl-server vagrant@k-control:~$ sudo mkdir /nfs-volume - vagrant@k-control:~$ echo "/nfs-volume *(rw,sync,no_subtree_check)" | sudo tee /..
쿠버네티스 Kubernetes 스토리지 볼륨 5 / PersistenVolume(PV) 및 PersistentVolumeClaim(PVC) EmptyDir, hostPath 같은 경우는 스토리지에 대한 많은 지식이 필요하지 않다 하지만 네트워크 기반 스토리지의 경우 스토리지 자체의 지식이 많이 필요하다 또한 볼륨의 라이프사이클이 컨트롤러 및 파드의 생명주기가 같아 컨트롤러 및 파드가 삭제되면 볼륨도 같이 삭제된다 # ​PersistentVolume(PV), PersistentVolumeClaim(PVC) 컨트롤러 및 파드와 별개의 쿠버네티스 리소스이며, 파드의 생명주기와 별개로 작동 ​ # PV : 쿠버네티스 클러스터 외부 스토리와 연결 담당 리소스 # PVC : PV와 파드를 연결하기 위한 리소스 - 주로 관리자는 스토리지(PV), 개발자는 PVC로 많이 사용을 하고 있어 , 개발자는 스토리지 지식이 없어도 PVC를 작성해 사용할 PV를 ..