클라우드/Kubernetes(쿠버네티스)
[쿠버네티스] 인그레스
인그레스란? 클러스터 외부에서 안에 있는 파드에 접근할 때 사용하는 방법 서비스와의 차이점은 주로 L7영역의 통신을 담당해서 처리한다는 것이다. 인그레스 개념 클러스터 외부에서 안으로 접근하는 요청들을 어떻게 처리할지 정의해둔 규칙 모음 클러스터 외부에서 접근해야 할 URL을 사용할 수 있도록 하고, 트래픽 로드밸런싱, SSL인증서 처리, 도메인 기반 가상 호스팅 등을 제공 인그레스 자체는 이런 규칙들을 정의해둔 자원이고, 실제로 동작시키는 것은 인그레스 컨트롤러이다. 클라우드 서비스를 사용하면 별다른 설정 없이 자체 로드밸런서 서비스와 연동해서 인그레스 사용할 수 있다. 클라우드 서비스를 사용하지 않고 직접 쿠버네티스 클러스터를 구축해서 사용한다면 인그레스 컨트롤러를 직접 인그레스와 연동해야한다. 이때..
[쿠버네티스] 서비스
서비스란? 여러 개 파드에 접근할 수 있는 IP하나를 제공한다. 다양한 기능을 제공하지만 본질적으로 로드밸런서 역할이다. 서비스의 개념 파드는 건트롤러가 관리하므로 한군데에 고정해서 실행되지 않고, 클러스터 안을 옮겨다닌다. 이 과정에서 노드를 옮기면서 실행되기도 하고 클러스터 안 파드의 IP가 변경되기도 한다. 이렇게 동적으로 변하는 파드들에 고정적으로 접근할 때 사용하는 방법이 쿠버네티스의 서비스이다. 서비스를 사용하면 파드가 클러스터 안 어디에 있든 고정 주소를 이용해 접근할 수 있다. 클러스터 외부에서 클러스터 안 파드에 접근할 수도 있다. 인스레스로도 접근할 수 있는데 서비스는 주로 L4영역에서 통신할 때 사용하고 인그레스는 L7영역에서 통신할 때 사용한다는 차이점이 있다. 상황에 따라 두 가지..
[쿠버네티스] 컨트롤러(데몬세트, 스테이트풀세트, 잡, 크론잡)
데몬세트 클러스터 전체 노드에 특정 파드를 실행할 때 사용하는 컨트롤러 클러스터 안에서 새롭게 노드가 추가되었을 때 데몬세트가 자동으로 해당 노드에 파드를 실행시킨다. 노드가 클러스터에서 빠졌을 때는 해당 노드에 있던 파드는 그대로 사라질 뿐 다른 곳으로 옮겨가서 실행되거나 하지 않는다. 그러므로 보통 로그 수집기를 실행하거나 노드를 모니터링하는 모니터링용 데몬 등 클러스터 전체에 항상 실행시켜두어야 하는 파드에 사용한다. 스테이트풀세트 상태가 있는 파드들을 관리하는 컨트롤러 볼륨을 사용해서 특정 데이터를 저장한 후 파드를 재시작했을 때 해당 데이터를 유지한다. 여러 개의 파드 사이에 순서를 지정해서 실행되도록 할 수 있다. 이렇게 어떠한 상태가 있어야 할 때 사용한다. 그레이스풀이란 실행 중인 프로세스..
[쿠버네티스] 컨트롤러(레플리케이션 컨트롤러, 레플리카세트, 디플로이먼트)
컨트롤러란? 파드들을 관리하는 역할을 한다. 다양한 목적에 맞게 사용할 수 있는 컨트롤러가 있다는 것이 쿠버네티스 장점 예1 ) 웹서비스처럼 오랜시간동안 계속 파드들을 관리할 때 > 레플리케이션 컨트롤러, 레플리카세트, 디플로이먼트 예2 ) 클러스터의 전체 노드에 같은 파드를 실행할 때는 데몬세트를 사용 예3 ) 1회성 작업을 할 때 사용하는 잡 예4 ) 주기적인 배치 작업을 실행할 때 사용하는 크론잡 레플리케이션 컨트롤러 지정한 숫자만큼의 파드가 항상 클러스터 안에서 실행되도록 리한다. 예 ) 파드 2개를 명시해둔 레플리케이션 컨트롤러가 있다면 장애나 다른 이유로 파드 갯수가 2개보다 적을 때 다시 새로운 파드를 실행해서 파드 개수를 2개로 맞춘다. 컨트롤러를 사용하지 않고 파드를 직접 실행하면 파드에..
[클라우드] PaaS-TA
파스타 대외협력 현황 파스타란? 누구나 자유롭게 무료로 사용할 수 있는 오픈소스 쿠버네티스, 젠킨스 등의 오픈소스 82종으로 구현됐있음 소스코드 실시간으로 공개하고있음 2014년부터 올해까지 진행하고 있음 2021년에 5.5 세미니 발표함 파스타를 도입하는 기관과 사례들이 늘어나고있음 전자정부클라우드 플랫폼이 파스타를 기반으로 진행되고있음 파스타 위에 올라가는 시스템을 민간 클라우드에 적용해서 개발, 운영 하고있음 파스타는 개발자 육성에도 많은 공을 들이고있음 파스타플랫폼을 기업에서 운영하고 진행할 수 있도록 전문기업 인증을 진행하고있음 민간 클라우드에서 csp사들이 파스타를 함께 운영하고있음 파스타 밋업소개 및 향후진행사항 1. 플랫폼 동향 신기술 중심의 플랫폼 동향과 파스타 발전 방향 Trend / ..
[쿠버네티스] 컨피그맵 & 시크릿
컨피그맵(Configmap), 시크릿(Secret) 설정값을 파드(pod)로 전달 컨피그맵 일반적인 설정 정보(값)을 저장할 수 있는 쿠버네티스 오브젝트 네임스페이스 별로 존재 컨피그맵 설정 vagrant@ubuntu:~$ kubectl create configmap log-level-configmap --from-literal LOG_LEVEL=DEBUG configmap/log-level-configmap created vagrant@ubuntu:~$ kubectl create configmap start-k8s --from-literal k8s=kubernetes --from-literal container=docker configmap/start-k8s created - start-k8s : 컨피..
[쿠버네티스] ReplicaSet & 디플로이먼트(Deployment) & 서비스 & 네임스페이스
레프리카셋(ReplicaSet) https://myanjini.tistory.com/entry/04-%EB%A0%88%ED%94%8C%EB%A6%AC%EC%B9%B4%EC%85%8BReplica-Set https://kubernetes.io/ko/docs/concepts/workloads/controllers/replicaset/ 항상 정해진 개수의 포트가 실행되는 것을 보장 vagrant@ubuntu:~$ minikube status ! Executing "docker container inspect minikube --format={{.State.Status}}" took an unusually long time: 7.182396497s * Restarting the docker service may..
[쿠버네티스] kubectl & Pods
쿠버네티스 실습 환경 설정 기본에 사용하던 가상머진 모두 중지 #1 가상머신 생성 C:\kubernetes\Vagrantfile # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "ubuntu/bionic64" config.vm.hostname = "ubuntu" config.vm.network "private_network", ip: "192.168.111.110" config.vm.synced_folder ".", "/home/vagrant/sync", disabled: true config.vm.provider "virtualbox" do |vb| vb.cpus = 2 vb.memory..