Cloud
[Kaniko] Gitlab CI를 위해 Docker 대신 사용할 수 있는 이미지 빌드 툴
Docker 대신 Kaniko로 빌드 테스트를 하게 된 이유 Helm을 사용하여 쿠버네티스에 Gitlab을 배포하면, GItlab 내부에서 공유 가능한 Gitlab Runner(Option)가 같이 설치됩니다. Gitlab Runner에서 컨테이너 이미지 빌드를 위해 보통 docker를 사용하지만,쿠버네티스의 CRI가 containerd인 환경에서는 Docker를 사용한 이미지 빌드를 사용할 수 없기 때문에 Kaniko로 빌드 테스트를 진행하게 되었습니다. Kaniko를 이용한 Docker 이미지 빌드 Kaniko는 쿠버네티스 클러스터나 컨테이너 내에서 Dockerfile을 사용하여 컨테이너 이미지를 빌드하기 위한 도구입니다. Kaniko는 Docker-in-Docker를 사용한 빌드에서 발생하는 두가지..
[v1.21] Kubeadm + Containerd + Calico + NFS-Provisioner + Ingress-Nginx 설치
21.05.22 현재 최신 버전인 v1.21 기준으로 쿠버네티스 클러스터 세팅을 기록해두려고 한다. 구축환경 Hyper-V Controlplane : 2CPU, 3GB MEM, 20GB STORAGE, Bridge Network node01 : 2CPU, 4GB MEM, 15GB STORAGE, Bridge Network node02 : 2CPU, 4GB MEM, 15GB STORAGE, Bridge Network nfs : 1CPU, 1GB MEM, 110GB(10GB SSD + 100GB HDD) STORAGE, Bridge Network OS Ubuntu 20.04 LTS Server Cluster Kubernetes : Kubeadm CRI : Containerd Network Addon : Ca..
[Oracle Cloud] 로드밸런서 건전성 체크 실패
증상 오라클 클라우드의 로드밸런서 생성 후 건전성 체크가 실패한다. 건전성 체크가 실패하게 되면 로드밸런서의 백엔드로 선택된 서버로의 통신이 실패하게 된다. 원인 오라클 클라우드 로드밸런서의 건전성 체크는 기본적으로 백엔드의 IP:PORT의 형식으로 80(HTTP)번 포트를 체크하도록 기본 설정되어 있다. 그리고 응답으로 status code 200을 얻어야 정상으로 간주한다. 하지만 나의 경우 쿠버네티스 인그레스에서 특정 호스트와 경로가 설정되어 있기 때문에 IP:PORT 방식의 건전성 체크에 대해서는 status code 404를 되돌려주게 된다. 건전성 체크가 실패하게 되면, 오라클 클라우드의 로드밸런서 단에서 status code 404를 클라이언트에게 돌려준다. 해결 80번 포트 대신에 22(s..
[kubeadm] kubernetes에 metrics-server 설치하기
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml kubectl edit deploy -n kube-system metrics-server 더보기 apiVersion: apps/v1apiVersion: apps/v1 kind: DeploymentapiVersion: apps/v1 kind: Deployment metadata: name: metrics-server namespace: kube-system labels: k8s-app: metrics-serverapiVersion: apps/v1 kind: Deployment metadata: name: metric..
[kubeadm] Hyper-V를 사용한 Kubernetes 설치
Windows의 Hyper-V를 사용하여 Ubuntu 운영체제를 설치하고, Docker와 Kubeadm을 사용한 Kubernetes의 설치를 다룹니다. 개요 kubeadm을 사용한 설치 방법입니다. kubernetes의 주요 구성요소들을 Pods로 배포하고 실행합니다. Windows Hyper-V VMs(ControlPlane, Node01, Node02) Ubuntu Kubeadm Kubernetes Docker Hyper-V 이미지 다운로드 Get Ubuntu Server | Download | Ubuntu Get Ubuntu Server one of three ways; by using Multipass on your desktop, using MAAS to provision machines in ..
[Docker Desktop] 도커 데스크탑 쿠버네티스 인그레스 컨트롤러 설치
개요 도커 데스크탑을 설치하면 쿠버네티스를 활성화할 수 있습니다. 도커에서 새로운 이미지를 빌드하고, 클라우드에서 운영중인 쿠버네티스 환경에 배포하기 전 테스트를 진행할 공간이 필요할 때 유용하게 사용할 수 있습니다. 이 글에서는 도커 데스크탑 쿠버네티스에 인그레스 컨트롤러를 설치하고, 미리 정의된 주소로 접근하는 과정을 다룹니다. 인그레스 인그레스는 쿠버네티스 클러스터로 HTTP(80)와 HTTPS(443)을 이용하여 접근하는 트래픽을 관리합니다. 접근 주소, 경로에 따라 여러 서비스들을 관리할 수 있습니다. 인그레스 컨트롤러 쿠버네티스에는 이 인그레스 기능을 위한 컨트롤러를 플러그인 처럼 따로 설치해야 사용할 수 있습니다. 인그레스 컨트롤러 종류는 여러가지가 있으며, 이중 쿠버네티스 프로젝트에서 공식..
[K3S] 쿠버네티스 마스터 노드 부하 줄이기
개요 오라클 클라우드 프리티어에 K3S를 설치하여 사용하던 중 마스터 노드가 느려지거나 멈추는 현상이 생겼다. 아무것도 건들지 않았는데 자연적으로 멈출때도 있었고, 무언가 컴포넌트를 추가했을 때에 느려지거나 멈추는 현상이 확실히 보였다. 증상은 아래와 같다. ssh 접속 지연 및 멈춤 kuber-api 응답 지연 및 멈춤 kubernetes에서 운영중인 서비스 응답 멈춤 문제점 메모리 사용률 평소 85%정도의 메모리를 사용중인데, 추가적으로 컴포넌트를 사용하게 되면 메모리 점유율이 증가하다가 멈추는 현상을 볼 수 있다. 위 사진은 추가 컴포넌트를 설치하여 메모리 점유율이 증가하여 멈춘 그래프이지만, 가만히 운영중에도 메모리 점유율이 천천히 증가하다 멈추는 경우도 있었다. 컨트롤 플레인 컴포넌트 마스터 노..
[k3s] 쿠버네티스 busybox 최신 이미지 사용시 dns 조회 불가
문제점 k3s 쿠버네티스 포트폴리오 프로젝트를 진행하면서 서비스의 이름으로 dns 조회 테스트를 위해 busybox 이미지를 사용하여 nslookup으로 테스트를 진행하였지만 실패했다. k3s에서 자동으로 배포한 coredns에 문제가 있는지 찾아봤지만 설정상 문제는 없었다. 애초에 coredns에 문제가 있었다면 쿠버네티스 클러스터가 정상적으로 동작하지 않았을 것이다. 해결법 결론적으로 busybox:1.28 버전의 이미지를 사용하면 정상적으로 조회가 가능하다. 이것때문에 꼬박 하루정도는 날린 것 같다. busybox 이미지 태그 없이 사용시 최신버전에서 nslookup dns 조회에 문제가 있는 것 같다.