본문 바로가기
반응형

전체 글116

[k8s]Kubernetes - Ingress 웹페이지 구현 Kubernetes Ingress 동작 Ingress 이용한 웹서비스 운영 Ingress Controller 설치 namespace 생성 nodePort 설정 Ingress Controller 파드 생성 Default namespace 치환: kubectl config Ingress Controller의 namespace로 치환 웹 서비스 동작 기존에 Main Page, Pay Page 이미지 생성 Ingress 동작 Reference 따배쿠28강 2023. 3. 14.
[k8s]Kubernetes - Ingress Kubernetes Ingress 쿠버네티스의 API 중 하나로 HTTP나 HTTPS를 통해 클러스터 내부의 서비스를 외부로 노출 여러 서비스를 통합하여 외부 노출 기능 Serivce에 외부 URL을 제공 트래픽을 로드밸런싱 SSL 인증서 처리 Virtual hosting을 지정 Kubernetes Ingress 동작방식 Main page, Login, Order 등 각 서비스들을 통합하여 외부에 연결해주는 관리자 역할 수행 ingress에 서비스를 묶은 룰 등록하여 각 서비스에 접속 Reference 따배쿠27강 2023. 3. 14.
[k8s]Kubernetes - Headless Service/Kube Proxy Headless Service ClusterIP가 없는 서비스로 단일 진입점이 필요 없을 때 사용 Pod들의 endpoint를 묶어주지만 IP는 x Service와 연결된 Pod의 endpoint로 DNS 레코드가 생성됨 Pod들의 endpoint에 DNS resolving Service로 지원 Pod의 DNS 주소: pod-ip-addr.namespace.pod.cluster.local Example clusterIP가 None으로 설정되면 Headless Service create -f를 통해 Headless Service 실행 kubectl create -f headless-nginx.yaml get, describe를 통해 Headless Service확인 kubectl get service ku.. 2023. 3. 9.
[k8s]Kubernetes - Service 4가지 종류 ClusterIP selector의 label가 동일한 파드들을 그룹으로 묶어 단일 진입점 (Virtual IP)을 생성 클러스터 내부에서만 사용 가능 type 생략 시 default 값으로 10.96.0.0/12 범위에서 할당 됨 type을 고정시키지 않는 이유: 충돌을 예방하기 위해 Example create -f를 통해 ClusterIP Service 실행 kubectl create -f clusterip-nginx.yaml get, describe를 통해 ClusterIP Service확인 kubectl get service kubectl describe svc clusterip-service curl 이용 ClusterIP 접속 curl 10.100.100.100 delete를 통해 Cluste.. 2023. 3. 9.
[k8s]Kubernetes - Service Kubernetes Service 개념 동일한 서비스를 제공하는 Pod 그룹의 단일 진입점을 제공 하나의 pod에 작업이 집중되면 다른 pod는 놀고 있어 성능 저하 모든 pod에 균등하게 작업을 분산해야 함 같은 레이블을 갖는 Pod의 ip를 하나의 Virtual IP로 묶음 Service Definition Deployment Definition으로 Pod 생성 Service Definition으로 같은 레이블의 Pod에 작업 균등 분배 ClusterIP 설정 port는 ClusterIP의 포트 target port는 Pod의 포트 Service Type 4가지 타입 지원 ClusterIP(default) Pod 그룹의 단일 진입점(Virtual IP) 생성 NodePort ClusterIP가 생성된.. 2023. 3. 9.
[k8s]Kubernetes - 멀티마스터 쿠버네티스 클러스터 쿠버네티스 클러스터를 직접 구성하는 도구 kubeadm 쿠버네티스에서 공식 제공하는 클러스터 생성/관리 도구 kubespray 쿠버네티스 클러스터를 배포하는 오픈소스 프로젝트 다양한 형식으로 쿠버네티스 클러스터 구성 가능 온프레미스에서 상용 서비스 클러스터 운영 시 유용 쿠버네티스 클러스터 구성 control plane(master node) 워커 노드들의 상태를 관리하고 제어 Highly Available(HA) cluster 운영 API는 loadbalancer를 통해 워커 노드에 노출 최소 3개의 중첩된 control plane을 구성(5, 7개의 master nodes) worker node 도커 플랫폼을 통해 컨테이너를 동작하며 실제 서비스 제공 Multi-master(HA) 클러스터 구성 fl.. 2023. 3. 7.
[k8s]Kubernetes - CronJob CronJob CronJob안에 Job 컨트롤 기능 포함 사용자가 원하는 시간에 Job 실행 예약 지원 Job 컨트롤러로 실행할 애플리케이션 파드를 주기적으로 반복해서 실행 Linux의 cronjob의 스케줄링 기능을 Job Controller에 추가한 API 반복해서 실행하는 Job을 운영해야 할 때 사용 Data Backup Send email Cleaning tasks log file 정리 garbagage 제거 CronJob을 통해 작업을 예약하려면 CronJob 포맷에 맞게 작업 예약시간을 걸어줘야 함 CronJob Schedule: " 0 3 1 * * " Minutes (from 0 to 59) Hours (from 0 to 23) Day of the month (from 1 to 31) M.. 2023. 3. 4.
[k8s]Kubernetes - Job Controller Job Controller Kubernetes는 pod를 running 중인 상태로 유지 동작 후 5초뒤 종료하는 pod를 생성하면 동작과 종료를 계속 반복함 Batch 처리하는 Pod는 작업이 완료되면 종료됨 백업을 하는 경우, 백업이 완료되면 종료되어야 함 Batch 처리에 적합한 컨트롤러로 Pod의 성공적인 완료를 보장 비정상 종료 시 다시 실행 정상 종료 시 완료 완료 시 pod가 삭제되는 것은 아님 Job Controller Definition Image가 배치 작업이어야 함 set up garbage data clear log 주기적 forwarding restartPolicy Never Pod restart OnFailure 컨테이너 restart Job example 변수 completio.. 2023. 3. 3.
[k8s]Kubernetes - StatefulSet StatefulSet Pod의 상태를 유지해주는 컨트롤러 Pod 이름 Pod는 생성될 때 random하게 hash값을 받아 생성 됨 Controller에 의해 Pod가 삭제되고 생성될 때 Pod 이름 보장 x StatefulSet은 Pod의 이름을 보존 Pod의 볼륨(스토리지) StatefulSet Definition Service 이름과 Pod이름을 연결시켜서 코어DNS 도메인 이름으로 사용 StatefulSet volume example create -f를 통해 StatefulSet 실행 kubectl create -f statefulset-exam.yaml get을 통해 StatefulSet, Pod 확인 kubectl get statefulset kubectl get pods scale을 통해 s.. 2023. 3. 3.
[k8s]Kubernetes - DaemonSet DaemonSet 전체 노드에서 Pod가 한 개씩 실행되도록 보장 워커 노드 추가 되면 Pod 한 개 추가 워커 노드 삭제 되면 Pod 한 개 삭제 Pod에 문제가 생기면 Pod 삭제 후 새로 생성 로그 수입기, 모니터링 에이전트와 같은 프로그램 실행 시 적용 DaemonSet Definition DaemonSet example create -f를 통해 DaemonSet 실행 kubectl create -f daemonset-exam.yaml get을 통해 DaemonSet, Pod 확인 kubectl get daemonset kubectl get pods delete를 통해 DaemonSet 삭제 kubectl delete daemonsets.apps daemonset-nginx DaemonSet Ro.. 2023. 3. 3.
[k8s]Kubernetes - Deployment & Rolling Update Deployment ReplicaSet을 제어해주는 부모 역할 ReplicaSet을 컨트롤해서 Pod수를 조절 Deployment의 목적 Rolling Update & Rolling Back Rolling Update란? 서비스의 중단 없이 버전을 업데이트 하는 것 pod 인스턴스를 점진적으로 새로운것으로 업데이트 Deployment definition Rolling Update 기능을 제외하면 ReplicaSet과 Deployment 똑같음 Deployment example create -f를 통해 Deployment 실행 kubectl create -f deploy-nginx.yaml get을 통해 Deployment, ReplicaSet, Pod 확인 kubectl get deployments ku.. 2023. 2. 23.
[k8s]Kubernetes - ReplicaSet ReplicaSet ReplicationController와 같은 역할을 하는 컨트롤러 성격 = pod의 개수 보장 ReplicationController보다 풍부한 selector matchLabels 연산자 까지는 ReplicationController와 동일 key:value matchExpressions 연산자 In: key와 values를 지정하여 key, value가 일치하는 Pod만 연결 NotIn: key는 일치하고 value는 일치하지 않는 Pod에 연결 Exists: key에 맞는 label의 Pod를 연결 DoesNotExist: key와 다른 label의 Pod를 연결 ReplicationController/ReplicaSet Definition ReplicaSet Selector .. 2023. 2. 23.
반응형