Toby's Study Blog
article thumbnail
ConfigMap, Secret
kubernetes 2023. 8. 10. 16:41

두 오브젝트를 사용해야 하는 상황 개발환경에 A라는 서비스가 있고 이 서비스에는 일반접근과 보안접근을 지원하고 있다. 개발 환경에서는 보안접근을 해제할 수 있는 옵션이 있다. 보안접근을 한다면 접근 유저와 키를 세팅할 수도 있다. 사용환경으로 배포를 해야 한다면 다시 보안접속으로 설정을 해야하고 유저와 키값도 바꿔주어야 한다. 이 값들은 컨테이너 안에 있는 서비스 이미지에 들어있는 값이여서 이 내용을 바꾼다는 건 개발환경과 사용환경의 컨테이너 이미지를 각각 관리해야 겠다는 의미이다. 보통 환경에 따라 변하는 값들은 외부에서 결정을 할 수 있게 한다. 그걸 도와주기 위한게 이 두 오브젝트이다. 내가 분리해야되는 일반적인 상수들을 모아 ConfigMap을 만들고 Key와 같이 보안적인 관리가 필요한 것을 모..

article thumbnail
DemonSet, Job, CronJob
kubernetes 2023. 8. 10. 16:39

1.DemonSet Node들이 있고 각각의 노드에 자원이 다르게 남아있는 상황에서 이전의 ReplicaSet의 경우 스케쥴러를 통하여 파드 배치를 하였다. 자원 상태에 상관 없이 모든 노드에 파드가 하나씩 생긴다는 특징이 있다. 이래야 하는 경우가 있다. (예 : Prometheus를 활용한 성능수집, fluentd를 활용한 로그수집을 통한 문제파악 clusterFs를 활용해 해당 자원을 가지고 네트워크 파일 시스템 구축 쿠버네티스 또한 네트워킹 관리를 하기 위해 각각의 노드에 프록시 역할을 하는 파드를 생성할떄 씀 2.Job, CronJob Pod를 만들때 직접, ReplicaSet을 통해, Job을 통해서 만드는 방법들이 있다. Pod들이 Node1에서 돌아갈때 Node1이 다운이 되었을때 컨트롤러..

article thumbnail
Deployment
kubernetes 2023. 8. 10. 16:37

현재 한 서비스가 운영중인데 이 서비스를 업데이트 하여야 되어 제 배포를 하여야 할때 도움을 주는 컨트롤러 1. ReCreate Deployment를 만들면 v1의 파드들이 만들어지는데 이 방식으로 업그레이드를 하면 파드들을 삭제시킨다. (서비스에 대한 중단 발생) v2에 대한 파드 2개를 만들어준다 2. Rolling Update 업그레이드를 실행 시 v2의 파드를 우선 하나 만들어줌 (자원사용량 증가) 하나씩 지우고 하나씩 늘리고 하는 방식이며 무중단이 되지 않는 장점이 있음 3. Blue/Green Controller을 만들어서 파드가 생성이 되면 파드에는 라벨이 있기 떄문에 서비스에 있는 샐랙터와 연결이 된다. 이렇게 운영이 되고 있는 상태에서 v2 버전에 대한 파드를 가지는 컨트롤러를 하나 더 ..

article thumbnail
Pod-Lifecycle
kubernetes 2023. 8. 10. 16:36

Status 하위 내용들 Phase : 파드의 전체 상태를 대표하는 속성 Conditions : 파드가 생성되면서 실행하는 단계와 상태를 알려줌 Containers 안 State : 각각의 컨테이너를 대표하는 상태 파드의 최초상태 : Pending initContainer : 본 컨테이너가 기동되기 전에 초기화 시켜야 하는 내용이 있을 경우 그 내용을 담는 컨테이너 만약 볼륨이나 보안세팅을 위해 사전 설정을 해야하는 경우 넣어 성공적으로 끝났거나 설정을 하지 않았을 경우 initialized : True 실패시 False 자원에 따라 스케쥴링 이 완료되면 PodScheduled : True 이 동안 Container 상태는 waiting Reason : Container Creating 만약 기동중에 문..

article thumbnail
Namespace, ResourceQuota, LimitRange
kubernetes 2023. 8. 10. 16:33

이 오브젝트를 왜 써야하나? Kubernetes Cluster라고 하여 전체 사용할 수 있는 자원이 있다. (일반적으로 메모리나 cpu) 클러스터 안에는 여러 namespace를 만들 수 있고 또 namespace 안에 여러 파드를 만들 수 있다. 각 파드는 필요한 자원을 클러스터 자원을 공유하여 사용 하는데 만약 한 namepace 안에 있는 파드가 클러스터 안에 있는 모든 자원을 모두 사용하면 다른 파드 입장에서는 더이상 쓸 자원이 없어 문제가 발생한다.. 이런 문제를 해결하기 위해 ResourceQuota 를 namespace 마다 달면 namespace마다 최대 한계를 설정할 수 있다. 그러하여 한계를 넘을 수 없어 다른 namespace에 있는 파드들에 영향을 끼치지 않게 된다. 한 파드가 자원..

article thumbnail
Service
kubernetes 2023. 8. 10. 16:31

1.ClusterIP 자신의 클러스터 Ip를 가지고 있다. 이 서비스를 파드에 연결시켜 놓으면 서비스의 ip를 통해서도 파드에 접근이 가능하다. pod에도 ip가 있는데 왜 서비스를 쓰는지? pod는 시스템 장애로 인해 죽을 수 있고 그러면 제 생성되고 변하게 되어 ip에 대한 신뢰성이 떨어짐 2.NodePort 쿠버네티스 cluster 에 연결되어 있는 모든 노드에게 포트가 할당이 되어 외부로 부터 어느 노드던 그 ip에 포트로 접속하면 서비스에 연결됨 서비스는 기본역할인 자신에게 연결되어 있는 파드의 트래픽을 전달 파드가 있는 노드에만 포트가 할당되는 것이 아닌 모든 노드에 포트가 만들어진 다는 것이 특징. 1번 노드의 ip로 접근을 하더라도 서비스는 2번 노드에 있는 파드에 트래픽을 전달 할 수 있..

article thumbnail
Controller
kubernetes 2023. 8. 10. 16:29

Controller 란? 서비스를 관리하고 운영하는데 도움을 준다. 1. Auto Healing Node위의 파드가 다운되거나 노드가 다운되면 인지 후 파드를 다른 노드에 새로 만들어 준다. 2. Auto Scaling 파드의 리소스가 리미트 상태가 되었을때 파드를 하나 더 만들어 부하를 분산시켜 파드가 죽지 않게 해줌 3. Software Update 여러 파드들을 한번에 쉽게 업그레이드 할 수 있고 문제가 생기면 롤백을 해준다. 4. Job 일시적인 작업을 해야할 경우 컨트롤러가 필요한 순간에만 파드를 만들어 이행하고 삭제한다. 그 순간에만 자원이 사용되고 작업 후 반환되 효율적이다. 1.Template 컨트롤러와 파드는 서비스와 파드처럼 라벨과 샐렉터로 연결이 된다. 컨트롤러를 만들때 templat..

article thumbnail
Volume
kubernetes 2023. 8. 10. 16:26

1. emptyDir 컨테이너들 끼리 데이터를 공유하기 위해 볼륨을 사용 최초 볼륨이 생성될 때 항상 볼륨이 비어있어 ****emptyDir 이라고 명칭이 된다. 컨테이너 1 - 웹 역할 하는 서버 컨테이너 2. 백앤드단 처리해주는 서버 웹서버로 받은 어떤 특정 파일을 마운트가 된 볼륨에 저장 백엔드단 컨테이너 역시 볼륨을 마운트 해 놓으면 두서버가 볼륨을 자신의 로컬에 있는 파일처럼 사용하기 떄문에 두서버가 서로 파일을 주고 받을 필요없이 편하게 사용할 수 있다. 일시적인 사용목적에 의한 데이터를 넣어야함 2.hostPath 한 node의 path를 볼륨으로써 사용 Path를 각각의 파트들이 마운트해서 죽어도 데이터가 사라지지 않는다. (But 재생성될때 다른 노드에 파드가 재생성 될 경우 마운트가 안..

검색 태그