반응형 kubernetes13 [kubernetes] 쿠버네티스 QOS란 이번 게시글에서는 쿠버네티스 QOS에 대해 정리합니다. 1. QOS란QOS란 Quality of Service의 약자로 팟들은 생성될때 QOS중에 하나를 할당받습니다. 추후 쿠버네티스는 QoS 클래스들을 확인하고 팟을 스케줄링하고 자원을 관리합니다. 2. QOS의 종류GuarantedBurstableBestEffortQOS는 총 3가지로 분류되고 위에서부터 쿠버네티스가 더 중요하게 생각합니다. Guaranteed 팟을 Guranteed QOS 클래스가 할당되도록 하려면 아래 조건을 만족해야합니다.파드 내 모든 컨테이너는 메모리 상한과 메모리 요청량을 가지고 있어야 한다.파드 내 모든 컨테이너의 메모리 상한이 메모리 요청량과 일치해야 한다.파드 내 모든 컨테이너는 CPU 상한과 CPU 요청량을 가지고 있어.. 2021. 11. 25. [kubernetes] operator-sdk를 사용하여 쿠버네티스 오퍼레이터 구축하기 (operator sdk 예제) operator-sdk는 operator 개발 플로우를 제공하는 프레임워크로 해당 게시글은 operator의 개념에 대해 먼저 숙지해야 합니다. [kubernetes] 쿠버네티스 오퍼레이터란(kubernetes operator) 이번 게시글에서는 쿠버네티스 오퍼레이터에 대해 정리합니다. 게시글을 읽기전 쿠버네티스 아키텍쳐와 동작원리, cr, crd, 게시글을 읽어보시면 이해가 더 수월할 것 같습니다. [kubernetes] 쿠버네 frozenpond.tistory.com operator-sdk란 operator 개발 플로우를 제공하는 프레임워크입니다. 간단한 kubernetes operator를 구축해보는 예제입니다. 1. 목표 apiVersion: mygroup.example.com/v1 kind: H.. 2021. 11. 5. [kubernetes] 쿠버네티스 오퍼레이터란(kubernetes operator) 이번 게시글에서는 쿠버네티스 오퍼레이터에 대해 정리합니다. 게시글을 읽기전 쿠버네티스 아키텍쳐와 동작원리, cr, crd, 게시글을 읽어보시면 이해가 더 수월할 것 같습니다. [kubernetes] 쿠버네티스(kubernetes) 아키텍쳐 및 동작원리 1. 쿠버네티스란 단일 서버에서 컨테이너를 사용한다면 쿠버네티스를 사용하지 않아도되겠지만 서버가 10대로 늘어나게 된다면 어떤 서버에 어떤 컨테이너를 생성해야할지 서버마다 들어가서 frozenpond.tistory.com [kubernetes] 쿠버네티스 cr과 crd란?(쿠버네티스 확장) 1. cr이란 쿠버네티스에서 애플리케이션을 개발하다보면 추가적인 기능이 필요할 수 있습니다. 쿠버네티스에서는 오브젝트를 직접 정의해 사용할수 있으며 소스코드를 따로 수정.. 2021. 11. 2. [kubernetes] 쿠버네티스 cr과 crd란?(쿠버네티스 확장) 1. cr이란 쿠버네티스에서 애플리케이션을 개발하다보면 추가적인 기능이 필요할 수 있습니다. 쿠버네티스에서는 오브젝트를 직접 정의해 사용할수 있으며 소스코드를 따로 수정하지 않고도 API를 확장해 사용할 수 있는 인터페이스를 제공하고 있습니다. custom resource(cr)를 이용하여 쿠버네티스를 확장할 수 있습니다. 2. cr 사용예제 apiVersion: "extension.example.com/v1" kind: Hello metadata: name: hello-sample size: 3 위의 yaml파일을 이용해 kubernetes api server에 생성해달라고 요청해봅니다. $ kubectl apply -f mycr.yaml # error: unable to recognize "mycr... 2021. 7. 14. [kubernetes] 쿠버네티스 인증, 인가(rbac) 1. 쿠버네티스 인증이란? 쿠버네티스 사용자가 맞는지 확인하는 작업입니다. 쿠버네티스 마스터노드에는 api서버가 있으며 보통 쿠버네티스 클라이언트인 kubectl을 이용하여 요청을 보냅니다. 이는 .kube/config파일에 인증작업이 되어있어서 가능합니다. 그러나 직접 쿠버네티스 api를 통해 클러스터의 리소스들을 관리하고싶다면 쿠버네티스의 인증방식을 알아야 합니다. 특히 operator등을 pod으로 띄워서 어플리케이션으로 코드로 내 클러스터를 관리, 운영 하고싶다면 쿠버네티스 api서버의 인증방식을 알아야합니다. 2. 토큰을 이용하여 http request를 날려 401에러와 403에러 확인 (1). 토큰확인하기 아래의 명령어를 통해 default serviceaccount의 token을 확인할수 .. 2021. 7. 14. [kubernetes] 쿠버네티스(kubernetes) cronjob 이란 1. cronjob이란 리눅스 crontab(작업 예약 스케줄러) 쿠버네티스 버전입니다. 백업, 소나큐브 분석, 이메일 전송 등 정기적이고 반복적인 작업을 하는데 쓰입니다. 2. 사용법 (1). mycj.yaml apiVersion: batch/v1 kind: CronJob metadata: name: time-limited-cronjob spec: jobTemplate: metadata: name: my-time-limited-job spec: activeDeadlineSeconds: 150 # 150초만 실행하고 끝내는 예제 template: spec: containers: - args: - /bin/sh - -c - date; echo Hello CronJob image: busybox name: .. 2021. 7. 14. [kubernetes] 쿠버네티스(kubernetes) service(NodePort)란 1. NodePort란 지난 게시글에서 service(clusterIP)에 대해 확인해봤습니다. ClusterIP를 통해서 어떤 노드(서버)에 있더라도 pod과 pod끼리 통신을 시킬수 있었습니다. 즉 api서버와 db서버를 통신시킬수 있게됐었습니다. 그러나 clusterIP의 특성상 하나의 쿠버네티스 클러스터 안에서만 통신이 가능하다는 단점이 있었습니다. 이제 pod을 외부에 공개시킬 순서입니다. 2. deployment를 생성하여 pod를 생성 apiVersion: apps/v1 kind: Deployment metadata: name: mydeploy spec: replicas: 2 selector: matchLabels: app: myHelloWorld template: metadata: labe.. 2021. 7. 14. [kubernetes] 쿠버네티스(kubernetes) service(clusterip)란 1. service란 pod은 자체 ip를 가지고있으며 같은 클러스터 내부라면 해당 ip를 통해 통신을 할 수 있습니다. 그러나 pod의 ip는 고정 되어 있지 않습니다.(pod에 문제가 생겨 replicaset이 다시 생성해주면 ip가 변경되게 됩니다) ip를 이용해 통신하면 pod에 문제가 생겨 죽고 다시 살아났을때 더이상 통신이 안됩니다. 이를 방지하기 위해 service(cluster ip)를 사용합니다. 2. deployment를 생성하여 pod을 생성 apiVersion: apps/v1 kind: Deployment metadata: name: mydeploy spec: replicas: 2 selector: matchLabels: app: myHelloWorld template: metada.. 2021. 6. 22. [kubernetes] 쿠버네티스(kubernetes) 디플로이먼트(deployment)란 1. deployment란 deployment가 등장하기 이전 레플리케이션 컨트롤러만 이용하는 경우 컨테이너에 들어가는 애플리케이션의 소스가 변경된경우 다시 레플리케이션 컨트롤러를 새로 만들고 rolling-update 수행했습니다. 그러나 deployment가 등장하며 pod의 컨테이너의 이미지만 변경해주면 편리하게 업데이트가 되며 히스토리 확인 및 롤백기능까지 사용할 수 있게 되었습니다. 2. yaml파일을 이용해 생성하기 apiVersion: apps/v1 kind: Deployment metadata: name: mydeploy spec: replicas: 3 selector: matchLabels: app: myHelloWorld template: metadata: labels: app: myH.. 2021. 6. 21. 이전 1 2 다음 반응형