본문 바로가기

분류 전체보기29

쿠버네티스 DNS 기능 이해 쿠버네티스 Core DNS Local DNS kubectl get pod -o wide -n kube-system NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES coredns-787d4945fb-dvd6h 1/1 Running 3 (16d ago) 73d 10.10.77.148 master-node coredns-787d4945fb-smzwr 1/1 Running 3 (16d ago) 73d 10.10.77.149 master-node etcd-master-node 1/1 Running 1 (16d ago) 56d 192.168.0.27 master-node kube-apiserver-master-node 1/1 Running.. 2024. 2. 22.
쿠버네티스 서비스(service) 사용하기 (1) 쿠버네티스 서비스에서는 파드 간 연결을 가리켜 파드를 노출(expose)한다. 라고 표현한다. 쿠버네티스 서비스는 동적으로 각 파드 간 연결을 제공한다. = 서비스 디스커버리한다. 쿠버네티스는 파드의 연결을 제공(Serve)한다는 의미로 서비스라는 용어를 쓴다. 클러스터 내부 혹은 외부 연결에 따라 서비스 타입을 다음과 같이 구분한다. 클러스터 내부에서 파드와 파드를 연결: 클러스터IP (Cluster IP), 헤드리스(Headless) 클러스터 외부에서 클러스터 내부의 파드를 연결: 노드포트 (NodePort), 로드밸런서(LoadBalancer) 서비스는 쿠버네티스 리소스의 한 종류 다이나믹하게 종료되고 생성되는 파드를 자동으로 발견(Service Discovery)한다. 변경이 잦은 IP 주소가 아.. 2024. 2. 22.
Helm 헬름 활용(3) 개요 1. 헬름 템플릿 변수 파일 사용하기 2. 리소스 Requests/Limits 이해 1. 헬름 템플릿 변수 파일 사용하기 vi templates/deployment.yaml {{- if .Values.resources }} resources: {{- toYaml .Values.resources | nindent 12 }} {{- else if ne .Values.resourcesPreset "none" }} resources: {{- include "common.resources.preset" (dict "type" .Values.resourcesPreset) | nindent 12 }} {{- if .Values.resources }} if 문을 사용해 resources 변수가 정의돼 있으면 해당.. 2024. 2. 19.
Helm 헬름 활용(2) 개요 1.헬름을 이용해서 Nginx 설치하기 2. startup probe, liveness probe, readiness probe 알아보기 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo ls NAME URL github-ksh https://sunghyun-kim-nhn.github.io/k8s-study-helm bitnami https://charts.bitnami.com/bitnami helm search repo nginx NAME CHART VERSION APP VERSION DESCRIPTION bitnami/nginx 15.11.0 1.25.4 NGINX Open Source is a web server that c.. 2024. 2. 19.
Helm 헬름 활용(1) 쿠버네티스는 리소스가 여러 개 필요한 경우가 많다. 파드 노출을 담당하는 서비스(Service) 애플리케이션 설정에 관련된 컨피그맵(ConfigMap) 기밀 정보를 다루는 시크릿(Secret) 다양한 리소스를 각각 관리하지 않고 하나의 패키지로 관리하는 도구가 헬름(Helm)이다. 주요 구성 요소 헬름 차트(Helm Chart): 여러 리소스의 묶음 헬름 차트 하나로 여러 어플리케이션을 일괄 설치 가능 Chart.yaml: 차트에 대한 정보가 담긴 yaml 파일 values.yaml: 차트의 기본 템플릿 변수 파일 charts/: 차트에 종속된 차트들을 포함하는 디렉터리 crds/: 커스텀 자원 정의 templates/: values 파일과 같이 유효한 쿠버네티스 매니페스트 파일을 생성하는 템플릿 헬름 .. 2024. 2. 19.
잘못된 pod 생성 트러블 슈팅 wrong-nginx-version.yaml apiVersion: v1 kind: Pod metadata: name: nginx-19 spec: containers: - name: nginx-pod image: nginx:1.19.19 kubectl apply -f wrong-nginx-version.yaml 더보기 Name: nginx-19 Namespace: default Priority: 0 Service Account: default Node: worker-node1/192.168.0.62 Start Time: Thu, 15 Feb 2024 14:50:54 +0900 Labels: Annotations: cni.projectcalico.org/containerID: 25ff3ed7ed37842f4.. 2024. 2. 15.
쿠버네티스 트러블슈팅의 기본 프로세스 쿠버네티스 디버깅 프로세스 작업 순서는 다음과 같다. apply -> get -> describe -> logs -> get event 1. yaml 파일을 이용해 오브젝트를 생성(apply)하고, 생성한 오브젝트 리스트는 get 명령어로 확인한다. 2.만약 파드가 정상적으로 생성되지 않으면 상세한 설정 정보를 describe 명령어로 확인한다. 3. 이후 어플리케이션 관련 에러는 로그 명령어(logs)로 확인하고 쿠버네티스 클러스터 관련 메시지는 이벤트 명령어(get event)로 확인한다. 2024. 2. 15.
yaml 파일을 이용한 쿠버네티스 오브젝트 관리 파드를 연결하는 방식을 정의하는 서비스(service) 개별 어플리케이션의 환경변수 설정을 정의하는 컨피그맵(configMap) 자원을 많이 사용해서 동일한 노드를 사용하는 다른 파드에 영향을 끼치지 않도록 하는 리소스 리미트(limits)/리퀘스트(requests) 위와 같은 오브젝트들은 대부분 코드로 구현한다. 1. 쿠버네티스 리소스를 가독성이 뛰어난 yaml 파일 형태로 export하는 kube-neat 플러그인을 설치합니다. k run busybox --image=busybox pod/busybox created k get po NAME READY STATUS RESTARTS AGE busybox 0/1 Completed 1 (4s ago) 6s k get pod busybox -o yaml ap.. 2024. 2. 8.
nginx 파드 실행과 bash실행 1. nginx 파드를 만들고 해당 파드에 bash를 실행해 파드에 접속합니다. #nginx 생성 kubectl run nginx --image=nginx #nginx bash 접속 kubect exec -it nignx -- bash #ps command apt -y update && apt -y install procps 2. nginx 디플로이먼트를 실행하고 파드의 개수를 10개 -> 0개 -> 1개 순으로 변경합니다. 파드의 개수를 변경하려면 오브젝트 타입을 파드가 아닌 디플로이먼트로 실행해야 한다. #디플로이먼트 생성 kubectl create deployment httpd --image=httpd create: 만들다 deployment: 디플로이먼트 오브젝트를 httpd: httpd라는 이름.. 2024. 2. 8.
1장 MySQL과 MariaDB 개요 1장 MySQL과 MariaDB 개요 2023. 12. 21.