본문 바로가기
  • 오늘처럼

소프트웨어 아키텍처74

Serverless opensource : Knative Serverless Architecture 에서 Function 의 Scale to/from Zero 지난 포스팅에서, Serverless 아키텍처와 FaaS 에 대하여 다루었다. 이번에는 Serverless 아키텍처를 구현한 오픈소스인 Knative 에 대해 정리해본다. Functions as a Service 에서 사용자는 인프라적인 요소를 고려하지 않고, 선택한 런타임에 사용자가 작성한 비즈니스 로직을 구동하여 실행시키고 그 결과를 전달 받을 수 있다. 이를 위해 FaaS 서비스를 제공하는 Cloud Service Provider (CSP)는 동적으로 사용자의 호출에 반응하여, 런타임 실행 환경의 구동 및 사용자 코드의 배포 등을 수행해야 하며, 사용자가 더 이상 리소스를 호출하지 않을 경우, 실행.. 2023. 11. 10.
Kubernetes Pod Infra container (pause container) Container 와 Pod 쿠버네티스로 클러스터링 된 노드에서, docker 나 contained 의 명령어를 이용하여 컨테이너를 조회하면 파드에 대한 컨테이너외에 추가 다음과 같은 컨테이너들이 존재함을 알 수 있다. [root@localhost]# ctr --namespace k8s.io containers list CONTAINER IMAGE RUNTIME b17bab258...b27 nginx:v1.11.2 io.containerd.runc.v2 c4e93ac4f...0e3 calico-kube-controllers:latest io.containerd.runc.v2 cc775ac0a...b8e calico-node:latest io.containerd.runc.v2 ... ea76c4e66..... 2023. 1. 10.
[Kubernetes security] Container 나 Pod 의 실행 유저 지정하기 Docker 명령어를 사용하여 컨테이너를 구동할 때 하단과 같이 컨테이너 내부에서 명령을 수행할 유저(UserID)를 지정가능하다. docker run --user=1001 ubuntu sleep 3600 Docker 와 마찬가지로 Kubernetes 에서도 파드나 컨테이너의 내부 수행 유저를 지정 가능하다. 만약 컨테이너와 파드 모두에 수행 유조(runAsUser)를 지정할 경우 파드의 설정을, 컨테이너의 설정이 덮어쓰게(overwrite) 된다. 하단의 예제를 보자. apiVersion: v1 kind: Pod metadata: name: hello-world spec: securityContext: runAsUser: 1000 containers: - name: ubuntu image: ubuntu.. 2022. 11. 17.
[Ubuntu 보안] AppArmor 기본 개념과 설정 Application Armor (AppArmor) 리소스에 대한 접근 제어 방식에는 DAC방식과 MAC 방식이 있다. Discretionary(임의의, 자유재량에 의한) Access Control 의 약어인, DAC 방식은 '리소스의 접근'에 대하여 누가(주체) 리소스(객체)에 접근하려는지로 구분하게 되는데, 이 때 해당 리소스의 소유자는 리소스에 접근하려는 사용자나 사용자그룹 단위로 제한을 할 수 있다. 자원의 소유자가 임의로 권한을 줄 수 있는 방식이다. DAC 방식과 비교되는 MAC 방식도 있다. Mandatory(강제) Access Control 의 약어로, 미리 정의된 정책에 따라 사용자의 접근을 제어한다. 자원에 접근하려는 사용자(주체) 별로 보안 등급이 존재하고, 리소스에도 보안 레벨이 존.. 2022. 10. 7.
Kubernetes 와 Seccomp Kubernetes 에서의 seccomp docker 와 마찬가지로, kubernetes 또한 어플리케이션이 모든 시스템 함수에 대한 권한을 갖는 걸 막기 위하여, seccomp 필터를 사용할 수 있다. 여기서는 docker 와 비교되는 kubernetes 의 seccomp 사용에 대해 확인해본다. 먼저 docker 가 default seccomp profile 을 이용하여 시스템 함수를 필터링 하는 결과를 확인해 보기 위해 다음의 오픈소스를 이용한다. genuinetools/amicontained 컨테이너에 대한 인스펙션 툴로 아래와 같이 사용할 수 있다. # docker run --rm -it r.j3ss.co/amicontained amicontained Container Runtime: not-f.. 2022. 9. 23.
Docker container 와 seccomp 도커는 Linux 기반 기술을 사용하여, 어플리케이션에 대해 격리된 공간을 만들어주는 가상화 서비스다. 여기에는 cgroup, chroot 등의 기반 기술들이 포함되는데, 추가로 보안을 위하여 커널에서 제공하는 보안 컴퓨팅 모드(seccomp) 또한 사용할 될 수 있다. seccomp filter Docker 에는 호스트 커널에 SECCOMP가 활성화되어 있는 경우 컨테이너를 생성할 때마다 기본적으로 사용하는 내장 SECCOMP 필터가 있다. 이를 확인하기 위해 간단한 도커 컨테이너를 구동해본다. root@localhost~$ docker run -it --rm ubuntu /bin/sh # # date -s '23 OCT 2022 13:46:00' date: cannot set date: Operati.. 2022. 9. 23.