공부합시다!/Kubernetes
-
Kubernetes (K8S): Object - 2.5. ReplicaSet공부합시다!/Kubernetes 2022. 7. 26. 21:12
K8S에서 POD는 Down 될 수 있는 Resource로 간주됩니다. 수많은 POD중에서 한두개의 POD Down은 그닥 큰 문제가 되지 않습니다. 하지만 K8S의 메니페스트는 항상 올바른 상태를 유지하기 위해서 동작합니다. 오늘은 POD의 Replicaset에 대해서 포스팅 합니다. 1. Nginx ReplicaSet 생성 메니페스트 파일 1.1. vi rep.yml apiVersion: apps/v1 kind: ReplicaSet metadata: name: test-rep labels: app: test-replicas spec: replicas: 2 selector: matchLabels: app: test-replicas template: metadata: name: nginx-rep labe..
-
kubernetes 명령어공부합시다!/Kubernetes 2022. 7. 21. 13:22
Kubernets 제어 명령어는 kubectl 입니다. 1. kubectl 명령어 형식 kubectl 커맨드 옵션 2. kubectl 주요 커맨 Command 동작 비고 create Resource 생성 edit Resource 편집 delete Resource 삭제 get Resource 상태 출력 set Resource 값 설정 apply Resource 변경 사항 반영 describe 상세 정보 확인 diff "현재 상태"와 "바람직한 상태" 차이 확인 expose 여러 POD에 부하는 분산하는 Service Object 생성 scale Replica 수 변경 auotscale 자동 Scaling 적용 rollout Rollout 수행 exec Container에서 명령 실행 run Containe..
-
Kubernetes (K8S): Secret공부합시다!/Kubernetes 2022. 6. 23. 06:33
오늘은 환경 변수 중 보안이 필요할 때 사용하는 secret에 대해서 알아보겠습니다. 2022.06.22 - [공부합시다!/Kubernetes] - K8S : ConfigMap 결합하면 wordpress + mysql 구성이 됩니다. secrte 역시 configmap과 동일하게 환경 변수를 저장하고 pod를 실행할 때 환경변수를 제공해 줍니다. 차이점은 비밀번호, token, db정보등의 민감한 정보를 저장하는 용도로 사용됩니다. node의 파일에 저장되는 것이 아니라 메모리에 저장되기 때문이 접근이 어려우며 과다한 secret의 사용은 메모리 사용량 증가로 overhead가 발생함으로 적절하게 사용해야 합니다. mysql을 configmap과 secret 을 이용해서 pod을 생성해 보겠습다. 1. ..
-
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용 : in..