본문 바로가기

Kubernetes20

[ Kubespray ] node label 추가, addon label selector 설정 일반적으로 운영 private kubernetes 클러스터를 구축한다고 하면 아래와 같은 구성으로 클러스터를 생성하게 될 것이다. kubespray 를 통해 proxy node 들과 worker node 들에 필요한 addon object 를 특정 node 에만 할당 되도록 설치 하기 위해선 kubespray 에서 제공하는 node selector 방식을 사용하면 쉽게 할수 있다. ingress 와 metallb 를 특정 node 에 뜰 수 있게 label 적용 예를 아래와 같이 확인 해보자 일단 inventory.ini ($kubespray_home/inventory/클러스터/inventory.ini )의 예는 아래와 같다. [all] k8smaster ansible_host=192.168.101.13.. 2023. 10. 25.
kubernetes 의 pod 내 container 목록 조회 kubectl get pod 로 조회시 root@k8smaster:~# kubectl get pod NAME READY STATUS RESTARTS AGE alertmanager-prometheus-kube-prometheus-alertmanager-0 2/2 Running 0 9m41s 와 같이 2개 이상의 container 를 가진 pod 가 있는데 이런 pod 의 container 를 조회 하기 위해선 컨테이너 명을 알아야 한다. shell> kubectl get pod [pod 명] -o jsonpath={..spec.containers[*].name} | xargs -n1 과 같이 조회 해 주면 된다. 이렇게 조회 후 container log 를 조회 하려면 kubectl logs pod/pro.. 2023. 5. 29.
[Kubernetes] daemonset 재기동, scale 0, shutdown 방법 daemonset 이란 각 worker node 당 하나씩 pod 가 뜨는 방식의 k8s object 이다. 이 object 는 replica 같은 설정이 없으므로 delete 외에 잠깐 갯수를 0 으로 만들거나 shutdown 시키는게 불가능하다. 그래도 daemonset 을 아예 삭제 하는게 힘든 상황일 경우 아래와 같이 생각해보자 1. daemonset 에 node 에 있지도 않은 label 의 nodeselector 를 patch 하자 => 이렇게 되면 본인이 기동 될 곳이 없으므로 자연스럽게 갯수가 0으로 변한다. 2. 다시 기동이 필요할 때는 daemonset 에 해당 nodeseletor 를 삭제 해주자 위의 전략을 테스트 하기 위해 아래와 같은 fluentd 의 damonset 을 만들었다.. 2023. 5. 17.
클러스터 관리 툴 kubeadm vs kubespray 비교 1. kubeadm 쿠버네티스에서 직접 제공하는 클러스터 생성 tool 클러스터 생성을 위해 필요한 기초 생성 , 관리 명령어들이 포함 됩니다. 쿠버네티스 클러스터의 life cycle 관리를 학습하는데 도움이 됩니다. 클러스터를 관리하기 위한 것이므로 개별 node 에 대한 container runtime, kublet, cni 등은 알아서 설치가 필요합니다. 2. kubespray 쿠버네티스 클러스터 관리를 위한 오픈소스 ansible 을 이용한 play book (인프라 담당자에게 익숙한 ansible 을 사용함) ansible 과 ssh를 사용하므로 대규모 쿠버네티스 클러스터를 관리하기에 적합합니다. ansible 을 사용하므로 개별 worker node 에 접속 하지 않고 원격 설치 및 클러스터.. 2023. 5. 16.