전체 글

전체 글

    [DevOps] k9s -c pod 컬럼 설명

    k9s 를 사용할때 pod 리스트를 확인하려면 k9s -c pod 로 확인할 수 있는데 여기서 표시되는 컬럼은 아래와 같습니다. View: Pods()[number of pods listed] NAME pod name READY number of pods in ready state / number of pods to be in ready state RESTARTS number of times the pod has been restarted so far STATUS state of the pod life cycle, such as Running | ... | Completed CPU current CPU usage, unit is milli-vCPU MEM current main memory usage, ..

    [AWS] EKS 트러블 슈팅 (aws-auth 권한 추가 이슈)

    Intro aws eks cluster는 aws-auth 라는 configmap을 사용해서 cluster접근 권한을 컨트롤 합니다. 오늘은 aws-auth로 권한을 추가할때 할때 실수 할 수 있는 부분을 공유해보고자 합니다. 사건의 발생.. 특정 eks cluster node 위에 jenkins pod 를 statefulset 자원으로 생성해두고 특정 jenkins job에서 kubectl을 사용하는데, 아래와 같이 k8s 자원에 권한이 없다는 에러가 나와서 aws-auth에 권한을 추가하였습니다. kubectl get ns Error from server (Forbidden): namespaces is forbidden: User "system:node:ip-1-1-1-1.ap-northeast-2.c..

    [kubernetes] pod 의 스케줄링 방법들과 예시 ( feat. anti affinity 활용 하여 다른 노드 다른 AZ에 스케줄링하기)

    Intro kubernetes 는 여러개의 노드가 클러스터링 되어있고, 그 안에 pod가 어느 노드로 스케줄링 해야할지를 상황에 따라 컨트롤 할 수 있어야 합니다. 오늘은 pod 스케줄링 기능중에 pod anti affinity 를 사용하여 각각 다른 노드와 다른 AWS AZ에 생성되도록 구성하는 방법에 대해 알아보고 관련된 내용을 살펴보겠습니다. pod의 기본(default) 스케줄링 pod의 기본 스케줄링은 first-come, first-served (FCFS) 방식입니다. 즉, pod가 생성되면, pod의 자원 요구 사항을 충족시키는 첫 번째 유효한 노드에 배치하게 됩니다. k8s의 Scheduler는 사용할 수 있는 리소스가 가장 많은 노드부터 시작해서 사용 가능한 노드 목록을 검토하고, pod..

    [DevOps] helm template에서 loop 돌리기 (rage until 사용)

    Intro helm chart를 사용하다보면 커스텀하게 변경해야할 경우가 종종 발생합니다. 오늘은 helm chart 문법에서 rage를 사용해서 for구문 처럼 loop 돌리고 정수 값을 0,1,2,3 으로 넘버링 하는 방법을 알아 보겠습니다. 결론 먼저 결론적으로 다음과 같이 {{range $index, $element := until (int .Values.replicas) }} 구문을 사용하면 됩니다. {{range $index, $element := until (int .Values.replicas) }} --- apiVersion: v1 kind: Service metadata: name: example-{{ $index }}-svc namespace: devops spec: ports: - ..

    [AWS] Cluster Autoscaler의 주요 옵션들(CA deep dive)

    Intro EKS를 구축을 고려하였다면 Cluster Autoscaler 사용을 권장드립니다. 그 이유는 클라우드라는 장점을 극대화 시킬 수 있고 비용절감과 안정적인 scale in/out을 도와주기 때문이죠. 이 cluster autoscaler에도 몇가지 고려해야할 옵션들이 있습니다. 오늘은 cluster autoscaler의 몇가지 주요 옵션에 대해 자세히 확인해보겠습니다. Cluster Autocaler의 기본 설정들 cluster Autoscaler는 기본적으로 매 10초 간격으로 스케줄되지 않은 pod가 있는지 체크한다 **scan-interval** 노드가 10분 동안 사용하지 않는 것으로 판단되면 스케일인 을 한다. **scale-down-unneeded-time** 노드에 실행중인 모든 ..