쿠버네티스 Docker & Kubenetes 2024. 5. 14. Kubernetes Service 각 Pod 들은 Kubernetes Cluster 내에서만 유효한 가상의 IP를 부여받고 같은 Cluster 내 Pod들 끼리 통신이 가능하다.예를 들면, Pod A 에서 Pod B로 통신 중에 에러에 의해 재기동 되면 Node 2 에 생성이 될 수도 있는데 이때 Pod B에는 새로운 IP가 부여된다.Pod A의 입장에서는 Pod B와 통신하려면 Pod B의 IP를 알아야 통신이 가능하기 때문에 관리자가 Pod A에 등록되어 있는 Pod B의 IP 주소를 수정해줘야 통신이 가능하다. 또한 Pod의 IP는 가상의 IP로 Cluster 내부에서만 유효하기 때문에 외부 클라이언트가 접근하지 못한다. 즉 APP을 Pod로 배포해도 접근이 안되기 때문에 사용을 못하는 것이다.이러한 불편함 때문에 SVC(Servi.. Docker & Kubenetes 2024. 2. 1. Kubernetes - Cluster Node 제거 이번 포스팅에서는 기존에 연결 되어있는 k8s 인프라에서 worker node 서버를 제거하는 과정을 포스팅하겠습니다. 절차는 아래와 같습니다. Master Server # Node 연결상태 확인 k get nodes # Node 스케줄링 비활성화 k drain {Node Name} # daemonset으로 생성된 pod들은 제거할 수 없어 --ignore-daemonsets 옵션을 사용해야함 # empty-volume 이 연결된 pod들은 제거할 수 없어 --delete-local-data 옵션을 사용해함 # pdb(PodDisruptionBuget) pod들은 제거할 수 없어 해당 pod들은 직접 delete 명령으로 제거해 줘야 함 Ex) k drain Server2 Server1 Ready 287.. Docker & Kubenetes 2023. 8. 21. 쿠버네티스 서비스와 인그레스(SVC, Ingress) 서비스 (Service) 파드는 컨트롤러가 관리하므로 한 곳에 고정되지 않고 클러스터 안을 옳겨 다닙니다. 이 과정에서 노드를 옮기면서 실행되기도 하고 파드의 IP가 변경 되기도 하는데, 동적으로 변하는 파드들에 고정적으로 접근하기 위해 사용하는 것이 서비스(Service)입니다. 서비스를 사용하면 파드가 클러스터 안 어디에 있든 고정 주소를 통해 접근할 수 있으며, 클러스터 외부에서 내부의 파드에 접근할 수도 있습니다. 서비스는 주로 L4 영역에서 통신할 때 사용하고 인그레스는 L7 영역에서 통신할 때 사용한다는 차이가 있습니다. 서비스 타입 - ClusterIP : 클러스터 내부에서만 사용할 수 있으며 클러스터IP를 이용하여 서비스에 연결된 파드에 접근한다. - NodePort : 서비스 하나에 모든.. Docker & Kubenetes 2023. 8. 2. 쿠버네티스 클러스터 컴포넌트 Kubernetes Cluster Component 쿠버네티스에서 클러스터의 모든 구성 요소들은 API 서버를 통해서만 상호 접근 가능하도록 설계되어 있습니다. Master Node 클러스터 전체를 관리하는 역할, 컨트롤 플레인(Control Plane) 이라고 부르기도 한다 해당 컴포넌트들은 kube-system 네임스페이스 안에 파드 형태로 배포되어 있다. API Server 클러스터 구성 요소들의 상호 통신에 필요한 API를 관리하는 컴포넌트 ETCD 클러스터 내부의 각 구성요소들에 대한 정보가 키-값 형태로 저장된 메모리 데이터베이스 Scheduler 클러스터의 각 컨테이너에 최적의 배포를 수행하는 스케쥴러 Controller 컨트롤러 매니저(kube-controller-manager)라고 부르며, 클러스터에서 구동되는 리소스( Node, Depl.. Docker & Kubenetes 2023. 7. 22. Kubernetes 트러블 슈팅의 기본 프로세스 Kubernetes Troubleshooting의 기본 프로세스를 알아보겠습니다. 일반적인 작업 순서는 다음과 같습니다. Apply > Get > Describe > Logs > Get Event 1. YAML 파일을 이용하여 오브젝트를 생성(apply)하고 생성한 오브젝트 리스트를 get 명령으로 확인 2. 파드가 정상적으로 생성되지 않으면 describe 명령으로 상세한 설정 정보를 확인 3. 애플리케이션 관련 에러는 logs 명령으로 확인하고 클러스터 관련 메시지는 get event 명령으로 확인 예시 이미지 버전을 잘못 기재하여 발생한 에러를 예시로 트러블 슈팅을 진행해 보겠습니다. apiVersion: v1 kind: pod metadata: name: test-nginx spec: contai.. 이전 1 다음