공부합시다!/Kubernetes
-
Kubernetes (K8S): ConfigMap공부합시다!/Kubernetes 2022. 6. 22. 06:33
각기 다른 설정 파일을 갖는 Appcation or Pod를 K8S에서 배포하고 싶다면? 바로 그럴때 사용하는 것이 Configmap과 Secret 기능입니다.. Configmap은 통상적으로 보안을 필요로 하지 않는 경우에 사용을 하고 Secret는 보안이 필요한 password 등에 사용을 합니다. 만일 위의 기능을 사용하지 않는다면 App배포 후 변경사항을 모두 image에서 관리를 해야 하며, 보안에 중점을 둬야할 중용한 정보들은 App에서 관리를 할 수 없게됩니다. 적용하는 방법으로는 1). 정의해 놓은 값을 환경 변수로 Pod에 적용하는 방법과 2). 정의해 놓은 Pod디스크 볼륨으로 Mount 하는 방법이 있습니다. 오늘은 Configmap에 대해서 학습합니다. wordpress5.6 img..
-
Kubernetes (K8S): Object Config File(구성파일: yaml)공부합시다!/Kubernetes 2022. 6. 21. 06:32
최근 들어 Infra를 Code 형태로 관리하는 IaC(Infrastructure As Code)가 각광을 받고 있다. Infra를 Source 코드화 해서 사용을 하면 대량 배포 시 멱등성을 확보할 수 있고 배포 후 변경관리가 용이하다는 장점을 갖기 때문이다. K8S에서는 Object를 배포, 삭제, 변경하거나 Object의 정보확인 시 개별 명령어를 각각 입력할 필요없이 설정 파일을 명령으로 실행하면 대단히 편리하다. K8S 역시 명령어보다는 설정 파일의 형태로 관리하는 것을 적극 권장한다. https://github.com/kubernetes/examples/tree/master/guestbook/all-in-one 참조할 예제 파일들이 존재 1. Field 1.1. apiVersion 1.1.1...
-
Kubernetes (K8S): Object - 7. Node공부합시다!/Kubernetes 2022. 6. 16. 06:23
1. 정의 1.1. POD를 실행할 수 있는 물리적인 공간 1.2. 대부분 하나의 VM으로 구성되어 있음 or 물리적인 Host 1.3. Node상의 Service 1.3.1. Container Runtime 1.3.2. Kubelet 1.3.3. Kube-Proxy 1.4. Cluster는 node의 집합 2. Node 상태 2.1. Ready 2.1.1. Node의 상태가 양호하여 POD를 수용할 준비가 되어 있는 경우 True 2.1.2. Node의 상태가 불량하여 POD를 수용하지 못할 경우 False 2.1.3. Node Controller가 마지막 Node-monitor-grace-period (기본값 40, 기간동안 Node 응답 수신 불량) Unkonwn 2.2. NotReady 2.2.1..
-
Kubernetes (K8S): Object - 6-2. Storage: hostpath공부합시다!/Kubernetes 2022. 6. 15. 06:22
K8S에서 제공하는 Storage 유형은 volume, Persistent Volume, Projected Volume, Storage Class, 임시 볼륨 등으로 다양하며 스냅샷 및 복제가 가능하며 스토리지 용량을 제한하는 등의 기능을 수행한다. 오늘은 가장 많이 사용하는 volume과 persistent volume에 대해서 학습합니다. 1. Volume의 필요성 1.1. Container간의 Data 공유 1.2. Contraier의 문제가 발생 시 Container는 재시작 또는 다시 생성하면 되지만 Data 보존은? 이런 문제를 해결할 수 있는 것이 K8S의 Volume 추상화 2. Storage 유형 2.1. volume 2.2. PV(Persistent Volume)와 PVC(Persist..
-
Kubernetes (K8S): Object - 5. Ingress공부합시다!/Kubernetes 2022. 6. 14. 06:21
Cluster 내의 서비스에 대한 외부 접근을 관리하는 API 오브젝트이며, 일반적으로 HTTP를 관리함. Ingress 는 LoadBalancer, SSL Terminated, Named 기반의 가상 호스팅을 제공할 수 있다. 1. 정의 1.1. Cluster 외부에서 Cluster 내부 서비스로 HTTP와 HTTPS 경로 노출. 1.2. 구성요소 1.2.1. Ingress Resource 1.2.2. Ingress Controller 1.3. 단일 POD 노출의 경우 Kubectl expose 와 비슷한 효과 1.4. 복잡한 상황시 Ingress가 더 많은 기능 제공 1.5. Ingress Controller 종류 1.5.1. GCE용 : ingress-gce 1.5.2. NGINX용 : ingres..
-
Kubernetes (K8S): Object - 4. Service공부합시다!/Kubernetes 2022. 6. 13. 21:09
POD를 외부에 노출하는 서비스에 대해서 살펴봅니다. Service는 POD에게 고유한 IP 주소와 파드 집합에 대한 단일 DNS 명을 부여하고, POD 간에 로드-밸런싱 가능케 함 1. 정의 2. Cluster IP : K8S로만 실행가능 3. NodePort : K8S로만 실행가능 4. LoadBalancer 5. ExternalName 순으로 진행합니다. 1. 정의 1.1. POD에 접근하는 정책 정의 1.2. POD간 통신이 가능하도록 EndPoint 생성 1.3. POD가 외부에서 접근 가능하도록 노출 2. Cluster IP : K8S로만 실행가능 2.1. Cluster 내부 IP에 노출 2.2. Cluster내에서만 서비스에 접근가능 2.3. Service Type의 기본값 2.4. 실습 2..
-
Kubernetes (K8S): Object - 3. Deployment공부합시다!/Kubernetes 2022. 6. 12. 16:34
POD : 여러 개의 컨테이너를 추상화해 하나의 애플리케이션으로 동작하도록 만드는 컨테이너 묶음. Replicaset : 일정한 갯수의 POD를 유지하는 Controller 1. 정의 1.1. POD와 Replicaset 에 대한 선언과 업데이트 제공하는 Controller 1.2. POD만으로 Service 운영시 복제 불가능 1.3. 안정적인 서비스를 위해서 복제 조절은 필수조건 1.4. POD의 복제를 비롯한 다양한 부분의 제어 가능 2. nginx Deployment 2.1. deploymemt 구성파일 2.1.1. # nginxdep.yml 작성 2.1.2. 적용 # kubectl apply -f nginxdep.yml 2.1.3. POD 확인 # kubectl get pod 2.1.4. rep..
-
Kubernetes (K8S): Object - 1. NameSpace공부합시다!/Kubernetes 2022. 6. 10. 16:44
Namespace는 하나의 물리적인 공간에 존재하는 K8S를 논리적인 작업환경으로 분리 서로 다른 Namespace 에는 영향을 미치지 않는다. 팀별 서로 다른 K8S 작업환경이 필요하다면 Namespace로 분리한다. 명령어로 할 수 있는 작업은 모두 yaml 파일로 작성할 수 있어야 합니다. 그 반대도 1. Namespace 확인 및 생성, 삭제 1.1. 생성 # kubectl create namespace NAME 1.2. 확인 # kubectl get namespace 1.3. 삭제 kubectl delete namespace NAME 1.4. 실습 1.4.1. 1team, 2team Namespace 생성 및 확인 1.4.2. 1team, 2team Namespace 삭제 및 확인 2. conf..