일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- aws
- 로그인
- SpringBoot
- 자동
- hive
- Kafka
- EMR
- vue
- spring
- java
- 젠킨스
- Zeppelin
- gradle
- 머신러닝
- config
- Docker
- 예제
- fastcampus
- 레디스
- redash
- Mac
- Redis
- login
- 간단
- 자바
- 클러스터
- Cluster
- ec2
- Jenkins
- 설정
- Today
- Total
목록ETC (82)
코알못
이번 시간에는 Contoller 종류중 하나인 ReplicaSet에 대해 알아보자! 저번 시간에 알아본 ReplicationController 보다 풍부한 selector를 가지고 있다. 예시를 통해 살펴보자! 이전 ReplicationController의 경우 아래와 같이 정의 하고 label 2개 모두 해당 될 시 관리 대상에 포함된다. spec: replicas: 3 selector: app: webui version: "2.1" ReplicaSet 으로 동일하게 구현 하면 matchLabels를 통해 구현하면 된다. spec: replicas: 3 selector: matchLabels: app: webrui version: "2.1" matchLabels으로만 구현도 가능하나 matchExpre..
컨트롤러는 Pod의 갯수를 보장해주는 역할을 하며 아래와 같이 여러개의 컨트롤러가 있다. ReplicationController ReplicaSet Deployment DaemonSet StatefulSet Job CronJob 이번 시간에는 ReplicationController를 먼저 알아보도록 하자! ReplicationControllers는 지정한 label selector를 가진 Pod 가 요청한 replica 수 보다 작다면 정의한 template 를 보고 파드를 생성하는 Controller 로 아래와 같이 정의한다. # rc-nginx.yaml apiVersion: v1 kind: ReplicationController metadata: labels: run: rc-nginx name: rc..
하나의 노드에 여러 컨테이너 파드가 뜰 수 있으며 리소스 제한을 두지 않는다면 하나의 파드가 리소스를 다써버려 다른 파드에 장애가 나게 된다. 우리는 이를 방지 하기 위해 Resource Requests를 사용하여 리소스 제한을 두도록 한다! 그리고 너무 타이트한 파드 배치가 되지 않도록 어느정도 리소스의 여유가 있는 노드에 할당하고 싶다면 Resource Requests 기능을 이용하면 된다! 리소스 조정 항목 내용 Resource Requests 파드를 실행하기 위한 최소 리소스양을 요청 Resource Limits 파드가 사용할 수 있는 최대 리소스양을 제한 단위는 아래를 참고한다. MB 1000KB 1Mib 1024Kib 1core 1000mc 이제 nginx 컨테이너 파드를 요청하는데 reque..
pod 안에 init container, main container 를 같이 두고 반드시 실행 되어야 하는 컨테이너는 init 컨테이너로 지정하여 init 컨테이너가 정상일때 main container가 실행 되도록 해야할때 사용한다. init 컨테이너는 아래와 같이 spec.initContainers 에 컨테이너를 지정한다. apiVersion: v1 kind: Pod metadata: name: myapp labels: app: myapp spec: containers: - name: main-app image: initContainers: - name: init-app image: 쿠버네티스 홈페이지에 예시가 있어 해당 예시로 실습을 진행해보도록 하자! https://kubernetes.io/doc..
쿠버네티스는 self-healing 기능이 있으며 Liveness Probe를 이용하면 해당 기능을 사용할 수 있다. 아래와 같이 spec.containers 부분에 정의하며 apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: my-nginx image: nginx licenessProbe: httpGet: path: / port: 80 위에 httpGet 방식 포함하여 세가지가 있어 서비스에 맞게 사용하면 된다. 매커니즘 형식 어떻게 확인 httpGet httpGet: path: / port: 80 지정된 port, path를 주기적으로 호출하여 200이 아닌 값이 나오면 컨테이너 다시 시작 tcpSocket tcpS..
우리는 쿠버네티스에서 클러스터 관리 할때 yaml 파일, 또한 yaml 파일에서 Object 정의시 apiVersion 을 정의한다. 하지만 저자의 경우 왜 이렇게 쓰는지에 대해 알아본적이 없으며 알고 사용하는것과 모르고 사용하는것은 다르기에 간단하게 알아 보도록 하자! 우선 yaml은 사람이 쉽게 읽을 수 있는 데이터 직렬화 양식이다. 아래와 같은 구조를 가지고 있으며 $ vi nginx.yaml apiVersion: v1 kind: Pod metadata: labels: run: my-nginx name: my-nginx spec: containers: - image: nginx name: my-nginx :wq! 작성하는 방법은 아래와 같다. 구분 내용 상세 들여쓰기 스페이스바 Tab X 문법 Sc..
이번 시간에는 쿠버네티스를 이루고있는 컴포넌트에 대해 알아보자! 아래 글에 상세하게 정리 해두어 아래 글을 참고하면 되며 https://co-de.tistory.com/182 [kubernetes] 쿠버네티스란? 앞서 실습한 내용으로 도커를 이용하여 CD 구현하면 되지만 만약 배포 서버가 1000대라면..! 물론 구현할 수 있지만 편리하게 할 수 있는게 있다면! 그리고 운영 서버를 받고 사용해보니 많은 리소 co-de.tistory.com 위에 정리한거 이외에 Add-on(=애드온=보강프로그램)으로 마스터 노드에 coreDNS ,마스터노드&워커노드에 CNI 가 있다. 컴포넌트 설명 coreDNS 클러스터 DNS 기능 (사용하면서 알아보자) CNI(Container Network Interface) Pod..
kubectl 기본 사용방법을 배워 보도록 하자! 우선 kubectl 은 control plane 에게 원하는것을 요청할때 사용하는 도구이다. 약어를 입력하여 호출할수 있는데 아래와 같이 지원하는 약어를 확인 할 수 있으며 예를 들어 pods 라고 적어야하나 po 만 적어도 동작한다는 의미이다. root@master:~# kubectl api-resources pods po v1 true Pod .. run 은 파드를 생성하는 명령어로 nginx 파드를 생성해보자 root@master:~# kubectl run webserver --image=nginx:1.14 --port 80 pod/webserver created 파드가 생성중이며 기다리면서 상세적으로 어떤 동작을 하고 있는지 확인하기 위해 root..