본문 바로가기

⭐ Kubernetes & EKS

(140)
컨테이너 환경변수 전달방법 # 컨테이너 환경 변수 전달 방법 - yaml 파일 활용 - 환경변수를 유연하게 관리하기 위해서는 Config Map이나 Secret을 활용한다. # 쿠버네티스 공식 사이트에서 검색하기 env > 검색 > Define Environment Variables for a Container - Kubernetes > 클릭 > 예제코드 복사 vim envar.yaml apiVersion: v1 kind: Pod metadata: name: envar-demo labels: purpose: demonstrate-envars spec: containers: - name: envar-demo-container image: gcr.io/google-samples/node-hello:1.0 env: - name: DEM..
우분투에 비주얼 스튜디오 , 쿠버네티스 설치 및 yaml 파일 작성과 적용 # 버추얼 박스에 비주얼 스튜디오 설치하기 kubectl get nodes - kubectl을 사용할 수 있는 환경에서 vs code를 설치하면 된다. - 나는 마스터 노드에서 kubectl을 사용하므로 마스터노드에 설치 하겠다. # vs 코드 설치 sudo snap install code --classic # vs 코드 실행 code 우분투 icon 검색에서 code 검색 > icon 클릭하여 실행 # VS를 활용한 Yaml 파일 작성과 적용 # 쿠버네티스 플러그인 설치 extention 아이콘 클릭 > kubenetes 검색 > 설치 - 설치가 완료되면 왼쪽 사용자탭에 항해사 아이콘이 생김 - 아이콘을 클릭하여 다양한 정보를 커맨드에서 명령어로 실행하지 않고, Gui 환경에서 확인이 가능하다. # V..
PV와 PVC의 개념 및 실습 # pv와 pvc에 대한 개념 - PersistentVolume(PV), PersistentVolumeClaim(PVC) - 인프라 세부 사항을 알지 못해도 클러스터의 스토리지를 사용할 수 있도록 제공해주는 리소스 # 개념도 # PV, PVC 실습 # 이전에 생성했던 gce-mongodb-pod.yaml 파일을 재사용 cp gce-mongodb-pod.yaml mongo-pv-pvc-pod.yaml vim mongo-pv-pvc-pod.yaml 쿠버네티스 공식사이트 > volumes > persistentVolumeClaim > kind: > 코드복사 > pvc도 동일하게 kind: 로 검색하여 복사 > volumes 도 검색해서 복사 yaml파일에 붙여넣기 apiVersion: v1 kind: Pod ..
nfs 네트워크 볼륨 설치 및 k8s와 nfs의 볼륨연결 # nfs 네트워크 볼륨 설치 (nfs : 네트워크 파일 시스템) - work2에서 실행 apt-get update apt install nfs-common nfs-kernel-server portmap mkdir /home/nfs chmod 777 /home/nfs - 어떤 디렉토리를 누구에게 제공할 것인가 등 권한을 부여하는 파일 : exports gedit /etc/exports - 해당 ip에 대해서 (권한을 할당 하겠다.) 라는 내용임 - /home/nfs 는 이전에 공유할 폴더를 생성한 경로임 /home/nfs 10.0.2.15(rw,sync,no_subtree_check) 10.0.2.5(rw,sync,no_subtree_check) 10.0.2.6(rw,sync,no_subtree_chec..
GCE 디스크를 활용한 네트워크 볼륨 연결 # GCE 디스크를 활용한 네트워크 볼륨 연결 - 구글클라우드 볼륨을 사용하기 kubectl get pod gcloud compute disks create --size=10GiB --zone=asia-northeast3-a mongodb - Compute Engine 에서 디스크에서도 확인이 가능하다. # 생성한 볼륨을 사용하기 - 쿠버네티스 공식 사이트 > 검색> gce > gecPersistentDisk > 예제 코드 복사 후 수정 apiVersion: v1 kind: Pod metadata: name: mongodb spec: containers: - image: mongo name: mongodb volumeMounts: - mountPath: /data/db name: mongodb volum..
hostpath 컨테이너와 노드간 데이터 공유 # hostpath 컨테이너와 노드간 데이터 공유 # work1과 work2에서 진행 sudo mkdir /var/htdocs sudo -i echo "work1" > /var/htdocs/index.html cat /var/htdocs/index.html - 동일한 방식으로 work2에도 데이터를 저장 gedit count-httpd.yaml apiVersion: v1 kind: Pod metadata: name: hostpath-http spec: containers: - image: httpd name: web-server volumeMounts: - name: html mountPath: /usr/local/apache2/htdocs readOnly: true ports: - containerPo..
쿠버네티스 스토리지 & EmptyDir # 쿠버네티스 스토리지- 임시볼륨: 컨테이너간 공유위해- 로컬볼륨: 노드간 공유위해# EmptyDir을 활용한 컨테이너 간 데이터 공유- 공유디렉토리 : 볼륨- 컨테이너별 디렉토리를 볼륨을 통해 공유디렉토리로 활용할 수있음- emptyDir 볼륨은 파드가 노드에 할당될 때 처음 생성되며, 해당 노드에서 파드가 실행되는 동안에만 존재한다. 이름에서 알 수 있듯이 emptyDir 볼륨은 처음에는 비어있다. 파드 내 모든 컨테이너는 emptyDir 볼륨에서 동일한 파일을 읽고 쓸 수 있지만, 해당 볼륨은 각각의 컨테이너에서 동일하거나 다른 경로에 마운트될 수 있다. 어떤 이유로든 노드에서 파드가 제거되면 emptyDir 의 데이터가 영구적으로 삭제된다.# EmptyDir 활용 실습# 관련 내용찾기쿠버네티스 공..
# 쿠버네티스 네트워크 - CoreDNS 서비스 및 서비스 DNS 연습문제 # CoreDNS 서비스 - 쿠버네티스에서는 서비스 이름이 도메인 이름이 된다. # 서비스 DNS 연습문제 # blue라는 네임스페이스 생성 kubectl create ns blue --dry-run=client -o yaml kubectl create ns blue --dry-run=client -o yaml > blue-jenkins-svc-deploy.yaml kubectl create ns blue # 디플로이먼트 생성하기 kubectl create deploy pod-jenkins --image=jenkins --port=8080 --dry-run=client -o yaml -n blue >> blue-jenkins-svc-deploy.yaml # 서비스 생성하기 kubectl expose de..