Kubernetes(k8s) (33) 썸네일형 리스트형 Harbor 1. Harbor 1.1. 정의 Harbor는 정책 및 역할 기반 액세스 제어로 아티팩트를 보호하고, 이미지를 스캔하고 취약성이 없도록 하며, 이미지를 신뢰할 수 있는 것으로 서명하는 오픈 소스 레지스트리이다. Harbor는 규정 준수, 성능 및 상호 운용성을 제공하여 Kubernetes 및 Docker와 같은 클라우드 네이티브 컴퓨팅 플랫폼에서 아티팩트를 일관되고 안전하게 관리할 수 있도록 지원한다. 1.2. 설치 1) 관리 디렉토리 ch13생성 [kevin@ubu22-01 ~ (kubernetes-admin@cluster.local:kube-system)]$ mkdir ch13 2) helm에 harbor repo추가 [kevin@ubu22-01 ~ (kubernetes-admin@cluster.lo.. 좀비 Pod 1. 좀비 Pod 1.1. 정의 ReplicaSet이 삭제가 되지 않아 pod를 강제로 지워도 좀비처럼 다시 살아나는 문제. 1.2. 해결 방법 Deployment 자체를 삭제해야 한다. 그러면 pod 및 ReplicaSet이 삭제 된다. 1.3. 예시 1) 모든 Deployment 확인 [vmadmin@ubu22-01 ~ (kubernetes-admin@cluster.local:kube-system)]$ kubectl get deployments --all-namespaces NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE default nginx-hello 5/5 5 5 19h kube-system calico-kube-controllers 1/1 1 1 8d kub.. Production 환경에서 고려해야할 kubernetes 이슈 1. Production 환경에서 고려해야할 kubernetes 이슈 ● 메모리 과부하 이슈 ( Memory overload ) ● IO 과부하 이슈 ( IO overload ) ● SNAT 포트 부족 (SNAT port exhaustion ) ● Master(Control plane) 과부하 (Control plane overload) ● 리소스 할당량 부족 ( Insufficient quota ) ● 네트워크 설정오류 ( Network misconfiguration ) 1.1. 메모리 과부하 이슈 ( Memory overload ) ● 메모리 과부하 이슈로 인한 증상 ○ 사용자의 pod가 강제종료(evicted) ○ 사용자의 pod가 Out of Memory로 인한 제거 (OOMKilled) ○ Ku.. MetalLB 1. MetalLB 1.1. 정의 Kubernetes 사용 시 AWS, GCP, Azure와 같은 클라우드 플랫폼에서는 자체적으로 로드 밸런서를 제공해 주지만, 온프레미스 클러스터에서는 로드 밸런싱 기능을 제공하는 모듈을 추가적으로 설치해야 한다. MetalLB는 BareMetalLoadBalancer 약자로 베어메탈 환경에서 사용할 수 있는 로드 밸런서를 제공하는 오픈소스 프로젝트이다. 클라우드 환경의 서비스(로드밸런서 타입)와는 동작이 조금 다르다. 서비스(로드밸런서)의 External IP 전파를 위해서 표준 프로토콜인 ARP(IPv4)/NDP(IPv6),BGP를 사용한다. 데몬셋으로 speaker 파드를 생성하여 External IP를 전파한다. 1.2. 설치 방법 1) 설정 파일 변경 # k8s.. 서비스 1. 서비스 1.1. 정의 pod 집합에서 실행 중인 애플리케이션을 네트워크 서비스로 노출하는 추상화 방법이다. 1.2. 종류 ● Cluster IP Cluster IP는 클러스터 안에 있는 다른 Pod들이 접근할 수 있도록 IP를 할당한다. 내부 IP만을 할당하기 때문에 클러스터 외부에서는 접근이 불가능하다. apiVersion: v1 kind: Service metadata: name: my-internal-service spec: selector: app: my-app type: ClusterIP ports: - name: http port: 80 targetPort: 80 protocol: TCP ● NodePort NodePort는 고정 포트로 Pod이 배포된 노드들의 IP에 서비스를 노출시킨다.. Helm 1. Helm 1.1. 정의 다양한 리소스를 각각 관리하지 않고 하나의 패키지로 관리하는 도구이다. 리눅스 환경에서 yum, apt 등이 애플리케이션에 필요한 모든 라이브러리를 패키지 형태로 제공하는 것과 유사하다. 헬름의 주요 개념 3가지로 헬름 차트, 헬름 리포지토리, 헬름 템플릿이 있다. 1.2. 헬름 차트 일반적으로 ‘차트’라는 용어는 그래프를 의미하지만 헬름에서의 차트는 애플리케이션 설치에 사용되는 네트워크, 스토리지, 보안과 관련된 여러 k8s 리소스를 묶어놓은 패키지를 의미한다. 헬름 차트를 통해 애플리케이션을 설치할 때 개별리소스마다 하나씩 별도로 설치하지 않고 헬름차트 하나로 일괄 설치할 수 있다. 1.2.1. 헬름 차트 디렉토리 구조 파일 및 디렉토리 설명 Chart.yaml 차트에 대.. Kubernetes dashboard 1. Kubernetes dashboard 1.1. 정의 대시보드는 웹 기반 쿠버네티스 유저 인터페이스이다. 대시보드를 통해 컨테이너화 된 애플리케이션을 쿠버네티스 클러스터에 배포할 수 있고, 컨테이너화 된 애플리케이션을 트러블 슈팅 할 수 있으며, 클러스터 리소스들을 관리할 수 있다. 대시보드를 통해 클러스터에서 동작 중인 애플리케이션의 정보를 볼 수 있고, 개별적인 쿠버네티스 리소스들을(예를 들면 디플로이먼트, 잡, 데몬 셋 등) 생성하거나 수정할 수 있다. 예를 들면, 디플로이먼트를 스케일하거나, 롤링 업데이트를 초기화하거나, 파드를 재시작하거나 또는 배포 마법사를 이용해 새로운 애플리케이션을 배포 할 수 있다. 또한 대시보드는 클러스터 내 쿠버네티스 리소스들의 상태와 발생하는 모든 에러 정보를 제.. Secret 1. Secret 1.1. 정의 시크릿은 암호, 토큰 또는 키와 같은 소량의 중요한 데이터를 포함하는 오브젝트이다. 이를 사용하지 않으면 중요한 정보가 파드 명세나 컨테이너 이미지에 포함될 수 있다. 시크릿을 사용한다는 것은 사용자의 기밀 데이터를 애플리케이션 코드에 넣을 필요가 없음을 뜻한다. 1.2. 사용 목적 시크릿을 사용하는 파드와 독립적으로 생성될 수 있기 때문에, 파드를 생성하고, 확인하고, 수정하는 워크플로우 동안 시크릿(데이터)이 노출되는 것에 대한 위험을 경감시킬 수 있다. 쿠버네티스 및 클러스터에서 실행되는 애플리케이션은 비밀 데이터를 비휘발성 저장소에 쓰는 것을 피하는 것과 같이, 시크릿에 대해 추가 예방 조치를 취할 수도 있다. 1.3. 종류 1.3.1. Opaque(generic).. 이전 1 2 3 4 5 다음