일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- vue
- Jenkins
- 젠킨스
- hive
- config
- Docker
- Kafka
- java
- 클러스터
- 자동
- fastcampus
- gradle
- login
- 설정
- Cluster
- SpringBoot
- 레디스
- 자바
- aws
- redash
- Mac
- spring
- 예제
- EMR
- Zeppelin
- 로그인
- Redis
- 간단
- 머신러닝
- ec2
- Today
- Total
목록ETC (83)
코알못
Maven, Tomcat, IntelliJ 설정 및 활용법1. Maven package와 install의 차이공통점두 명령어 모두 소스 코드를 컴파일하고 JAR 파일을 생성한다.차이점mvn package : 프로젝트를 빌드하고, 타겟 디렉토리에 .jar 또는 .war 파일을 생성한다.mvn install : package 단계까지 수행한 후, 생성된 JAR/WAR 파일을 로컬 저장소(~/.m2/repository)에 저장한다.2. Maven과 Gradle의 로컬 저장소 경로Maven: ~/.m2/repositoryGradle: ~/.gradle/cachesMaven과 Gradle은 의존성을 다운로드할 때, 먼저 로컬 저장소에서 찾고, 없을 경우 원격 저장소에서 가져온다.3. Tomcat을 여러 개 띄우는..
오류 pyspark.errors.exceptions.captured.AnalysisException: [UNSUPPORTED_SUBQUERY_EXPRESSION_CATEGORY.MUST_AGGREGATE_CORRELATED_SCALAR_SUBQUERY] Unsupported subquery expression: Correlated scalar subqueries must be aggregated to return at most one row.; 서브쿼리에 행이 1개 이상 반환될수 있는 쿼리라 아래와 같이 수정 - 이전 from pyspark.sql import SparkSession import dateutil.tz as tz from datetime import timedelta,datetime fro..

Ingress 는 API 이며 웹기반 서비스를 외부에서 접속 할 수 있도록 하며, 로드밸런싱 기능, ssl 인증서 처리, virtual host(한서버에 여러 도메인 사용) 해주는 기능을 가지고 있다. Ingress의 동작 방식을 보자! ingress 를 클라이언트가 호출하면 routing 규칙에 따라 서비스를 호출 하고 서비스에서는 파드를 호출하게 된다. 서비스가 만약 여러개 라면 Ingress 컨트롤러에 path 형태로 rules을 정의하여 여러 서비스를 목적에 맞게 호출 할 수 있으며 예를 들어 path 가 http://corin.com/A 이면 A서비스로 가고, http://corin.com/B 라면 B 서비스로 호출 하도록 하도록 할 수 있다. 추가로 http가 아닌 ssl 적용하여 https로..

Headless 서비스는 ClusterIP 설정 없이 서비스를 사용하는것으로 IP 필요 없이 Pod의 DNS(core dns에 저장) 호출가능하도록 한다. # headless-svc.yaml apiVersion: v1 kind: Service metadata: name: headless-svc spec: type: ClusterIP clusterIP: None selector: app: webui ports: - protocol: TCP port: 80 targetPort: 80 생성한다. $ kubectl create -f headless-svc.yaml service/headless-svc created 서비스를 확인 하면 Cluster IP가 할당 되지 않았다. $ kubectl get svc NA..

동일한 기능을 구현하는 파드들을 하나의 진입점으로 접근 가능하도록 하는것이 서비스이다! 서비스는 4가지 타입이 있다. 타입 내용 ClusterIP(default) 클러스터 내부에서만 사용가능한 IP 할당 받아 파드 통신 하는 서비스 NodePort ClusterIP 기능 + 각 노드에 특정 포트로 통신 가능한 서비스 만약 노드에 IP가 외부에서 접속 가능하다면 Port 를 통해 외부 통신이 가능하다. LoadBalancer 클러스터 외부에서 사용 가능한 IP 할당 받아 파드 통신 하는 서비스 외부 사용 가능한 IP는 로드밸런서 IP로 클라우드에 로드 밸런서를 자동으로 만들어져야 하여 클라우드 사용시에만 사용 가능 ExternalName 클러스터 내부에서 외부 호출시 서비스 이름으로 통신 가능하도록 하는 ..

쿠버네티스는 Running 을 유지 하려는 동작 방식을 가지고 있어 Pod 가 정상 종료 되더라도 계속적으로 재 실행 된다. 이를 위해 나온것이 Job Controller 이다! Job Controller를 이용하면 Batch 처리하는 Pod를 만들어 잡이 정상 종료되면 완료 상태가 되고 비정상 종료시 재 실행 되도록 할 수 있다. 아래는 Job 을 생성하는 yaml 형식이며 template도 기존 controller 와 동일하게 담는다. 여기서 resartPolicy가 Naver인데 이는 비정상 종료일시 계속적으로 파드를 다시 생성한다는 의미이다. # job.yaml apiVersion: batch/v1 kind: Job metadata: name: centos-job spec: # completion..

Pod의 상태를 유지해주는 컨트롤러이다. 우리가 이전시간에 배운 ReplicationController 를 보면 replicas 를 3개로 설정하여 create 하면 pod 가 3개 생성된다. 여기서 파드 하나를 제거하면 파드가 재 생성이 되는데 해당 파드에 연결된 볼륨이 삭제 되고, 파드의 이름도 다른 해시 코드가 붙어 다른 이름으로 생성된다. StatefulSet 은 이와 다르게 Pod 이름, 볼륨이 유지 되는 성격을 가지고 있다! serviceName 필드 지정이 필요하며 아직 Service에 대해 배우지 않았으니 우선 지정이 필요하다는것만 알아두자! # sf-nginx.yaml apiVersion: v1 kind: StatefulSet metadata: name: sf-nginx spec: rep..

DaemonSet 컨트롤러는 노드당 Pod가 한개씩 실행 되도록 보장하는것으로 이는 어디다 쓸까? 노드당 하나씩 실행해야하는 로그 수집기, 모니터링 에이전트 프로그램 실행시 적용하게 된다! DaemonSet의 경우 ReplicaSet 과 동일한 형식으로 작성하고 노드당 1개씩 띄워 지므로 replicas만 정의 하지 않는다. 우선 노드 추가시 daemonSet에 의해 pod 가 생성 되는지 실습을 위해 노드 하나를 제거 하고 시작한다 우선 노드 확인후 $ kunectl get nodes NAME STATUS ROLES AGE VERSION node1 Ready control-plane 4m39s v1.27.2 node2 Ready 42s v1.27.2 node3 Ready 20s v1.27.2 노드 명을..