Kubernetes
-
Continuous Machine Learning 환경을 위한 Lab 환경 구축하기IT 2021. 9. 27. 20:39
Machine Learning 모델을 개발하다보면 개발 완료된 모델에 대한 지속적인 통합, 지속적인 배포 및 지속적인 학습을 고려해서 개발이 필요하며 처음에 시간이 좀 더 걸리더라도 이러한 MLOps 또는 GitOps 환경을 구축해두면 모델을 개발 및 유지보수 하는데 시간을 많이 절약할 수 있으며 이러한 시간 절감으로 인하여 같은 시간에 더욱 더 많은 모델을 개발 가능하게 된다. 이번 글에서는 Continouse Machine Learning 환경을 구축하기 위한 Lab 환경을 구축하여 간단한 모델을 개발해보고 MLOps와 GitOps를 이용한 지속적인 통합, 배포 및 학습 환경을 구현해보도록 한다. 전체적인 시스템 아키텍쳐는 아래 이미지와 같으며 시스템은 보안을 고려하여 최소한의 외부 접속을 고려하여 ..
-
Kubernetes SSO with OIDC and KeycloakIT 2021. 8. 20. 15:16
Kubernetes Cluster의 사이즈가 일정 수준 이상을 넘어서면 여러명의 개발자와 운영자가 같은 Cluster에 접근하게 된다. 여러명의 개발자/관리자 접근이 필요한 Cluster를 안전하게 운영하기 위해서는 복잡한 ACL 설정과 로깅은 필수이며 이는 운영에 많은 노력을 필요로하게 된다. 레거시 시스템에서는 이러한 문제를 해결하기 위해서 LDAP을 연동하여 문제를 해결해 왔다. 하지만 LDAP은 인증시마다 매번 아이디와 패스워드 입력이 필요하며 그룹을 이용한 정책을 기본으로 하기 때문에 최신 OIDC에서 제공하는 RBAC(Role Base Access Control)은 사용이 불가능하다. 이 글에서는 Keycloak의 OIDC 기능을 이용하여 Kubernetes에 접근하는 개발자 또는 운영자에게 ..
-
storage class in Kubernetes backed by Synology NFSIT 2021. 8. 14. 16:37
기존에 Kubernetes Persistant Storage로 Ceph를 사용하였다. 하지만 Homelab 환경이 Synology + Workstation으로 구성되어 있고 Ceph이 실행되고 있는 스토리지가 Synology이므로 이는 필연적으로 오버헤드가 발생 할 수 밖에 없다. 그리고 테스트를 하다보면 K8S를 새로 배포하는 일이 빈번한데 이때마다 Ceph를 계속 배포하는건 매우 번거로운 작업이므로 Layer를 하나 제거하여 좀 더 편리한 Homelab 환경을 구축해보고자 한다. Synology NAS 환경 설정 Synology에서 NAS 설정을 해주어야 한다. NAS 설정 작업은 구글 검색을 해보면 매우 많은 내용들이 있으므로 여기에서 따로 정리하지 않도록 하겠다. 세부적인 설정 방법은 Refere..
-
CKA 인증IT 2021. 1. 13. 21:23
2020년 11월 말에 등록한 CKA 시험을 21년 1월에 시험을 치고 최종 합격하였다. 전체적인 준비는 udemy CKA 강좌를 통해서 준비를 하였고, 챕터마다 이해가 잘 되지 않는 부분은 실습을 먼저 해보고 다시 강좌를 돌려봄으로써 좀 더 쉽게 이해를 할 수 있었다. 실무에서 Kubernetes Cluster 설치부터 설정까지 진행해서 남들 보다 쉽게 준비 할 수 있었지만 그렇다고 최종 점수는 높게 나오지 않은것 같다. 단기간에 준비한 시험으로는 운이 많이 작용했던것 같다. 21년에도 좀 더 준비해서 자격증 2개는 따 보도록 노력하자.
-
Kubernetes Ingress 설정 방법 (LoadBalancer)IT 2021. 1. 12. 22:25
k8s-ingress Kubernetes Cluster 구축 후 아마도 가장 먼저 확인하는 부분이 외부와의 접속 테스트일것이다. 관련 문서를 찾아보면 NodePort, LoadBalance와 MetalLB를 사용한 방법이 있는것을 확인 할 수 있다. NodePort를 사용하게 되면 Kubernetes를 구성하는 Worker Node에 동일한 포트가 오픈되며 Client와 Node 사이에 Reverse Proxy를 구성하여 내부 Ingress Controller에 접속 가능하도록 설정 할 수 있다. 하지만 이 구성의 경우 Reverse Proxy와 Worker Node 사이에 포트를 매번 설정하여 오픈하기 어렵고 worker 노드를 선택하여 접속이 필요하므로 좋은 방법이라고 할 순 없다. 이번 글에서는 E..
-
Kubernetes Cluster Version 업그레이드IT 2021. 1. 1. 13:26
CKA 준비 과정에서 명확하게 정리하지 못했던 클러스터 업그레이드 방법을 정리하였다. 버전 업그레이드 절차는 크게 3가지 과정으로 이루어진다. - Control plane node upgrade - Additional control plane node upgrade - worker node upgrade 테스트된 환경은 아래와 같다. - OS : CentOS 8 - Kubernetes Version : 1.18.5 - External ETCD 3ea, Control Plane 3ea, Worker 2ea - Cilium (CNI) - Rook Ceph (CSI) 먼저 업그레이드 할 버전을 확인한다. CentOS에서는 yum list 명령으로 확인 가능하다. 자세한 명령은 Kubernetes.io에 친절하..