클라우드 엔지니어/클라우드 캠프과정 62

쿠버네티스 컨트롤러 ( ReplicaSet , Deployment )

Controller 쿠버네티스에서 컨트롤러는 클러스터 의 상태를 관찰 한 다음, 필요한 경우에 생성 또는 변경을 요청 각 컨트롤러는 현재 클러스터 상태를 의도한 상태에 가깝게 제어 말 그대로 파드를 제어하는 제어자 1) 컨트롤러의 기능 (1) Auto Healing 컨트롤러에서 지정한 수의 파드를 유지하는 기능 특정 노드에서 파드가 다운되거나 특정 노드 자체가 다운되면 다운 된 노드를 다른 곳에서 실 (2) Software Update v1의 파드들이 실행되고 있을 때 새로운 버전의 파드가 배포되면 이전 버전으 파드들을 새로운 버전의 파드로 변경 버전을 다시 되돌리는 것도 가능 (3) Job 한 번만 수행되어야 하는 작업이 있을 때 파드를 생성해서 작업을 수행 후 파드를 삭제 반복작업으로도 가능 (4) ..

쿠버네티스 서비스 실습 3티어 추가실습

#응용문제 서버 설정파일이 파드가 실행될때 넘어올수 있게 하라. ##### WAS 쪽 도커파일###### FROM tomcat:9.0 RUN rm -rf /usr/local/tomcat/conf/server.xml ADD ./server.xml /usr/local/tomcat/conf/server.xml ADD ./connent.sh /usr/local/tomcat/connent.sh ADD ./mysql-connector-java-8.0.19.jar /usr/local/tomcat/lib/mysql-connector-java-8.0.19.jar EXPOSE 8080 EXPOSE 8009 ENV TYPE=0.0.0.0 CMD /usr/local/tomcat/connent.sh $TYPE && catali..

쿠버네티스 서비스 실습 3티어 아키텍쳐

드디어 돌아왔다 3티어 아키텍쳐... 실습 쿠버네티스 클러스터 내에서 3계층 아키텍쳐 구성 1. mysql 이미지를 이용해서 DB생성 2. was 서버는 tomcat:9.0 3. web 서버는 httpd:2.4 4. 각서버는 이중화 안함 모두 node1에 폴더를 구성하였다 mysql /3tir/mysql web /3tir/web was /3tir/was mysql.yml #mysql 시크릿 파일생성 apiVersion: v1 kind: Secret metadata: name: mysql-sec data: MYSQL_ROOT_PASSWORD: cXdlcjEyMzQ= #qwer1234 를 base64 인코딩한값 --- #PV생성 (mysql) apiVersion: v1 kind: PersistentVolum..

쿠버네티스 - 서비스(Kubernetes Service)

Service 파드는 일시적으로 만들어지기도 하고 삭제되기도 하면서 IP가 바뀌기도한다. 컨테이너에 올라간 서비스를 이용하는 사용자들은 이러한 변화를 바로 알아차릴 수 없기 때문에 쿠버네티스에서는 서비스를 이용해서 사용자들에게 서비스를 제공한다. 1) 서비스의 종류 (1) Cluster IP 타입을 지정하지 않으면 기본으로 설정되며, 클러스터 내부의 파드에서 서비스의 이름으로 접근할 수 있다. 실습 apiVersion: v1 kind: Pod metadata: name: pod-1 labels: app: pod spec: containers: - name: container image: yoskr/yos_node:0.1 ports: - containerPort: 8000 apiVersion: v1 kin..

쿠버네티스 - 네임스페이스(Kubernetes Namespace)

Namespace 1) Namespace란? 쿠버네티스에서, 네임스페이스 는 단일 클러스터 내에서의 리소스 그룹 격리 메커니즘을 제공 리소스의 이름은 네임스페이스 내에서 유일해야 하며, 네임스페이스 간에서 유일할 필요는 없다. 네임스페이스는 여러 개의 팀이나, 프로젝트에 걸쳐서 많은 사용자가 있는 환경에서 사용하도록 만들어졌다. 사용자가 거의 없거나, 수 십명 정도가 되는 경우에는 네임스페이스를 전혀 고려할 필요가 없다. 예를들면 실제 운용중인 서버를 관리하기 위한 네임스페이스와 개발용 네임스페이스 테스트용 네임스페이스를 분리하여 운영할 수 있다. 네임스페이스로 구분한다. #네임스페이스로 구분하는 파드 #install iputils-ping apiVersion: v1 kind: Namespace meta..

