데이터 엔지니어링/K8s 7

[K8s] 쿠버네티스 명령어 모음

K8s 설명 명령 옵션 클러스터 시작 kubeadm init 클러스터 정보 kubectl cluster-info 실행중인 pod 확인 watch kubectl get pods --all-namespaces 이벤트 확인 kubectl get events --namespace={네임스페이스} pod 정보 확인 kubectl describe pods {POD 이름} --namespace={네임스페이스} 클러스터 노드 확인 kubectl get no token 확인 kubeadm token list discovery-token-ca-cert-hash openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/de..

[K8s] Helm

정의 The package manager for Kubernetes - k8s 패키지 관리자 Node.js의 npm / python의 pip 주요 개념 Chart Repository Release Chart 헬름 패키지 k8s cluster에서 애플리케이션이 가동되기 위한 모든 리소스 포함 - ex) mariadb 가동을 위한 리소스 : Deployemnt, Secret, Service Repository 차트 저장소 Release k8s cluster에서 구동되는 chart의 인스턴스 동일한 chart를 여러 번 설치하면 새로운 release로 관리 Repository에서 원하는 Helm Chart를 검색/설치 후 Release 생성 Helm v3 helm v2 -> v3에서 변화가 큰 듯 - Helm..

[K8s] Cluster 초기세팅 에러 (coredns PENDING)

coredns가 PENDING [문제] 처음 클러스터를 시작했을 때, coredns가 PENDING에서 넘어가지 않음 [원인] Control Plane에서는 초기 pod이 실행되지 않도록 설정되어있음 [해결] Untaint not-ready까지 untaint >> kubectl taint node {노드이름} {노드뒤에 적힌것} >> kubectl describe node {노드이름} | grep Taints 서비스 재시작 (containerd, kubelet) >> sudo systemctl restart containerd >> sudo systemctl restart kubelet https://17billion.github.io/kubernetes/2019/04/24/kubernetes_contr..

[K8s] 쿠버네티스 애드온

https://kubernetes.io/ko/docs/concepts/overview/components/ 쿠버네티스 컴포넌트 쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다. kubernetes.io 정의 쿠버네티스 리소스(Daemonset, Deploymnet 등)을 이용하여 Cluster 기능 구현 - Daemonset : Pod의 복제본을 Cluster Node 집합에서 동작하게 함 - Deploymnet : Cluster에서 복제된 애플리케이션 관리 Cluster 단위 기능을 제공하므로 kube-system namespace에 속함 DNS Cluster DNS는 구성환경 내 다른 DNS 서버와 더불어, 쿠버네티스 서비스를 위해 DNS 레코드를 제공 쿠버네티스..

[K8s] 쿠버네티스 노드(Node) 컴포넌트

https://kubernetes.io/ko/docs/concepts/overview/components/ 쿠버네티스 컴포넌트 쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다. kubernetes.io 정의 동작 중인 pod를 유지시키고 쿠버네티스 런타임 환경을 제공 모든 노드 상에서 동작 kubelet Cluster의 각 Node에서 실행 역할 Pod에서 컨테이너가 확실하게 동작하도록 관리 제공된 PodSpec의 집합을 받아 컨테이너가 이에 따라 건강하게 동작하는 것을 확실히 함 쿠버네티스를 통해 생성되지 않은 컨테어는 관리하지 않음 kube-proxy Cluster의 각 Node에서 실행되는 네트워크 프록시 쿠버네티스의 Service 개념의 구현부 - Servci..

[K8s] 쿠버네티스 컨트롤 플레인(Control Plane) 컴포넌트

https://kubernetes.io/ko/docs/concepts/overview/components/ 쿠버네티스 컴포넌트 쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다. kubernetes.io 정의 Cluster에 관한 전반적인 결정(스케줄링 등)을 수행 클러스터 이벤트를 감지하고 반응 - ex) deployment의 replicas 필드에 대한 요구 조건이 충족되지 않으면 새로운 pod를 구동시킴 특징 클러스터 내 어떤 머신에서든 동작 가능 그러나 보통 동일 머신상에서 모든 Control Plane 컴포넌트를 구동 그리고 해당 머신에서는 사용자 컨테이너를 동작시키지 않음 kube-apiserver 쿠버네티스 API를 노출하는 컴포넌트 - 쿠버네티스 Cont..

[K8s] Kubernetes (K8s)

https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/ 쿠버네티스란 무엇인가? 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하 kubernetes.io 정의 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성 있는 / 확장 가능한 오픈소스 플랫폼 이름 유래 키잡이(helmsman), 파일럿을 뜻하는 그리스어에서 유래 K8s의 8은 K와 s 사이에 있는 "ubernete" 8글자를 의미 쿠버네티스가 필요한 이유 프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너가 필요 - ex) 컨테이너가 다운되면 다른 컨..