본문 바로가기
[service] Kubernetes 에 실행중인 Pod 에서 외부 mysql 연결하기 쿠버네티스를 도입한다 하더라도 대부분 애플리케이션만 쿠버네티스 상에서 돌리고, 일반적으로 데이터베이스는 외부 Baremetal 로 실행 중인 경우가 많습니다.이 경우 굳이 데이터베이스를 쿠버네티스로 옮기지 않아도 쿠버네티스의 애플리케이션이 데이터베이스에 접근할 수 있는 방법이 있습니다.해결책은 Service 와 Endpoint 를 활용하는 방법입니다. 일반적으로 Service 를 만들 때 Selector 를 활용하여 다른 Pod 와 연결합니다. 이 때 Selector 가 잘 연결되면 Endpoint 도 자동으로 생성됩니다.하지만 위의 경우에는 데이터베이스(예: mariadb) 이 쿠버네티스 클러스터 외부에 있으므로 Selector 를 활용할 수 없습니다.이 경우에는 Endpoint 가 자동으로 생성되지 .. 2024. 3. 13.
[service] 쿠버네티스 서비스 사용하기 쿠버네티스 서비스에서는 파드 간 연결을 가리켜 파드를 노출(expose)한다. 라고 표현한다. 쿠버네티스 서비스는 동적으로 각 파드 간 연결을 제공한다. = 서비스 디스커버리한다. 쿠버네티스는 파드의 연결을 제공(Serve)한다는 의미로 서비스라는 용어를 쓴다. 클러스터 내부 혹은 외부 연결에 따라 서비스 타입을 다음과 같이 구분한다.클러스터 내부에서 파드와 파드를 연결: 클러스터IP (Cluster IP), 헤드리스(Headless)클러스터 외부에서 클러스터 내부의 파드를 연결: 노드포트 (NodePort), 로드밸런서(LoadBalancer)서비스는 쿠버네티스 리소스의 한 종류다이나믹하게 종료되고 생성되는 파드를 자동으로 발견(Service Discovery)한다.변경이 잦은 IP 주소가 아닌 지속.. 2024. 2. 22.
[trouble] 잘못된 pod 생성 트러블 슈팅 wrong-nginx-version.yamlapiVersion: v1kind: Podmetadata: name: nginx-19spec: containers: - name: nginx-pod image: nginx:1.19.19 kubectl apply -f wrong-nginx-version.yamlName: nginx-19Namespace: defaultPriority: 0Service Account: defaultNode: worker-node1/192.168.0.62Start Time: Thu, 15 Feb 2024 14:50:54 +0900Labels: Annotations: .. 2024. 2. 15.
[deployment] nginx pod, httpd scale 예제1. nginx 파드를 만들고 해당 파드에 bash를 실행해 파드에 접속합니다.#nginx 생성 kubectl run nginx --image=nginx#nginx bash 접속kubect exec -it nignx -- bash#ps commandapt -y update && apt -y install procps예제2. httpd 디플로이먼트를 실행하고 파드의 개수를 10개 -> 0개 -> 1개 순으로 변경합니다.파드의 개수를 변경하려면 오브젝트 타입을 파드가 아닌 디플로이먼트로 실행해야 한다. #디플로이먼트 생성kubectl create deployment httpd --image=httpdcreate: 만들다deployment: 디플로이먼트 오브젝트httpd: container 이름--imag.. 2024. 2. 8.
(기초) 쿠버네티스 활용 - nginx 목표: 쿠버네티스에 nignx를 위한 deployment, service를 배포 Deployment kubectl create -f nginx-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-server labels: app: server spec: replicas: 1 selector: matchLabels: app: server template: metadata: name: nginx-server labels: app: server spec: containers: - name: server image: nginx:1.23.3 ports: - containerPort: 80 Service kubectl create -.. 2023. 12. 12.