쿠버네티스 - 컨피그맵(Kubernetes ConfigMap)

ConfigMap 1) ConfigMap이란? 파드를 생성하면서 컨테이너에 입력해줘야하는 설정값이 있는 경우가 있다. 이 때 같은 이미지를 사용하더라도 설정에 따라서 애플리케이션이 다르게 동작할 수 있는데 이 때마다 이미지를 만들면 효율적이지 못하다. 이럴 땐 환경변수를 이용해서 파드를 생성하면서 설정값을 입력해줄 수 있다. 또한 환경변수를 사용하여 전달할 수도 있지만 설정이 여러가지가 있다고 하면 파드의 설정과 함께 작성하기에 복잡해질 수 있다. 이 때 파드의 yml과 설정 내용의 yml을 분리하기 위해 사용 파드생성시 특정 컨피그맵만 불러와서 적용되게 함. 컨피그맵 생성 #설정파일의 이름은 cm-dev apiVersion: v1 kind: ConfigMap metadata: name: cm-dev d..

쿠버네티스 실습환경구축(minikube windows10)

설정환경 1. 파워쉘에서 실행 New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing 2. 파워쉘 관리자권한에서 실행 $oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine) if ($oldPath.Split(';') -inotconta..

쿠버네티스 실습환경구축(minikube mac M1)

쿠버네티스 연습용 맥버전 셋팅이다 도커와 brew를 미리 설치하기 바랍니다. brew install minikube curl -Lo minikube https://github.com/kubernetes/minikube/releases/download/v1.25.1/minikube-darwin-arm64 \\n && chmod +x minikube\n sudo install minikube /usr/local/bin/minikube minikube version minikube start --driver=docker minikube delete minikube start --kubernetes-version=v1.22.5 minikube dashboard 종료시 명령어입력 minikube stop 종료되면..

쿠버네티스(Kubernetes Volume)

05. Volume 0) Volume란? 컨테이너가 사용할 가상의 디스크 컨테이너 내의 디스크에 있는 파일은 임시적이며(휘발성) 컨테이너에서 실행될 때 애플리케이션에 적지 않은 몇 가지 문제가 발생 첫번째, 컨테이너가 삭제 또는 다시 실행될 때 파일이 사라짐 두번째, 파드 내의 컨테이너 간의 파일 공유 방법 이를 해결하기 위한 것이 바로 볼륨 1) Volume의 종류 (1) emptyDir 일시적인 데이터를 저장하는 데 사용되는 간단한 빈 디렉터리 파드가 생성될 때 생성되고 파드가 삭제될 때 사라지는 임시 볼륨 파드 내의 컨테이너가 죽었다고 하더라도 emptyDir은 남아있음 (2) hostPath 노드의 파일 시스템을 파드의 디렉터리로 마운트하여 사용 즉, 파드의 컨테이너에서 저장한 파일이 노드의 특정..

쿠버네티스(Kubernetes labels QoS)

[2] 레이블 적용 pod에는 레이블을 지정할수 있다. 레이블 단위로 파드들을 묶어서 서비스를 등록하거 이것저것할수 있다. 예제 레이블 type : web인 녀석만 서비스로 묶어보자 apiVersion: v1 kind: Service metadata: name: svc2 spec: selector: type: web ports: - port: 8000 [3] 노드 스케줄러 Pod 생성 apiVersion: v1 kind: Pod metadata: name: pod-3 spec: nodeSelector: kubernetes.io/hostname: 노드이름 containers: - name: container image: 이미지이름 apiVersion: v1 kind: Pod metadata: name: h..

728x90
반응형