DevOps/Kubernetes 9

[kubernetes] namespace

■ namespace 란? - 클러스터를 여러개의 논리적인 단위로 나눠서 사용 - API가 하나이지만 목적에 맞춰 여러개로 분리 - namespace를 사용하지 않으면 자동으로 'default namespace' 로 동작 · namespace 조회 $ kubectl get namespace --- NAME STATUS AGE default Active 1d kube-node-lease Active 1d kube-public Active 1d kube-system Active 1d · 쿠버네티스 초기 namespace는 총 4개 다음과 같다. default 다른 namespace가 없는 object를 위한 기본 namespace kube-system 쿠버네티스 시스템에서 생성한 object를 위한 name..

DevOps/Kubernetes 2022.08.24

[Kubernetes] 쿠버네티스 아키텍처

■ Kubernetes Architecture Control Plane Component 1. kube-apiserver API Server는 쿠버네티스 API를 노출하는 쿠버네티스 Control Plane Component 수평으로 확장되도록 디자인 되어 더 많은 인스턴스를 배포해서 확장할 수 있음 여러 kube-apiserver 인스턴스를 실행하고, 인스턴스간의 트래픽을 균형있게 조절 가능 2. etcd 모든 클러스터 데이터를 담는 쿠버네티스 뒷단의 저장소로 사용되는 일관성, 고가용성 키-값 저장소 'key:value' 형식으로 node1, node2에 대한 정보를 저장 상태정보와 컨테이너가 동작중인 상태, 이미지 상태에 대한 정보를 저장 3. kube-scheduler node가 배정되지 않은 새로..

DevOps/Kubernetes 2022.08.23

[Kubernetes] 쿠버네티스란?

■ Kubernetes (K8s) 란? - 쿠버네티스는 컨테이너화 된 워크로드와 서비스를 관리하기 위한 '이식성'이 있고, '확장가능'한 Open Source Platform ※ 워크로드란? - 쿠버네티스에서 구동되어지는 애플리케이션 ■ Kubernetes 가 탄생하게 된 배경 1. Traditional Deployment - Dedi Server - 보시는 바와 같이 애플리케이션 물리 서버에서 실행 - 하나의 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없음, 따라서 리소스 할당에 문제가 발생 - 리소스가 충분히 활용되지 않는다는 점에서 확장 가능하지 않음 - 물리 서버를 많이 유지하기 위해서는 조직에게 많인 비용이 발생 2. Virtualized Deployment - Traditi..

DevOps/Kubernetes 2022.08.23

[kubernetes] Helm으로 Jenkins Deploy

※ 시작 전 EKS Cluster가 구축되어 있어야 한다! ■ k8s Cluster 에 Helm을 이용하여 Jenkins Deploy 1. AWS EBS (Persistent Volume) Pod가 삭제 후 재생성 되어도 Pod 내부의 내용을 보존하기 위해 독립적인 Persistent Volume 필요 필자는 AWS EBS를 Persistent Volume으로 사용할 것 EBS CSI Driver 를 Cluster에 배포하여 EBS를 Persistent Volume으로 사용하도록 세팅하는 과정 ! 1) ServiceAccount에 필요한 권한을 정의한 IAM 정책 생성 'IAM' -> 정책 -> '정책 생성' 정책 내용 : example-iam-policy.json { "Version": "2012-10..

DevOps/Kubernetes 2021.11.12

[kubernetes] EKS Cluster 내부에 AWS RDS 구축

■ RDS 구축 1. DB 서브넷 그룹 생성 ☞ 'DB 서브넷 그룹 생성' 클릭 2. DB 서브넷 그룹 생성 ☞ EKS Cluster 내부에 Private Subnet에 구축하기 위해 가용영역과 하단 서브넷은 Private Subnet만 선택 ! 3. '데이터베이스 생성' 클릭 1) 연결 부분 설정 * VPC : EKS Cluster VPC 선택 * 서브넷 그룹 : 위에 생성한 그룹 선택 * 퍼블릭 액세스 : '예' * VPC 보안 그룹 : 새로 생성 * 추가구성 * 초기 데이터베이스 이름 설정 * 데이터베이스 생성 (시간이 꽤 걸림) ■ Bastion Host로 RDS 접근 1. 기존과 같은 방식으로 EC2 생성 ※ 단, VPC 설정 부분에 생성한 RDS와 같은 VPC 선택 즉, EKS Cluster ..

DevOps/Kubernetes 2021.11.10

[Kubernetes] AWS ALB Controller

■ ALB Controller 란? ■ ALB Controller Install ※ 기존 EKS Cluster가 존재해야 함 1. AWS ALB IAM 정책을 다운로드 (사용자 대신 AWS API를 호출해야 함) $ curl -o iam_policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.2.0/docs/install/iam_policy.json 2. 다운로드 한 정책을 이용해 IAM 정책을 만듬 $ aws iam create-policy \ --policy-name [IAM 정책 이름] \ --policy-document file://iam_policy.json ☞ 정책 생성 시 'IAM..

DevOps/Kubernetes 2021.11.10

[kubernetes] EKS Install

■ Amazon EKS 란? · Kubernetes를 쉽게 실행할 수 있는 관리형 서비스 · AWS 환경에서 Kubernetes Control-plane 또는 node를 직접 설치, 운영 및 유지할 필요가 없음 · 여러 가용 영역(AZ) 에서 Kubernetes Control-plane을 실행하여 고가용성(HA)를 보장 · 비정상 Control-plane Instance를 자동으로 감지, 교체하며 자동화 된 버전 업그레이드 및 패치를 제공 참고 : https://aws-eks-web-application.workshop.aws/ko/10-intro/200-eks.html Amazon EKS로 웹 애플리케이션 구성하기 Amazon EKS Amazon EKS에 대하여 Amazon EKS는 Kubernetes..

DevOps/Kubernetes 2021.10.27

[k8s] kubespray 로 k8s Install

■ k8s (Kubernetes) 란? https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/ 쿠버네티스란 무엇인가? 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하 kubernetes.io · 컨테이너 오케스트레이션 시스템 종류 중 하나 · 어플리케이션 동작이 목적 · 격리된 환경에서 동작할 경우 안전성 확보 · 리눅스 프로세스 자원을 격리 사용 (cgroup / chroot) => Isolate 기능 제공 (컨테이너) 장점 (제공하는 기능) 단점 (지원하지 않는 기능) 컨테이너 플랫폼 (오케스트레이션) ..

DevOps/Kubernetes 2021.10.23