Cloud/Kubernates 9

# k8s Pod Security Policy 적용 - 퍼블릭 클라우드 환경을 사용하지 않을 때

Pod Security Policy (이하 PSP) 란? k8s에는 SecurityContext라는 기능이 존재한다. SecurityContext는 Container의 보안 기능을 정의하는 것인데, 개인적으로 PSP는 이 SecurityContext의 확장판이라고 생각한다. PSP(포드 보안 정책)은 포드 사양의 보안 관련 측면을 제어하는 ​​클러스터 수준 리소스이다. PSP 객체는 관련 필드에 대한 기본값 뿐만 아니라 시스템에 적용하기 위해 포드가 실행해야 하는 조건 세트를 정의한다. 관리자는 다음을 제어 할 수 있다. 제어 목록 필드명 Container의 실행 권한 privileged 호스트 네임 스페이스의 사용 hostPID, hostIPC 호스트 네트워킹 및 포트의 사용 hostNetwork, h..

Cloud/Kubernates 2020.02.04

# k8s 유용한 명령어

이 글은 앞으로 계속 업데이트 될 것이다. k8s에서 자주 사용하거나 유용했던 명령어들 정리하는 글이다. k8s 공식 문서로 명령어 / 사용법이 잘 나와있다. https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#scale 1. k8s replica 수 조정 # 특정 replicaset의 replica 수 조정 $ kubectl scale --replicas=3 rs/ # 특정 yaml 서비스의 replica 수 조정 $ kubectl scale --replicas=1 -f 1.hello-deployment.yaml

Cloud/Kubernates 2019.10.31

# k8s Horizontal Pod Autoscaler (HPA) 실습 - 2

지난 글 (# k8s Horizontal Pod Autoscaler (HPA) 실습 - 1)에 이어서 이번엔 Memory 부하 테스트에 따른 Autoscaling을 실습을 진행하겠다. 사실 k8s를 공부하면서 가장 힘든 것은 버전 up에 따른 이슈들인데, 버전 up에 따른 API 변경 사항이 너무 많다. 물론 기본 예제들은 공식 사이트에 잘 나와있으나, k8s 입문자들이 관련 예제를 블로그 등의 정보를 가지고 조금 응용해보려고 하면 버전 문제 등으로 금방 막혀버린다. 그래서 내가 겪어봤을 때 가장 좋은 방법은 무턱대고 블로그 자료를 복붙 하기 보다 역시나 공식 문서를 활용하는 것이다. k8s의 API 문서를 보고 적어도 내가 적용하려는 버전의 해당 기능과 관련된 필드에는 어떤 값들이 들어가는지, 바뀐 것..

Cloud/Kubernates 2019.10.31

# k8s Horizontal Pod Autoscaler (HPA) 실습 - 1

지난 글(# k8s Pod Autoscaling 개념)에서 쿠버네티스의 Pod Autoscaling 개념에 대해 간단히 알아보았으니, 이번엔 실제 예제를 통해 어떻게 동작하는지 확인해보자. [실습 순서] 1. Metrics Server 기동 2. k8s 공식 문서 예제 실습 k8s의 Pod Autoscaling 기능을 구현하려면 반드시 선행되어야 하는 작업이 있다. 바로 Metrics Server 기동이다. Autoscaling을 하려면 k8s가 각 pod, node의 리소스 상태를 모니터링 할 수 있어야 한다. 이때, 리소스 상태 모니터링을 위해 사용되는 것이 Metrics Server이다. Metrics Server 없이 Autoscaler를 사용하려고 하면 아래와 같은 에러가 발생할 것이다. fai..

Cloud/Kubernates 2019.10.23

# k8s Pod Autoscaler 개념

k8s Pod Auto Scaling 이란? 클라우드의 핵심은 리소스 관리이다. 이는 서비스 중인 Application의 리소스가 부족할 때, 쿠버네티스가 이를 스스로 파악하여 적절한 대처(Pod를 늘리는 것, 리소스를 추가 할당 등)를 해주는 것을 말한다. 이것을 Auto Scaling이라 부르며, 쿠버네티스에서는 아래 3가지 방안으로 그 기능을 제공한다. 1. Horizontal Pod Autoscaler (HPA) HPA는 클러스터의 Pod 복제본 수를 조정 Pod 이동은 필요에 따라 함(CPU 또는 사용자 정의 메트릭) 다양한, 외부 및 사용자 정의 메트릭 (metrics.k8s.io, external.metrics.k8s.io 및 custom.metrics.k8s.io)에 따라 포드 (Pod)를..

Cloud/Kubernates 2019.10.23

# k8s 외부 ETCD HA 구성

이전 글 ( "# k8s + keepalived + haproxy HA 구성" ) 에서는 쿠버네티스의 클러스터에 대한 HA 구성을 진행했다. ETCD란? 쿠버네티스의 모든 클러스터 데이터를 담는 일종의 DB로 사용되며, 클러스터의 각종 서버 정보와 상태 정보를 key-value 형태로 저장한다. Kubeadm은 기본적으로 kubelet에 의해 관리되는 static pod에서 Single Member ETCD 클러스터를 실행합니다. 이렇게 Single Member ETCD는 서버가 Down되게 된다면, 고 가용성을 유지할 수 없다. 따라서 kubeadm을 사용하여 kubernetes 클러스터를 설정할 때 외부 ETCD로 사용할 수있는 3개의 멤버로 구성된 고 가용성 ETCD 클러스터를 만드는 방법에 대해 ..

Cloud/Kubernates 2019.09.10

# k8s + keepalived + haproxy HA 구성

k8s(쿠버네티스)는 여러 장점을 가진 컨테이너 제공 플랫폼이지만 단일 서버로만 서비스를 제공한다면, 그 서비스는 언제든 중단될 수 있는 불완전한 서비스일 것이다. 따라서 쿠버네티스는 HA 구성을 지원한다. HA란? High Availavility의 약자로 고 가용성을 뜻하며, 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 말한다. [ k8s HA 구성 전 필수 확인 사항 ] kubeadm의 최소 요구 사항을 충족하는 3대의 Master 시스템 kubeadm의 최소 요구 사항을 충족하는 3대의 Worker 시스템 클러스터의 모든 시스템 (공용 또는 개인 네트워크) 간의 모든 네트워크 연결 모든 장치에 대한 sudo 권한 하나의 장치에서 모든 노..

Cloud/Kubernates 2019.09.06

# k8s + docker 개념

k8s란? 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다. 쿠버네티스는 선언적 구성과 자동화를 모두 용이하게 해준다. 쿠버네티스는 크고, 빠르게 성장하는 생태계를 가지고 있다. 쿠버네티스 서비스, 기술 지원 및 도구는 어디서나 쉽게 이용할 수 있다. 즉, 쿠버네티스는 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 제공한다. 확장 요구 사항, 장애 조치, 배포 패턴 등을 처리한다. 쿠버네티스는 컨테이너의 실행 및 관리를 위한 프로그램으로 다양한 클라우드 및 베어메탈(어떤 소프트웨어도 담겨있지 않은 하드웨어) 환경을 지원한다. POD 단위로 관리되며, 하나의 POD는 가상화 서버로 여러 컨테이너가 수행될 수 있다. POD는 자신을 동작시키기 ..

Cloud/Kubernates 2019.09.06