기술 이모저모/[k8s] kubernetes

개인적으로 차근차근 공부하는 목적으로 작성한 글입니다. 일부 잘못된 내용이 있을 수도 있습니다. 잘못된 내용은 피드백 해주시면 적극 반영하도록 하겠습니다. 감사합니다 :) 최근 쓰니가 재직중인 회사에서 Cluster Upgrade가 있었다. 근데 Upgrade 이후, 특정 Github 레포의 helm upgrade가 되지 않는 이슈가 있었고 이를 통해 새롭게 알게 된 내용을 정리하고자 한다. Github Action Helm upgrade Fail Error: UPGRADE FAILED: current release manifest contains removed kubernetes api(s) for this kubernetes version and it is therefore unable to buil..
개인적으로 차근차근 공부하는 목적으로 작성한 글입니다. 일부 잘못된 내용이 있을 수도 있습니다. 잘못된 내용은 피드백 해주시면 적극 반영하도록 하겠습니다. 감사합니다 :) 최근에 EKS 업데이트를 했었는데, k8s 버전에 맞는 coreDNS 업데이트도 했다. coreDNS가 이름만 들어보면 언뜻 DNS 서비스를 뜻하는것 같은데, 정확히 어떤 개념이고 어떤게 동작하는지 궁금했다. CoreDNS란 무엇인가? k8s docs를 보면 아래와 같이 쿠버네티스 클러스터의 DNS 역할을 수행하는 서버로 표현되어 있다. CoreDNS는 쿠버네티스 클러스터의 DNS 역할을 수행할 수 있는, 유연하고 확장 가능한 DNS 서버이다. 쿠버네티스와 동일하게, CoreDNS 프로젝트도 CNCF 가 관리한다. 어렵게 표현했지만 결..
처음부터 차근차근 공부하는 목적으로 작성한 글입니다. 일부 잘못된 내용이 있을 수도 있습니다. 잘못된 내용은 피드백 해주시면 적극 반영하도록 하겠습니다. 감사합니다 :) EKS를 운영하다 보면 많은 Worker node가 있고, 수많은 Pod가 생겨난다. 그리고 이때 운영자는 별도 작업이 없지만 EKS가 자동적으로 pod에 private ip를 할당해준다. 어떻게 되는걸까? EKS 네트워킹에 대한 기본 개념과 방법에 대해서 알아보자. EKS 네트워킹 기본 구조 가장 기본적인 EKS 네트워킹의 기본 구조이다. EKS node는 다수의 Pod을 생성해야 하고, 이때 많은 Private ip가 필요로 한다. 이때 AWS에서는 AWS VPC CNI 플러그인을 제공해주고 이것은 K8s과 AWS VPC간의 브릿지 ..
Devops 직군뿐 아니라, 최근에는 Helm이 널리 이용되고 있다. 그래서 자주 사용하는 Helm Command에 대해서 정리해보고자 한다. 아직은 많이 많이 부족하고 배우는 단계라서 단순한 것만 사용하고 있으니, 참고만 하도록 한다. 아래 Helm 공식 Docs를 통해서 더 많은 명렁어를 확인할 수 있고, 직접 사용해보면서 업무에 필요한 명렁어를 습득하면 된다. Helm Get 헬름 - 쿠버네티스 패키지 매니저 helm.sh Command Tip 1. 현재 배포되어 있는 Helm release 와 배포 이력 찾기 helm list를 통해 현재 배포하고 있는 helm release를 알 수 있다. 1개가 될 수도 있고, 2개 이상이 될 수도 있다. 그리고 간략하게 REVISION과 배포 시간 그리고 C..
업무를 하다보면 kubernetes, EKS를 사용할 일이 있다. 그리고 이때 빠짐없이 등장하는것이 Helm이다. 그렇다면 Helm 이란 무엇이고? Helm은 어떻게 사용하는것인지에 대해서 알아보자!! Helm이란? Helm Docs에는 "Helm is the package manager for Kubernetes"로 소개되어 있다. 즉 쿠버네티스의 패키지 매니지먼트이다. Docs Home Everything you need to know about how the documentation is organized. helm.sh 쉽게 이해하자면 Python의 pip, 그리고 Linux에서 쉽게 패키지를 다운로드 할 수 있게 도와주는 yum, apt와 비슷하다고 보면 된다. Helm도 기타 다른 패키지와 마..
kubernetes 공부를 하다보면 pod, containers라는 단어를 많이 들어볼 수 있다. 먼저 pod란? kubernetes에서 가장 기본적인 배포 단위이다. 쉽게 말해서 1개의 가상이미지라고 보면 된다. 그렇다면 container는 뭘까? pod를 이루는 Application이라고 보면 된다. 일반적으로 1개의 pod에는 1개의 container가 존재하나 필요에 따라서 다수의 containers가 존재할 수 있고 이런 경우 multi containers pod라고 한다. 그럼 init container는 뭘까? init container는 app container가 구동되기 이전에 pod를 초기화해주는 container라고 보면 된다. pod의 환경설정 또는 기타 다른 부수적인 작업을 하기 ..
앞장에서 DaemonSet에 대해서 알아보았다. 그렇다면 이번에는 StaticPod에 대해서 알아보자! 먼저 StaticPod란 무엇일까? Docs에 기재되어 있느 내용을 인용하면 Kubernetes API 서버없이 Kubelet 데몬에 의해 직접 관리하며, Node에 필수로 설치하는 Pod을 배포하기 위한 방법으로 설명되어 있다. Kubelet 데몬에 의해 직접 관리의 의미는 일반적은 Kubernetes 구조와는 다르다는것을 의미한다. 일반적은 구조는 사용자가 어떤 명령을 하면 이를 API Server에서 모두 취합하여 명령을 내린다. API Server는 사람으로치면 두뇌의 역할을 한다. 그렇기에 API Server에 장애가 발생하면 Pod 배포가 되지 않는다. 근데 StaticPod는 API Ser..
Kubernetes에는 많은 형태의 Pod 배포 방법이 존재한다. 그렇기에 많은것을 공부해야되고 아직까지도 새로운것이 많다. 이번에는 DaemonSet 과 StaticPod에 대해서 알아보자!! 먼저 DaemonSet이란? DaemonSet은 노드별로 Pod를 배포할 때 사용하는 서비스이다. 예를들어서 클러스터에 5개의 Node가 존재한다면 Daemonset이 있다면 각 노드별로 Pod가 배포되고 총 5개의 Pod가 배포된다. 일반적으로 Node별로 Pod 정보를 수집하거나, Node 정보를 수집하거나 또는 각 Node에 필수로 실행되어야하는 Pod가 있을 때 DaemonSet을 많이 사용한다. 현재 재직중인 회사에서도 Node의 상태를 모니터링하는 오픈소스 플랫폼을 사용하는데, 이를 DaemonSet으..
아래의 연습문제를 풀다보니 configmap에 대한 개념이 필요했다. 공부해보자 [k8s] KodeKloud Practice test -Multiple Schedulers Q1. What is the name of the POD that deploys the default kubernetes scheduler in this environment? A1. Q2. What is the image used to deploy the kubernetes scheduler? Inspect the kubernetes schedule.. dobby-isfree.tistory.com 일단 쿠버네티스 configmap이란 뭘까? 공식 사이트의 내용을 인용하면 기밀의 아닌 정보를 key-value 쌍으로 저장하는 API 오..
Kobby
'기술 이모저모/[k8s] kubernetes' 카테고리의 글 목록