본문 바로가기

반응형
[Kubernetes] Pod에 Resource 할당하기 Pod Resource 요청 및 제한 Resource Requests - 파드를 실행하기 위한 최소 리소스 양을 요청 Resource Limits - 파드가 사용할 수 있는 최대 리소스 양을 제한 - memory limit을 초과해서 사용되는 파드는 종료(OOM Kill) 되며 다시 스케줄링 된다. requests 설정 apiVersion: v1 kind: Pod metadata: name: nginx-pod-resource spec: containers: - name: nginx-container image: nginx:1.14 ports: - containerPort: 80 protocol: TCP resources: requests: memory: 500Mi cpu: 1 kubectl describ..
[Kubernetes] static Pod 만들기 static container - API에게 요청 보내지 않음 - kubelet Daemon에 의해 동작되는 Pod - API 서버 없이 특정 노드에 있는 kubelet 데몬에 의해 직접 관리 - /etc/kubernetes/manifests/ 디렉토리에 k8s yaml 파일을 저장 시 적용됨 - static pod 디렉토리 구성 # vi /var/lib/kubelet/config.yaml ... staticPodPath: /etc/kubernetes/manifests 디렉토리 수정시 kubelet 데몬 재실행 # systemctl restart kubelet staticPodPath: /etc/kubernetes/manifests 확인 가능 cat /var/lib/kubelet/config.yaml a..
[Kubernetes] Kubernetes 1.2 version 부터 Docker 사용 중단 Kubernetes 1.2 version 부터 Docker 사용 중지(deprecation) 쿠버네티스는 컨테이너 런타임과 통신할 때 CRI 라는 표준 인터페이스 API를 사용하지만 Docker는 이를 지원하지 않습니다. 이런 이유로 쿠버네티스는 "dockershim"라는 브리지 용 서비스로 Docker API와 CRI의 변환을 해주었으나, 이것이 deprecation 되면서 앞으로 마이너 릴리스 된 후에 삭제 예정입니다. 쿠버네티스에서 dockershim가 사용 중지 되면서 자동으로 Docker 할 수 없게 되었습니다. 이제 쿠버네티스에서는 CRI를 지원하는 컨테이너 런타임만 사용하게 됩니다. CRI에 지원하는 컨테이너 런타임은 cri-o와 continerd 가 있습니다. 1. 쿠버네티스는 왜 도커 지..
[Kubernetes] Pod - init container & infra container init container를 적용한 Pod - 앱 컨테이너 실행 전에 미리 동작시킬 컨테이너 - 본 contrainer가 실행되기 전에 사전 작업이 필요할 경우 사용 - 초기화 컨테이너가 모두 실행된 후에 앱 컨테이너 cat init-container-exam.yaml apiVersion: v1 kind: Pod metadata: name: myapp-pod labels: app: myapp spec: containers: - name: myapp-container image: busybox:1.28 command: ['sh', '-c', 'echo The app is running! && sleep 3600'] initContainers: - name: init-myservice image: busyb..
[Nexus] Nexus 3 AWS EC2 설치 Nexus 설치 요구사항 1vCPU & 2GB 메모리 22 port & 8081 포트 오픈 OpenJDK 8 이상 Nexus 프로세스는 root 계정이 아닌 Nexus 사용자로 실행 공식 문서 시스템 요구사항 참고 https://help.sonatype.com/repomanager3/product-information/system-requirements 1. yum 패키지 업데이트 sudo yum update -y 2. OpenJDK 1.8 & weget 설치 sudo yum install java-1.8.0-openjdk.x86_64 -y sudo yum install wget -y 3. Nexus 설치를 위한 디렉토리 생성 sudo mkdir /app && cd /app 4. Nexus 다운로드 su..
[Nexus] Nexus 란? Nexus 란? - Sonatype에서 만든 저장소 관리자 프로젝트 - 다양한 Format의 사설 저장소를 만들 수 있으며 메인 저장소를 Cache 할 수 있는 기능 또한 제공하여 저장소를 관리할 수 있도록 도와주는 관리자 도구 - Maven에서 사용할 수 있는 가장 널리 사용되는 무료 저장소 - 라이브러리 및 도커 이미지 관리 용도로 사용 ※ Maven : Java용 프로젝트 관리 도구 Nexus 필요성 - 회사/단체의 화이트 리스트로 인해 외부 리포지토리에 접속하기 어려운 경우 Proxy 역할 - 특히 비상시 외부 인터넷이 느리거나 리포지토리가 다운되는 등 여러 상황에서도 빠르게 받을 수 있음 - 현재 Maven에 올라와 있지 않은 자료를 효율적으로 관리 하기 위해서 - 한번 다운로드 받은 depen..
[Kubernetes] Pod - livenessProbe Liveness Probe - pod가 계속 실행할 수 있음을 보장 - Pod의 spec에 정의 # pod-definitaion apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx-container image: nginx:1.14 # livenessProbe-definitaion apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx-container image: nginx:1.14 livenessProbe: httpGet: path: / port: 80 Liveness Probe 매커니즘 1. httpGet prob..
[GitLab] GitLab Data 저장소 위치 변경 GitLab 초기 설치시 Data 저장소(git-data)의 초기 위치는 아래 위치에 설정 되어있습니다. /var/opt/gitlab/git-data GitLab Data 저장소 위치를 변경하기 위해서는, /etc/gitlab/gitlab.rb 파일 내 주석을 해제한 후 저장소 위치를 설정한다. # git_data_dirs({ # "default" => { # "path" => "/mnt/nfs-01/git-data" # } # }) git_data_dirs({ "default" => { "path" => "/data/git-data" } }) 지정한 디렉토리가 실제 존재하는지 확인 후 없으면 생성하고, git 계정이 지정 디렉토리에 접근할 수 있도록 권한도 설정한다. mkdir -p /data/git-..

반응형