본문 바로가기
반응형

k8s17

[TIL] : 149 일일 배움을 위한 Today I Learned ! Spring Boot 멜론 차트 1~ 100순위를 MongoDB에 저장하는 프로젝트를 진행하고 있다. 아직 코드를 다 작성하지 못 해서 설명을 남기진 못 했으나 내일 안으로 완성해서 코드를 적어 올릴 예정이다. 강연 및 세미나 OKKY에서 주최하는 세미나에 참여했다. 이제는 거의 주기적으로 매 번 참여하는 것 같다. 개인적으로 최신 기술에 대한 정보나 내가 원하는 것에 대한 정보를 얻을 때 잡지를 많이 봤는데 요즘에는 영상이나 이런 세미나 참여 기회가 잦아지면서 질의응답이 실시간으로 가능한 매체를 추구하게 되었다. 2022.03.24 - [발전소/강연 및 세미나] - [강연 및 세미나] : 서비스 개발자로 커리어 전환하기 by 와이즐리컴퍼니 현철 CTO .. 2022. 3. 24.
[Kubernetes] : Configmap과 Secret 쿠버네티스 YAML 파일과 설정값을 분리할 수 있는 Configmap과 secret이라는 오브젝트가 있다. Configmap에서는 설정 값을 저장하고, Secret에서는 노출되면 안 되는 값을 저장한다. 이 두 개를 사용하면 애플리케이션과 설정값을 별도로 분리해 관리할 수 있는 장점이 생기게 된다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 24.
[Kubernetes] : 네임스페이스에 종속되는 쿠버네티스 오브젝트와 독립적인 오브젝트 네임스페이스를 사용하면 쿠버네티스 리소스 사용 목적에 따라 논리적 격리가 가능하지만 모든 리소스가 네임스페이스에 의해 구분되진 않는다. A 네임스페이스에서 포드를 만들면 A 네임스페이스에만 보인다. 이것을 오브젝트가 네임스페이스에 속한다고 하는데 이 반대로 속하지 않는 오브젝트도 있다. Nodes가 그 중 하나이다. Nodes는 쿠버네티스 클러스터에서 사용되는 저수준의 오브젝트이며, 네임스페이스에 의해 구분되지 않는다. kubectl api-resoucres --namespaced=false 네임스페이스에 속하지 않는 오브젝트의 종류는 위 명령어로 확인이 가능하다. 확인해 보면 Nodes는 물론이고 네임스페이스 자체도 네임스페이스에 종속되지 않는다는 것을 확인할 수 있다. 📖 ← [ 시작하세요! 도커/쿠.. 2022. 3. 24.
[Kubernetes] : 네임스페이스의 서비스에 접근하기 쿠버네티스 클러스터 내부에서는 같은 네임스페이스 내의 서비스에 접근할 때에는 서비스 이름으로만으로 접근할 수 있다. 다른 네임스페이스에 존재하는 서비스에는 서비스 이름만으로는 접근이 불가능하다. 다른 네임스페이스에 존재하는 서비스에 접근하는 방법은 다음과 같다. ..svc처럼 서비스 이름 뒤에 네임스페이스 이름을 붙이면 다른 네임스페이스의 서비스에도 접근이 가능하다. kubetcl delete namespace 이름 kubectl delete -f YAML파일명 두 명령어로 네임스페이스를 삭제할 수 있다. 네임스페이스를 삭제하면 모든 리소스도 같이 삭제된다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 24.
[Kubernetes] : 네임스페이스 사용하기 네임스페이스는 YAML 파일에 정의해 사용이 가능하다. apiCersion: v1 kind: Namespace metadata: name: production YAML 파일을 적어준다. kubectl apply -f production-namespace.yaml kubectl create namespace production 둘 중 하나의 명령어로 생성이 가능하다. kubectl get ns | grep production production이라는 네임스페이스가 정상 생성이 되었는지 체크한다. kubectl get pods --all-namespaces 모든 네임스페이스의 리소스를 확인할 수 있다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 24.
[Kubernetes] : 네임스페이스 기본 이해 네임스페이스를 간단하게 사용해 본다. 네임스페이스는 쿠버네티스에서 namespace 또는 ns라는 이름으로 사용할 수 있고 kubectl get namespaces 명령어로 확인이 가능하다. kubectl get namespaces kubectl get ns 둘 중 아무거나 사용해도 상관없다. 기본적으로 네임스페이스는 생성하지 않아도 3개가 존재한다. 각 논리적인 리소스 공간이라서 각 네임스페이스에는 포드, 레플리카셋, 서비스 같은 리소스가 따로 존재한다. kubectl get pods --namespace default default라는 이름의 네임스페이스에 생성된 포드를 확인해 본다. 이 default 네임스페이스는 쿠버네티스를 설치하면 자동으로 사용되도록 설정되어 있는 네임스페이스이다. —names.. 2022. 3. 23.
[Kubernetes] : 네임스페이스(Namespace) 언급. 도커, 도커 스웜 모드는 컨테이너를 논리적으로 구분하는 방법이 없었다. 용도에 따라 컨테이너와 그에 관련된 리소스를 구분해 관리할 수 있는 논리적 그룹이 있으면 좀 더 편할 것이다. 쿠버네티스에서 이런 일을 네임스페이스(Namespace)가 해준다. 네임스페이스는 포드, 레플리카셋, 디플로이먼트, 서비스와 같은 쿠버네티스 리소스들이 묶여 있는 하나의 가상 공간이나 그룹으로 이해하면 된다. 여러 개의 네임스페이스를 사용하면 마치 하나의 클러스터에서 여러 개의 가상 클러스터들을 동시에 사용하는 것 처럼 느낄 수 있다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 23.
[TIL] : 147 일일 배움을 위한 Today I Learned ! JPA 영속성 컨텍스트에 대해 코딩하며 공부하고 있다. 처음 접해보는 기술이라 한 번에 이해가 되지는 않는다. 추가로 책을 구매해서 살펴봐야 할 것 같다. 2022.03.22 - [Data Base/JPA] - [JPA] : JPA 영속성 컨텍스트(2) Kubernetes Service 종류마다 설정하는 법을 읽고 온프레미스 환경에서 LoadBalancer 타입의 서비스를 사용할 수 있다는 것을 캐치했다. 2022.03.22 - [Server & System/Kubernetes] - [Kubernetes] : 온프레미스 환경에서 LoadBalancer 타입의 서비스 사용 오류 노트 MongoDB를 외부접속하여 사용하려고 하다 오류가 생겨 기록했다. 202.. 2022. 3. 22.
[Kubernetes] : 온프레미스 환경에서 LoadBalancer 타입의 서비스 사용 LoadBalancer 타입의 서비스는 클라우드 플랫폼에서 사용되지만 필요에 따라 직접 보유하고 있는 온프레미스 서버에서도 LoadBalancer 타입을 사용할 수 있다. 쿠버네티스가 직접 제공하는 기능은 아니고 MetaILB라는 오픈소스 프로젝트를 사용하면 된다. 단, 유지보수가 지속적이지 않을 수 있으므로 유의해야 하고 공식 문서를 참고하면 된다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 22.
[TIL] : 146 일일 배움을 위한 Today I Learned ! Kubernetes 디플로이먼트 사용법에 대해 알아보고 Service 종류 중 자주 사용하는 것을 체크해 봤다. 2022.03.21 - [Server & System/Kubernetes] - [Kubernetes] : 디플로이먼트 사용하기 2022.03.21 - [Server & System/Kubernetes] - [Kubernetes] : 디플로이먼트를 사용하는 간단한 이유 2022.03.21 - [Server & System/Kubernetes] - [Kubernetes] : Service : 포드를 연결하고 외부에 노출하기 2022.03.21 - [Server & System/Kubernetes] - [Kubernetes] : Service 종류 .. 2022. 3. 21.
[Kubernetes] : Service 종류 포드에 접근할 수 있는 규칙을 정의하는 서비스 리소스를 생성해야 하는데 어떻게 접근할 것인지에 따라 종류가 여러 개로 세분화 된다. 자주 사용되는 서비스 타입은 아래와 같다. ClusterIP 타입 쿠버네티스 내부에서만 포드에 접근할 때 사용한다. 외부에 노출하지 않아 클러스터 내부에서 사용되는 포드에 적합하다. NodePort 타입 포드에 접근할 수 있는 포트를 클러스터의 모든 노드에 동일하게 개방해 외부에서 포드에 접근할 수 있다. 접근 가능한 포트는 랜덤이고 특정 포트로 접근하게 설정도 할 수 있다. LoadBalancer 타입 클라우드 플랫폼에서 제공하는 로드 밸런서를 동적으로 프로비저닝해 포드에 연결한다. 외부에서 포드에 접근할 수 있지만 AWS, GCP 등 클라우드 플랫폼에서만 사용이 가능하다.. 2022. 3. 21.
[Kubernetes] : Service : 포드를 연결하고 외부에 노출하기 디플로이먼트를 통해 생성된 포드에 접근하기 위해 kubectl describe 명령어로 포드의 내부 IP를 직접 확인해 포드로 직접 접근을 할 수 있었지만 문제가 있다. 먼저, 로컬 개발 환경이나 쿠버네티스 클러스터 내부에서만 사용할 수 있다는 점하고 영속적이지 않아 항상 변할 수 있따는 점이다. 때문에 여러 개의 디플로이먼트를 하나의 애플리케이션으로 연동하기 위해 서로를 발견(Discovery)할 수 있는 방법이 필요하다. YAML 팡리 중 containerPort 항목이 포드 애플리케이션이 사용할 내부 포트를 정의하는데 이 항목을 정의했다고 해서 포드가 외부로 노출되는 것은 아니다. 노출되기 위해서는 Service 오브젝트를 생성해야 한다. 이 Service 오브젝트는 여러 기능이 있지만 핵심 기능은.. 2022. 3. 21.
[Kubernetes] : 디플로이먼트를 사용하는 간단한 이유 디플로이먼트를 사용하는 이유는 애플리케이션의 업데이트와 배포를 편리하게 하기 위함이다. 디플로이먼트는 컨테이너 애플리케이션을 배포하고 관리하는 역할을 담당한다. 쿠버네티스에서도 공식적으로 디플로이먼트를 사용할 것을 권장하고 있다. 📖 ← [ 시작하세요! 도커/쿠버네티스 ] 책을 참고하여 공부하였습니다. 2022. 3. 21.
[Kubernetes] : 디플로이먼트 사용하기 레플리카셋으로 마이크로서비스 구조의 컨테이너를 구성할 수 있을 것 같지만 실제 쿠버네티스 운영 환경에서 레플리카셋을 YAML 파일에서 사용하는 경우는 거의 없다. Deployment라는 오브젝트를 YAML 파일에 정의해서 사용한다. 이 디플로이먼트 오브젝트는 레플리카셋의 상위 오브젝트여서 생성 시 이에 대응하는 레플리카셋도 생성된다. kubectl get deploy 생성된 디플로이먼트의 목록을 확인한다. kubectl get replicasets kubectl get pods 포드 개수를 유지시켜주는 것은 레플리카셋이다. 디플로이먼트와 같이 레플리카셋이 생성된 것임을 알 수 있다. kubectl delete deploy my-nginx-deployment 디플로이먼트를 삭제하면 레플리카셋과 포드도 삭제.. 2022. 3. 21.
[Kubernetes] : 레플리카셋 사용 Nginx 포드를 생성하는 레플리카셋을 만들어본다. apiVersion: apps/v1 kind: ReplicaSet metadata: name: replicaset-nginx spec: replicas: 3 selector: matchLabels: app: my-nginx-pods-label template: metadata: name: my-nginx-pod labels: app: my-nginx-pods-label spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 replicaset-nginx.yaml 파일을 작성한다. 리소스의 고유한 이름은 쿠버네티스 오브젝트에서도 설정이 가능하다. kubectl apply.. 2022. 3. 18.
[kubernetes] : 쿠버네티스 설치 환경의 종류 쿠버네티스 설치 환경의 종류 리눅서 서버와 같은 환경에서 쿠버네티스를 설치해야 한다. 도커와 달리 쿠버네티스는 사용 환경과 목적에 따라 수비게 설치할 수 있다. 하지만, 도커 엔진과 달리 쿠버네티스는 사용 환경과 목적에 따라 설치 방법이 다양하고 복잡하다. 개발 용도로 로컬에서 사용하면 간단한데, 운영 단계에서 쿠버네티스 클러스터를 구축하려면 AWS, GKE 등 클라우드 환경에서 수십 개의 서버에 동시에 쿠버네티스를 설치해야 할 수도 있다. 개발 용도의 쿠버네티스 설치 : Minikube, Docker Desktop for Mac/Windows에 내장된 쿠버네티스 서비스 테스트 혹은 운영 용도의 쿠버네티스 설치 : kops, kubespray, kubeadm, EKS나 GKE 등의 매니지드(Managed.. 2022. 3. 12.
[회고] : 22년 2월 이야기 1. 나와 나를 비교하는 회고 2. 하고 싶은 것이 늘었다. 3. 열심히 하지 않았다. 4. 전체적으로 공부하는 습관을 다시 한 번 잡고 가는 시기 5. TO-DO-LIST 6. 3월에 나는 어떤 공부를 할 것인지 7. 이상하게 요즘 너무 끌리는 게 있다. 8. 작년 딱 오늘, 내가 글을 쓰는 지금 이 날, 1. 나와 나를 비교하는 회고 방학의 끝이자 곧 입학해서 프로그래밍을 배운지 1년이 되는 날이 오고 있다. 2월의 회고는 나와 나를 비교하는 회고가 될 것이다. 1월과 비교하고 앞으로 올 3월과 비교할 것이다. 비교를 통해 얼마나 달라지지 않았고 얼마나 달라질 것인지에 대해 다시 한 번 생각을 해보는 회고가 될 것이다. 2. 하고 싶은 것이 늘었다. 1월과 2월을 비교했을 때 가장 먼저 머릿속에 떠오.. 2022. 2. 22.
반응형