클라우드 교육/kubernetes
-
쿠버네티스 모니터링클라우드 교육/kubernetes 2023. 1. 3. 14:22
k8s, helm 먼저설치해야 작업이 가능하다. 아래처럼 치면 helm에 엄청 많다. helm search repo prometheus 아래처럼 입력하면 설치와 배포가 바로 가능하다. helm install prometheus-community/kube-prometheus-stack --generate-name 배포가 되면 엄청 많이 뜨는데, loadbalance를 설정해줘야한다. 아래 serivce를 긁어둔다( kube-prometheus-stack-(****)-grafana ) kubectl edit 아래처럼 변경해준다. 그리고 password를 알아내기위해 아래처럼 치면 현재 서비스된 grafana가 나온다 kubectl get services | grep grafana 윗부분을 복사해서 kubec..
-
서비스를 외부로 노출하기 ( wordpress - mysql )클라우드 교육/kubernetes 2023. 1. 2. 17:53
시크릿 생성 pv ( mysql, wordpress ) 생성 pvc ( mysql, wordpress ) 생성 mysql ,wordpress deployment 생성 mysql ,wordpress service 생성 순으로 진행된다. namespace는 test라는것을 만들어서 진행했다. 먼저 시크릿 password를 설정하기전에 자신의 password암호화를 한다. 아래처럼 입력하면 원하는 password의 암호화된 것을 얻을 수 있는데, echo -n | base64 저걸로 아래에 넣어준다. #secret-mysql.yaml apiVersion: v1 kind: Secret metadata: name: mysql-root type: Opaque data: password: 그리고 pv를 생성한다. #..
-
테인트와 톨러레이션클라우드 교육/kubernetes 2023. 1. 2. 11:46
테인트 Taint 노드가 pod 셋을 스케줄링하지않도록 노드에 설정하는것 설정하게 되면, 더이상 노드가 생성되지않는다 톨러레이션 Toleration 테인트가 설정된 노드에 pod를 올리기 위해 설정하는 값, (pod의 spce에 지정해야함) 고로 테인트 노드에 특정 pod를 올리려면 톨러레이션을 설정해야한다. 이 원리로 두가지의 기능으로 특정 노드를 특수한 역할만 하도록 설정할 때 사용한다. 테인트 노드로 설정하는방법 kubectl taint nodes node1.labs.local taintskey=value1:NoSchedule ※ 테인트를 지우는 방법 kubectl taint nodes node1.labs.local taintskey=value1:NoSchedule- 확인해보면 taintskey가 ..
-
쿠버네티스 컨피그맵 / 시크릿클라우드 교육/kubernetes 2022. 12. 29. 10:39
목차 컨피그맵 시크릿 컨피그맵 ( ConfigMap ) 서비스의 설정정보, 구성파일, 포트 등 고유한 정보들을 파드에서 참조하게 하는 파일을 만들어 파드들을 직접 컨트롤 할 수 있게하는 API 오브젝트이다 . 간단히 말해 파드가 생성될때 기본값을 변경하는것이다. 기본적으로 pod를 생산하게 되면 매번 yaml 파일에 많은 환경변수를 입력해야한다. Configmap을 이용하면 생산할 틀을 어느정도 마련해두면 pod를 생산할때 yaml 파일의 크기가 작아질것이다. base configmap을 만들고 생산된 configmap만들지 않고도 env 항목으로 값을 전달할 수 있다. mysql yaml 만들었다. k exec pod/mysql-78bb947d54-nzvwg -it -- /bin/bash 이번엔 con..
-
서비스 리소스클라우드 교육/kubernetes 2022. 12. 28. 12:18
서비스 API 카테고리 서비스 디스커버리와 클러스터 외부에서도 접속이 가능하게 엔드포인트를 제공하는 리소스 목차 ClusterIP NodePort ExternalName Headless Service ExternalIP LoadBalancer None-Selector 인그레스 클러스터 IP 외부에서 Pod로 통신하기 위해 지정된 ip로 생성이 가능하고, 여러 Pod를 묶어서 로드 밸런싱도 가능하며, 고유한 DNS 이름을 가질 수 있다. 서비스를 하기 위해 ClusterIP라는 개념을 사용하는데, 사용자가 접속할때, ClusterIP를 거치며, ClusterIP는 포트로 사용자의 요청을 확인해 지정한 Pod로 연결해준다. 아래는 클러스터 IP의 기본 코드인데, apiVersion: v1 kind: Serv..
-
워커노드 리소스 2클라우드 교육/kubernetes 2022. 12. 27. 17:42
목차 데몬셋 스테이트풀셋 잡 크론잡 데몬셋 모든 노드에서 하나의 Pod만 실행되게 하는 형태로 관리하는 컨트롤러이다. 모든 노드에서 로그를 수집할때나, 클러스터 스토리지 / 노드모니터링 데몬을 실행할때 사용한다. 아래 yaml 파일저장 후 실행 스테이트풀셋 복제된 파드에 개별적인 스토리지 제공 스테이트풀셋을 설명하기전에, 기본적인 스토리지는 애플리케이션들이 공유하는 형식이다. 기본적으로 Stateless와 Statefull 을 비교해보자. Stateless ( 디플로이먼트가 이상태 ) 위의 그림을 보면, 노드가 망가져도 새로생성되지만, 같이 공유하는 하나의 볼륨을 사용해 애플리케이션을 관리한다. 이는 단일 애플리케이션을 구동할때는 효과적이지만, 여러가지 애플리케이션을 관리할때는 효과적이지 않다. Stat..
-
워크로드 리소스클라우드 교육/kubernetes 2022. 12. 27. 11:43
워크로드 (Workload) API 카테고리 이 리소스는 클러스터 위에서 컨테이너를 가동하기 위해 사용한다. 목차 파드 ( Pod ) 레플리케이션 컨트롤러 ( Replication Controller ) 레플리카셋 ( ReplicaSet ) 디플로이먼트 ( Deployment ) 데몬셋 ( DaemonSet ) 스테이트풀셋 ( StatefulSet ) 잡 ( Job ) 크론잡 ( CronJob ) 레플리케이션 컨트롤러 RC 지정된 숫자만큼 파드의 갯수를 관리해주는 역할을 한다. 기능이 추가되며 이름이 레플리카셋으로 변경되었다. 고로 레플리카셋을 사용하도록 하자. 레플리카셋 RS RC의 새로운 버전으로 크게 차이는 없다. 둘다 파드의 실행을 항상 안정적으로 유지시키기 위해 사용한다. 하지만 레플리카셋만 사..
-
쿠버네티스 볼륨클라우드 교육/kubernetes 2022. 12. 26. 15:24
파드 외부에서 공유하게 사용할 수 있다. 여러개의 디스크를 하나의 디스크로 합쳐서 사용할 수도 있고, 기본적인 볼륨을 보려면 describe로 확인하면 된다 볼륨의 종류는 임시볼륨 ( emptyDir ) 파드가 생성되는 동시에 생성되는 볼륨이다. ( 파드와 라이프 사이클이 같다 ) 생성될시에 아무것도 없기때문에 emptydir 이다. 영구볼륨 ( hostpath ) 컨테이너 라이프사이클과 상관없이 영구적으로 유지되는 볼륨이다. 노드의 로컬 디스크 경로를 사용하기때문에 여러 pod들이 공유해서 사용한다. 차이점으로 보면 어디에서 생성되는지 보면 편하다. PersistentVolume ( PV ) 와 PersistentVolumeClaim ( PVC ) PV도 정적과 동적 프로비저닝이 있다. 반환 Retai..