이번 글은 Kubernetes 관련해서 유용한 동영상 컨텐츠를 게시해 주시는 Just me and Opensource님의 게시물 중 "[ Kube 94 ] Kubernetes with Containerd on Ubuntu using Vagrant"를 베이스로 하여 작성되었습니다. (사전 협의 완료) 이 글에서는 Azure 상에 VM을 생성하고 그 위에 Vagrant를 사용하는 Containerd 런타임을 가지는 Kubernetes 클러스터 생성하는 내용을 정리해 봅니다. 보다 나은 이해가 필요하시면 원본 영상을 함께 보시며 진행하는 것도 좋을 듯 합니다. ### 2022.04.26 업데이트 사항 vagrant up 명령 수행 시 "host-only network is not within the allow..
들어가기 앞서 본 게시글의 가장 큰 취지는 쿠버네티스를 배우고자 하시는 분들이라면 한번 쯤 겪으셨을 복잡스런 설치 과정을 보다 용이하게 자동화 설치해본다는데 있으며, 향후 쿠버네티스 학습을 위한 테스트 환경을 Minikube 수준에서 한 단계 더 나아가 다중 노드로 직접 구성해 본다는 데 또 다른 의미가 있을 것입니다. 본 환경은 학습을 위한 테스트 용도임을 강조드리며 Azure계정을 사전에 준비해 주시고, 효과적인 학습을 위해 가급적 본 실습을 진행 전 또는 진행 후 공식가이드 등을 통한 설치과정을 직접 체험해 보실 것을 권장드립니다. [20210926 업데이트 공지] - Flannel API 버전 오류 정정 - 검증용 설치 문서 작성 : 클러스터 설치까지만 검증 (대시보드 생성 부분부터는 생략) 20..
3. Ansible을 활용한 자동 배포 먼저 관련 소스를 다운로드 받기 위해 git을 설치가 필요하다. [root@zero-gcp-vmc ~]# yum install git Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.usc.edu * epel: mirror.layeronline.com * extras: mirror.mobap.edu * updates: mirror.chpc.utah.edu Resolving Dependencies Installed: git.x86_64 0:1.8.3.1-20.el7 Dependency Installed: perl-Error.noarch 1:0.17020-2...
들어가기 앞서 본 게시글의 가장 큰 취지는 쿠버네티스를 배우고자 하시는 분들이라면 한번 쯤 겪으셨을 복잡스런 설치 과정을 보다 용이하게 자동화 설치해본다는데 있으며, 향후 쿠버네티스 학습을 위한 테스트 환경을 Minikube 수준에서 한 단계 더 나아가 다중 노드로 직접 구성해 본다는 데 또 다른 의미가 있을 것입니다. 참고로, 배포 대상을 GCP로 선정한 것은 별 뜻이 없으며(Azure용 구성도 별도 게시 예정), Azure, AWS 또는 로컬 VM, On-Premises 환경에서도 활용이 가능합니다. 본 환경은 학습을 위한 테스트 용도임을 강조드리며 GCP, Azure 또는 AWS 계정을 사전에 준비해 주시고, 효과적인 학습을 위해 가급적 본 실습을 진행 전 또는 진행 후 공식가이드 등을 통한 설치과..
https://kubernetes.io/docs/tutorials/k8s201/ K8S 201에서는, 101에서 남겨둔 것을 마저 진행하고 애플리케이션 생산, 디플로이먼트 그리고 스케일링에 관한 K8S의 다소 보다 상급 수준의 토픽를 다루게 된다.Kubernetes 101을 살펴 보았다면, kubectl, 파드, 볼륨 그리고 여러 개의 컨테이너에 대해 배웠을 것이다. Objectives파드에 레이블 추가디플로이먼트 다루기서비스 다루기헬스체크의 정의 Before you beginK8S 클러스터가 필요하며, 클러스터와 커뮤니케이션할 수 있도록 구성되어진 kubctl 커맨드-라인 툴도 필요하다. 아직 클러스터를 보유하지 않고 있다면, Minikube 를 이용하여 생성할 수 있으며, 또는 다음 두 개의 (웹 기..
https://kubernetes.io/docs/tutorials/k8s101/ K8S 101에서는 kubectl, 파드, 볼륨 그리고 여러개의 파드들을 다룬다. Objectiveskubectl의 정의파드 다루기볼륨의 생성과 마운트파드 내 여러 개의 컨테이너 생성하기 Before you beginK8S 클러스터가 필요하며, 클러스터와 커뮤니케이션할 수 있도록 구성되어진 kubctl 커맨드-라인 툴도 필요하다. 아직 클러스터를 보유하지 않고 있다면, Minikube 를 이용하여 생성할 수 있으며, 또는 다음 두 개의 (웹 기반 대화형 가상 터미널 환경의) K8S 실습 도구를 이용할 수 있다. KatacodaPlay with Kubernetes 버전 확인을 위해 kubectl version 을 수행한다.. ..
https://kubernetes.io/docs/tutorials/services/source-ip/ K8S 클러스터에서 동작중인 애플리케이션은 서비스 추상화를 통해 서로 서로, 그리고 외부 세상를 인지하고 커뮤니테이션 한다, 이 문서는 상이한 형태의 서비스에 전송된 패킷의 출발지 IP에 무슨 일들이 일어나고 있는지 설명하고, 어떻게 필요에 따라 이 동작방식을 토글(toggle) 시킬 수 있는지에 대해 설명한다. Objectives다양한 서비스 방식을 통해 간단한 애플리케이션을 노출한다.각 서비스 방식이 어떻게 출발지 IP NAT를 다루는지 이해한다.출발지 IP 보존에 관한 트레이드오프(tradeoff)를 이해한다. Before you beginK8S 클러스터가 필요하며, 클러스터와 커뮤니케이션할 수 있..
https://kubernetes.io/docs/tutorials/clusters/apparmor/ FEATURE STATE: Kubernetes v1.4 betaAppArmor는 리눅스 커널 보안 모듈로 제한된 리소스 셋에 대해 프로그램을 한정시키기 위해 퍼미션을 기반으로 표준 리눅스 사용자와 그룹 정책을 보완해준다. AppArmor는 잠재적인 공격영역을 축소시키고 단단한 철벽 방어력을 제공할 수 있도록 어떤 임의의 애플리케이션에 대해서도 구성이 가능하다. 리눅스 처리용량, 네트워크 접근, 파일 퍼미션 등과 같이 특정 프로그램 또는 컨테이너에 의해 요구되어지는 접근은 화이트리스트에서 조율한 프로파일을 통해 구성된다. 각 프로파일은 허용하지 않은 리소스에 대한 접근을 차단시키는 "enforcing" 모드..
https://www.linux.com/blog/learn/chapter/intro-to-kubernetes/2017/6/set-cicd-distributed-crossword-puzzle-app-kubernetes-part-4 이 시리즈 중 마지막 파트에서는, Kr8sswordz Puzzle 앱을 위한 CI/CD hooks 을 설정할 것이다. 시리즈 중 Part 3에서, Kr8sswordz Puzzle 앱를 동작하도록 했고, 부하 테스틀를 위해 여러 개의 인스턴스를 구동하도록 하고 K8S가 클러스터를 걸쳐서 방대한 요청을 우아하게 조정하는 것을 지켜보았다. Part 2에서 Hello-Kenzan 앱과 함께 사용할 Jenkins 를 설치하기는 했지만, Kr8sswordz Puzzle 앱에 대한 CI/CD..
https://www.linux.com/blog/learn/chapter/intro-to-kubernetes/2017/6/run-and-scale-distributed-crossword-puzzle-app-cicd-kubernetes-part-3 시리즈의 3회차에서는, Kr8sswordz Puzzle 애플리케이션을 동작시키는 메인 이벤트를 시작해 본다. 시리즈 중 Part 2에서, K8S 클러스터 안으로 Jenkins 파드를 배포했고, 이것을 이용하여 K8S 안에 컨테이너로 만든 Hello-Kenzan 애플리케이션을 자동으로 빌드하고 배포하는 CI/CI 파이프라인을 설치했다. 대단한 성과였지만, 여기서 멈추지 않는다. Part 3에서는, Hello-Kenzan 애플리케이션은 잠시 치워두고 주요 이벤트인 ..