⭐ Kubernetes & EKS (140) 썸네일형 리스트형 수동 스케줄링 (원하는 노드에 배치) # # 수동 스케줄링 - 수동으로 pod를 원하는 node에 수동으로 배치하기 vim http-go.yaml apiVersion: v1 kind: Pod metadata: name: http-go spec: containers: - name: http-go image: busybox nodeName: work1 kubectl create -f http-go.yaml * 만약 error: unable to recognize "http-go.yaml": no matches for kind "Pod" in version "apps/v1" 에러가 발생한다면 yaml 파일의 상단의 버전정보를 apiVersion: apps/v1 > apiVersion: v1 변경하여 주면 된다. # 실행된 pod 확인하기 kubect.. Static pod (스태틱 pod)에 대해서 알아보자 # 스태틱 포드 - 자동으로 실행하는 포드 - 기본 경로 : /etc/kubernetes/manifests/ - 해당 경로에 파일을 배치해 놓으면 알아서 실행한다. # 포드생성 cd /etc/kubernetes/manifests/ vim http-go.yaml apiVersion: apps/v1 kind: Pod metadata: name: http-go spec: containers: - name: http-go image: busybox kubelet에 의해 실행이 된다. kubectl create -f http-go.yaml - kubectl create -f http-go.yaml 이 명령어를 실행하지 않아도 pod가 실행이 된것을 확인 할 수 있다. kubectl get pod -n kube-s.. 노드마다 포드를 하나씩 배치하는 방법 # 데몬셋, 노드마다 포드를 하나씩 배치하는 방법 - 백그라운드에서 실행되는 프로세스를 데몬셋 이라고 한다. - 노드에 설치되어 데이터를 제공하기 위해 설치 - 쿠버네티스 용어 사전 : 데몬셋 - 데몬셋(DaemonSet)은 파드 복제본을 클러스터 노드 집합에서 동작하게 한다. (백그라운드에서 실행한다는 의미? 노드 아래의 백그라운드에서 실행되는 프로세스 인거 같다.) 일반적으로 모든 노드에서 실행돼야 하는 로그 수집기 및 모니터링 에이전트 등의 시스템 데몬을 배포하기 위해서 사용된다. # 연습문제 쿠버네티스 공식사이트 > 데몬셋 > kind: vim http-go-ds.yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: http-go spec: sele.. 네임스페이스별 리소스 총량 제한 방법 # 네임스페이스별 리소스 총량 제한 방법 쿠버네티스 공식시아티 검색 > Quotas for a Namespace > 리소스 쿼타 소스코드 적용 # 네임스페이스 생성과 적용 kubectl create namespace quota-mem-cpu-example kubectl apply -f https://k8s.io/examples/admin/resource/quota-mem-cpu.yaml --namespace=quota-mem-cpu-example # 생성된 네임스페이스 확인하기 kubectl get pod -n quota-mem-cpu-example # 리소스 쿼타 정보 확인하기 kubectl describe resourcequotas -n quota-mem-cpu-example # 리소스 쿼타 테스트 .. 쿠버네티스 예제를 활용한 애플리케이션 개발 (2) # 자동 스케일링 기능 구현 - 이전 사용한 리소스 삭제 kubectl delete all --all -n wordpress kubectl delete pvc -n wordpress wp-pv-claim kubectl delete pvc -n wordpress mysql-pv-claim # resource limits 설정하기 쿠버네티스 공식사이트 > resource limits > 리소스 제한 코드 확인 vim wordpress-deployment.yaml apiVersion: v1 kind: Service metadata: name: wordpress namespace: wordpress labels: app: wordpress spec: ports: - port: 80 selector: app: w.. 쿠버네티스 예제를 활용한 애플리케이션 개발 (1) # 워드프레스 mysql 쿠버네티스 배포 cat 접속 엔드포인트/wp-login.php http://34.64.197.131/wp-login.php - 서비스 및 인그레스를 통해서 엔드포인트로 접근이 가능하다. # 스케일링 하기 kubectl scale deployment wordpress --replicas=3 kubectl get pod - 워드프레스를 설치한다. - 오류를 확인할때 : kubectl describe pod [pod이름] # pod 을 스케일 아웃을 설정했을때 스케일 아웃이 안된다면 GCP가 지원을 하지 않기 때문이다. - 수동으로 스케일 아웃을 수행하는 방법에 대해 알아보자. # node 를 수동으로 지정해줘야 정상적인 스케일 아웃이 된다. # 노드를 수동으로 지정하여 워드 프레스와.. 시스템 리소스 허용과 제한 설정 # 시스템 리소스 요구사항 설정 # 쿠버네티스 사이트 에서 소스 검색하기 > resources kubectl run nginx --image=nginx --port=80 --dry-run -o yaml > nginx-deploy.yaml vim nginx-deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: run: nginx name: nginx spec: replicas: 3 selector: matchLabels: run: nginx strategy: {} template: metadata: creationTimestamp: null labels: run: nginx spec: contain.. init 컨테이너 실행하기 # Init 컨테이너 - 초기화를 실행해주는 컨에티너 - 주 컨테이너가 실행되기 전에 미리 실행되어 초기화를 해주는 컨테이너 # 쿠버네티스 공식 사이트에서 Init Containers 검색 : kind: 검색하여 소스코드 찾기 apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp-container image: busybox:1.28 command: ['sh', '-c', 'echo The app is running! && sleep 3600'] initContainers: - name: init-myservice image: busybox:1.28 command: ['sh', .. 이전 1 ··· 9 10 11 12 13 14 15 ··· 18 다음